summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/glapi/APPLE_vertex_array_object.xml8
-rw-r--r--src/mesa/glapi/gl_API.dtd1
-rw-r--r--src/mesa/glapi/gl_API.xml4
-rw-r--r--src/mesa/glapi/gl_SPARC_asm.py21
-rw-r--r--src/mesa/glapi/gl_XML.py2
-rw-r--r--src/mesa/glapi/gl_apitemp.py42
-rw-r--r--src/mesa/glapi/gl_procs.py22
-rw-r--r--src/mesa/glapi/gl_x86-64_asm.py22
-rw-r--r--src/mesa/glapi/gl_x86_asm.py29
-rw-r--r--src/mesa/glapi/glapi.c1
-rw-r--r--src/mesa/glapi/glapitemp.h48
-rw-r--r--src/mesa/glapi/glprocs.h22
-rw-r--r--src/mesa/sparc/glapi_sparc.S24
-rw-r--r--src/mesa/x86-64/glapi_x86-64.S54
-rw-r--r--src/mesa/x86/glapi_x86.S18
15 files changed, 223 insertions, 95 deletions
diff --git a/src/mesa/glapi/APPLE_vertex_array_object.xml b/src/mesa/glapi/APPLE_vertex_array_object.xml
index 3c0c1cc57f8..0d871563d02 100644
--- a/src/mesa/glapi/APPLE_vertex_array_object.xml
+++ b/src/mesa/glapi/APPLE_vertex_array_object.xml
@@ -5,21 +5,21 @@
<category name="GL_APPLE_vertex_array_object" number="273">
<enum name="VERTEX_ARRAY_BINDING_APPLE" value="0x85B5"/>
- <function name="BindVertexArrayAPPLE" offset="819">
+ <function name="BindVertexArrayAPPLE" offset="819" static_dispatch="false">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysAPPLE" offset="820">
+ <function name="DeleteVertexArraysAPPLE" offset="820" static_dispatch="false">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArraysAPPLE" offset="821">
+ <function name="GenVertexArraysAPPLE" offset="821" static_dispatch="false">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" count="n" output="true"/>
</function>
- <function name="IsVertexArrayAPPLE" offset="822">
+ <function name="IsVertexArrayAPPLE" offset="822" static_dispatch="false">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/src/mesa/glapi/gl_API.dtd b/src/mesa/glapi/gl_API.dtd
index ded487bc922..2f0c88aae5b 100644
--- a/src/mesa/glapi/gl_API.dtd
+++ b/src/mesa/glapi/gl_API.dtd
@@ -33,6 +33,7 @@
<!ATTLIST function name NMTOKEN #REQUIRED
alias NMTOKEN #IMPLIED
offset CDATA #IMPLIED
+ static_dispatch (true | false) "true"
vectorequiv NMTOKEN #IMPLIED>
<!ATTLIST size name NMTOKEN #REQUIRED
count NMTOKEN #IMPLIED
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 419d3bc880c..b5b549ccf06 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -11552,14 +11552,14 @@
</category>
<category name="GL_EXT_gpu_program_parameters" number="319">
- <function name="ProgramEnvParameters4fvEXT" offset="823">
+ <function name="ProgramEnvParameters4fvEXT" offset="823" static_dispatch="false">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramLocalParameters4fvEXT" offset="824">
+ <function name="ProgramLocalParameters4fvEXT" offset="824" static_dispatch="false">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
diff --git a/src/mesa/glapi/gl_SPARC_asm.py b/src/mesa/glapi/gl_SPARC_asm.py
index 1a8823cc405..1368e24a087 100644
--- a/src/mesa/glapi/gl_SPARC_asm.py
+++ b/src/mesa/glapi/gl_SPARC_asm.py
@@ -82,14 +82,24 @@ class PrintGenericStubs(gl_XML.gl_print_base):
def printBody(self, api):
for f in api.functionIterateByOffset():
- print '\t\t.globl gl%s ; .type gl%s,#function' % (f.name, f.name)
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
+ print '\t\t.globl gl%s ; .type gl%s,#function' % (name, name)
print '\t\t.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function'
print '_mesa_sparc_glapi_begin:'
print ''
for f in api.functionIterateByOffset():
- print '\tGL_STUB(gl%s, _gloffset_%s)' % (f.name, f.name)
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
+ print '\tGL_STUB(gl%s, _gloffset_%s)' % (name, name)
print ''
print '\t\t.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function'
@@ -98,9 +108,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name)
return
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 11b23b7a867..e1bff79abc0 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -575,6 +575,8 @@ class gl_function( gl_item ):
name = element.nsProp( "name", None )
alias = element.nsProp( "alias", None )
+ self.static_dispatch = is_attr_true(element, "static_dispatch")
+
self.entry_points.append( name )
if alias:
true_name = alias
diff --git a/src/mesa/glapi/gl_apitemp.py b/src/mesa/glapi/gl_apitemp.py
index 7cc434fa89b..30ee6596ed3 100644
--- a/src/mesa/glapi/gl_apitemp.py
+++ b/src/mesa/glapi/gl_apitemp.py
@@ -39,6 +39,7 @@ class PrintGlOffsets(gl_XML.gl_print_base):
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
self.undef_list.append( "KEYWORD1" )
+ self.undef_list.append( "KEYWORD1_ALT" )
self.undef_list.append( "KEYWORD2" )
self.undef_list.append( "NAME" )
self.undef_list.append( "DISPATCH" )
@@ -54,6 +55,13 @@ class PrintGlOffsets(gl_XML.gl_print_base):
t_string = ""
comma = ""
+ if f.static_dispatch:
+ n = name
+ keyword = "KEYWORD1"
+ else:
+ n = "_dispatch_stub_%u" % (f.offset)
+ keyword = "KEYWORD1_ALT"
+
for p in f.parameterIterator():
if p.is_pointer():
cast = "(const void *) "
@@ -71,8 +79,11 @@ class PrintGlOffsets(gl_XML.gl_print_base):
else:
dispatch = "DISPATCH"
- print 'KEYWORD1 %s KEYWORD2 NAME(%s)(%s)' \
- % (f.return_type, name, f.get_parameter_string(name))
+ if not f.static_dispatch:
+ print '%s %s KEYWORD2 NAME(%s)(%s);' % (keyword, f.return_type, n, f.get_parameter_string(name))
+ print ''
+
+ print '%s %s KEYWORD2 NAME(%s)(%s)' % (keyword, f.return_type, n, f.get_parameter_string(name))
print '{'
if p_string == "":
print ' %s(%s, (), (F, "gl%s();\\n"));' \
@@ -85,6 +96,8 @@ class PrintGlOffsets(gl_XML.gl_print_base):
return
def printRealHeader(self):
+ print ''
+ self.printVisibility( "HIDDEN", "hidden" )
print """
/*
* This file is a template which generates the OpenGL API entry point
@@ -116,6 +129,10 @@ class PrintGlOffsets(gl_XML.gl_print_base):
#define KEYWORD1
#endif
+#ifndef KEYWORD1_ALT
+#define KEYWORD1_ALT HIDDEN
+#endif
+
#ifndef KEYWORD2
#define KEYWORD2
#endif
@@ -149,7 +166,12 @@ class PrintGlOffsets(gl_XML.gl_print_base):
static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
for f in api.functionIterateByOffset():
- print ' TABLE_ENTRY(%s),' % (f.name)
+ if f.static_dispatch:
+ n = f.name
+ else:
+ n = "_dispatch_stub_%u" % (f.offset)
+
+ print ' TABLE_ENTRY(%s),' % (n)
print ' /* A whole bunch of no-op functions. These might be called'
print ' * when someone tries to call a dynamically-registered'
@@ -174,9 +196,10 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {"""
static _glapi_proc UNUSED_TABLE_NAME[] = {"""
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print ' TABLE_ENTRY(%s),' % (n)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print ' TABLE_ENTRY(%s),' % (n)
print '};'
print '#endif /*UNUSED_TABLE_NAME*/'
@@ -186,8 +209,11 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {"""
def printBody(self, api):
for func in api.functionIterateByOffset():
- for n in func.entry_points:
- self.printFunction( func, n )
+ if func.static_dispatch:
+ for n in func.entry_points:
+ self.printFunction( func, n )
+ else:
+ self.printFunction(func, func.name)
self.printInitDispatch(api)
self.printAliasedTable(api)
diff --git a/src/mesa/glapi/gl_procs.py b/src/mesa/glapi/gl_procs.py
index 76131b83a0b..145243ee0e9 100644
--- a/src/mesa/glapi/gl_procs.py
+++ b/src/mesa/glapi/gl_procs.py
@@ -87,8 +87,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
base_offset = 0
table = []
for func in api.functionIterateByOffset():
+ if func.static_dispatch:
+ name = func.name
+ else:
+ name = "_dispatch_stub_%u" % (func.offset)
+
self.printFunctionString( func.name )
- table.append((base_offset, func.name, func.name))
+ table.append((base_offset, name, func.name))
# The length of the function's name, plus 2 for "gl",
# plus 1 for the NUL.
@@ -99,8 +104,13 @@ class PrintGlProcs(gl_XML.gl_print_base):
for func in api.functionIterateByOffset():
for n in func.entry_points:
if n != func.name:
+ if func.static_dispatch:
+ name = n
+ else:
+ name = "_dispatch_stub_%u" % (func.offset)
+
self.printFunctionString( n )
- table.append((base_offset, n, func.name))
+ table.append((base_offset, name, func.name))
base_offset += len(n) + 3
@@ -110,6 +120,14 @@ class PrintGlProcs(gl_XML.gl_print_base):
print '};'
print ''
+ print '/* FIXME: Having these (incorrect) prototypes here is ugly. */'
+ print '#ifdef NEED_FUNCTION_POINTER'
+ for func in api.functionIterateByOffset():
+ if not func.static_dispatch:
+ print 'extern void gl_dispatch_stub_%u(void);' % (func.offset)
+ print '#endif /* NEED_FUNCTION_POINTER */'
+
+ print ''
print 'static const glprocs_table_t static_functions[] = {'
for (offset, disp_name, real_name) in table:
diff --git a/src/mesa/glapi/gl_x86-64_asm.py b/src/mesa/glapi/gl_x86-64_asm.py
index ea13d2ac522..eb440009b2f 100644
--- a/src/mesa/glapi/gl_x86-64_asm.py
+++ b/src/mesa/glapi/gl_x86-64_asm.py
@@ -236,10 +236,17 @@ class PrintGenericStubs(gl_XML.gl_print_base):
registers.append( ["%rbp", 0] )
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
print '\t.p2align\t4,,15'
- print '\t.globl\tGL_PREFIX(%s)' % (f.name)
- print '\t.type\tGL_PREFIX(%s), @function' % (f.name)
- print 'GL_PREFIX(%s):' % (f.name)
+ print '\t.globl\tGL_PREFIX(%s)' % (name)
+ print '\t.type\tGL_PREFIX(%s), @function' % (name)
+ if not f.static_dispatch:
+ print '\tHIDDEN(GL_PREFIX(%s))' % (name)
+ print 'GL_PREFIX(%s):' % (name)
print '#if defined(GLX_USE_TLS)'
print '\tcall\t_x86_64_get_dispatch@PLT'
print '\tmovq\t%u(%%rax), %%r11' % (f.offset * 8)
@@ -273,7 +280,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
print '\tjmp\t*%r11'
print '#endif /* defined(GLX_USE_TLS) */'
- print '\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (f.name, f.name)
+ print '\t.size\tGL_PREFIX(%s), .-GL_PREFIX(%s)' % (name, name)
print ''
return
@@ -284,9 +291,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
for f in api.functionIterateByOffset():
- for n in f.entry_points:
- if n != f.name:
- print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
return
diff --git a/src/mesa/glapi/gl_x86_asm.py b/src/mesa/glapi/gl_x86_asm.py
index 899cce64b99..3ce8404f8c9 100644
--- a/src/mesa/glapi/gl_x86_asm.py
+++ b/src/mesa/glapi/gl_x86_asm.py
@@ -197,20 +197,35 @@ class PrintGenericStubs(gl_XML.gl_print_base):
def printBody(self, api):
for f in api.functionIterateByOffset():
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
stack = self.get_stack_size(f)
- alt = "%s@%u" % (f.name, stack)
- print '\tGL_STUB(%s, _gloffset_%s, %s)' % (f.name, f.name, alt)
+ alt = "%s@%u" % (name, stack)
+ print '\tGL_STUB(%s, _gloffset_%s, %s)' % (name, f.name, alt)
+
+ if not f.static_dispatch:
+ print '\tHIDDEN(GL_PREFIX(%s, %s))' % (name, alt)
+
for f in api.functionIterateByOffset():
+ if f.static_dispatch:
+ name = f.name
+ else:
+ name = "_dispatch_stub_%u" % (f.offset)
+
stack = self.get_stack_size(f)
- alt = "%s@%u" % (f.name, stack)
+ alt = "%s@%u" % (name, stack)
- for n in f.entry_points:
- if n != f.name:
- alt2 = "%s@%u" % (n, stack)
- print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
+ if f.static_dispatch:
+ for n in f.entry_points:
+ if n != f.name:
+ alt2 = "%s@%u" % (n, stack)
+ print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % (n, f.name, alt2, f.name, alt)
return
diff --git a/src/mesa/glapi/glapi.c b/src/mesa/glapi/glapi.c
index c095de3961a..b82304b2fce 100644
--- a/src/mesa/glapi/glapi.c
+++ b/src/mesa/glapi/glapi.c
@@ -99,6 +99,7 @@ warn(void)
#define KEYWORD1 static
+#define KEYWORD1_ALT static
#define KEYWORD2 GLAPIENTRY
#define NAME(func) NoOp##func
diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h
index 442fccf2955..52ca9733f3e 100644
--- a/src/mesa/glapi/glapitemp.h
+++ b/src/mesa/glapi/glapitemp.h
@@ -27,6 +27,12 @@
*/
+# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
+# define HIDDEN __attribute__((visibility("hidden")))
+# else
+# define HIDDEN
+# endif
+
/*
* This file is a template which generates the OpenGL API entry point
* functions. It should be included by a .c file which first defines
@@ -57,6 +63,10 @@
#define KEYWORD1
#endif
+#ifndef KEYWORD1_ALT
+#define KEYWORD1_ALT HIDDEN
+#endif
+
#ifndef KEYWORD2
#define KEYWORD2
#endif
@@ -5055,32 +5065,44 @@ KEYWORD1 void KEYWORD2 NAME(BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint
DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebufferEXT(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter));
}
-KEYWORD1 void KEYWORD2 NAME(BindVertexArrayAPPLE)(GLuint array)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_819)(GLuint array);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_819)(GLuint array)
{
DISPATCH(BindVertexArrayAPPLE, (array), (F, "glBindVertexArrayAPPLE(%d);\n", array));
}
-KEYWORD1 void KEYWORD2 NAME(DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_820)(GLsizei n, const GLuint * arrays);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_820)(GLsizei n, const GLuint * arrays)
{
DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1 void KEYWORD2 NAME(GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_821)(GLsizei n, GLuint * arrays);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_821)(GLsizei n, GLuint * arrays)
{
DISPATCH(GenVertexArraysAPPLE, (n, arrays), (F, "glGenVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1 GLboolean KEYWORD2 NAME(IsVertexArrayAPPLE)(GLuint array)
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_822)(GLuint array);
+
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_822)(GLuint array)
{
RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArrayAPPLE(%d);\n", array));
}
-KEYWORD1 void KEYWORD2 NAME(ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_823)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_823)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
-KEYWORD1 void KEYWORD2 NAME(ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_824)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_824)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
@@ -5918,12 +5940,12 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(GetQueryObjecti64vEXT),
TABLE_ENTRY(GetQueryObjectui64vEXT),
TABLE_ENTRY(BlitFramebufferEXT),
- TABLE_ENTRY(BindVertexArrayAPPLE),
- TABLE_ENTRY(DeleteVertexArraysAPPLE),
- TABLE_ENTRY(GenVertexArraysAPPLE),
- TABLE_ENTRY(IsVertexArrayAPPLE),
- TABLE_ENTRY(ProgramEnvParameters4fvEXT),
- TABLE_ENTRY(ProgramLocalParameters4fvEXT),
+ TABLE_ENTRY(_dispatch_stub_819),
+ TABLE_ENTRY(_dispatch_stub_820),
+ TABLE_ENTRY(_dispatch_stub_821),
+ TABLE_ENTRY(_dispatch_stub_822),
+ TABLE_ENTRY(_dispatch_stub_823),
+ TABLE_ENTRY(_dispatch_stub_824),
/* A whole bunch of no-op functions. These might be called
* when someone tries to call a dynamically-registered
* extension function without a current rendering context.
@@ -6220,6 +6242,7 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
# undef KEYWORD1
+# undef KEYWORD1_ALT
# undef KEYWORD2
# undef NAME
# undef DISPATCH
@@ -6227,3 +6250,4 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
# undef DISPATCH_TABLE_NAME
# undef UNUSED_TABLE_NAME
# undef TABLE_ENTRY
+# undef HIDDEN
diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h
index 3a858ca0e74..b1943c11ec3 100644
--- a/src/mesa/glapi/glprocs.h
+++ b/src/mesa/glapi/glprocs.h
@@ -1051,6 +1051,16 @@ static const char gl_string_table[] =
"glBlendEquationSeparateATI\0"
;
+/* FIXME: Having these (incorrect) prototypes here is ugly. */
+#ifdef NEED_FUNCTION_POINTER
+extern void gl_dispatch_stub_819(void);
+extern void gl_dispatch_stub_820(void);
+extern void gl_dispatch_stub_821(void);
+extern void gl_dispatch_stub_822(void);
+extern void gl_dispatch_stub_823(void);
+extern void gl_dispatch_stub_824(void);
+#endif /* NEED_FUNCTION_POINTER */
+
static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET( 0, glNewList, _gloffset_NewList ),
NAME_FUNC_OFFSET( 10, glEndList, _gloffset_EndList ),
@@ -1871,12 +1881,12 @@ static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET( 14671, glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT ),
NAME_FUNC_OFFSET( 14695, glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT ),
NAME_FUNC_OFFSET( 14720, glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT ),
- NAME_FUNC_OFFSET( 14741, glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE ),
- NAME_FUNC_OFFSET( 14764, glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE ),
- NAME_FUNC_OFFSET( 14790, glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE ),
- NAME_FUNC_OFFSET( 14813, glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE ),
- NAME_FUNC_OFFSET( 14834, glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT ),
- NAME_FUNC_OFFSET( 14863, glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT ),
+ NAME_FUNC_OFFSET( 14741, gl_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE ),
+ NAME_FUNC_OFFSET( 14764, gl_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE ),
+ NAME_FUNC_OFFSET( 14790, gl_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE ),
+ NAME_FUNC_OFFSET( 14813, gl_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE ),
+ NAME_FUNC_OFFSET( 14834, gl_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT ),
+ NAME_FUNC_OFFSET( 14863, gl_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT ),
NAME_FUNC_OFFSET( 14894, glArrayElementEXT, _gloffset_ArrayElement ),
NAME_FUNC_OFFSET( 14912, glBindTextureEXT, _gloffset_BindTexture ),
NAME_FUNC_OFFSET( 14929, glDrawArraysEXT, _gloffset_DrawArrays ),
diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S
index 864c650700c..8ac5b036917 100644
--- a/src/mesa/sparc/glapi_sparc.S
+++ b/src/mesa/sparc/glapi_sparc.S
@@ -884,12 +884,12 @@ __glapi_sparc_icache_flush: /* %o0 = insn_addr */
.globl glGetQueryObjecti64vEXT ; .type glGetQueryObjecti64vEXT,#function
.globl glGetQueryObjectui64vEXT ; .type glGetQueryObjectui64vEXT,#function
.globl glBlitFramebufferEXT ; .type glBlitFramebufferEXT,#function
- .globl glBindVertexArrayAPPLE ; .type glBindVertexArrayAPPLE,#function
- .globl glDeleteVertexArraysAPPLE ; .type glDeleteVertexArraysAPPLE,#function
- .globl glGenVertexArraysAPPLE ; .type glGenVertexArraysAPPLE,#function
- .globl glIsVertexArrayAPPLE ; .type glIsVertexArrayAPPLE,#function
- .globl glProgramEnvParameters4fvEXT ; .type glProgramEnvParameters4fvEXT,#function
- .globl glProgramLocalParameters4fvEXT ; .type glProgramLocalParameters4fvEXT,#function
+ .globl gl_dispatch_stub_819 ; .type gl_dispatch_stub_819,#function
+ .globl gl_dispatch_stub_820 ; .type gl_dispatch_stub_820,#function
+ .globl gl_dispatch_stub_821 ; .type gl_dispatch_stub_821,#function
+ .globl gl_dispatch_stub_822 ; .type gl_dispatch_stub_822,#function
+ .globl gl_dispatch_stub_823 ; .type gl_dispatch_stub_823,#function
+ .globl gl_dispatch_stub_824 ; .type gl_dispatch_stub_824,#function
.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function
_mesa_sparc_glapi_begin:
@@ -1712,12 +1712,12 @@ _mesa_sparc_glapi_begin:
GL_STUB(glGetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT)
GL_STUB(glGetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT)
GL_STUB(glBlitFramebufferEXT, _gloffset_BlitFramebufferEXT)
- GL_STUB(glBindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE)
- GL_STUB(glDeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE)
- GL_STUB(glGenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE)
- GL_STUB(glIsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE)
- GL_STUB(glProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT)
- GL_STUB(glProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT)
+ GL_STUB(gl_dispatch_stub_819, _gloffset__dispatch_stub_819)
+ GL_STUB(gl_dispatch_stub_820, _gloffset__dispatch_stub_820)
+ GL_STUB(gl_dispatch_stub_821, _gloffset__dispatch_stub_821)
+ GL_STUB(gl_dispatch_stub_822, _gloffset__dispatch_stub_822)
+ GL_STUB(gl_dispatch_stub_823, _gloffset__dispatch_stub_823)
+ GL_STUB(gl_dispatch_stub_824, _gloffset__dispatch_stub_824)
.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function
_mesa_sparc_glapi_end:
diff --git a/src/mesa/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S
index 39896eb2b96..c826619eb63 100644
--- a/src/mesa/x86-64/glapi_x86-64.S
+++ b/src/mesa/x86-64/glapi_x86-64.S
@@ -30937,9 +30937,10 @@ GL_PREFIX(BlitFramebufferEXT):
.size GL_PREFIX(BlitFramebufferEXT), .-GL_PREFIX(BlitFramebufferEXT)
.p2align 4,,15
- .globl GL_PREFIX(BindVertexArrayAPPLE)
- .type GL_PREFIX(BindVertexArrayAPPLE), @function
-GL_PREFIX(BindVertexArrayAPPLE):
+ .globl GL_PREFIX(_dispatch_stub_819)
+ .type GL_PREFIX(_dispatch_stub_819), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_819))
+GL_PREFIX(_dispatch_stub_819):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6552(%rax), %r11
@@ -30963,12 +30964,13 @@ GL_PREFIX(BindVertexArrayAPPLE):
movq 6552(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(BindVertexArrayAPPLE), .-GL_PREFIX(BindVertexArrayAPPLE)
+ .size GL_PREFIX(_dispatch_stub_819), .-GL_PREFIX(_dispatch_stub_819)
.p2align 4,,15
- .globl GL_PREFIX(DeleteVertexArraysAPPLE)
- .type GL_PREFIX(DeleteVertexArraysAPPLE), @function
-GL_PREFIX(DeleteVertexArraysAPPLE):
+ .globl GL_PREFIX(_dispatch_stub_820)
+ .type GL_PREFIX(_dispatch_stub_820), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_820))
+GL_PREFIX(_dispatch_stub_820):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6560(%rax), %r11
@@ -31000,12 +31002,13 @@ GL_PREFIX(DeleteVertexArraysAPPLE):
movq 6560(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(DeleteVertexArraysAPPLE), .-GL_PREFIX(DeleteVertexArraysAPPLE)
+ .size GL_PREFIX(_dispatch_stub_820), .-GL_PREFIX(_dispatch_stub_820)
.p2align 4,,15
- .globl GL_PREFIX(GenVertexArraysAPPLE)
- .type GL_PREFIX(GenVertexArraysAPPLE), @function
-GL_PREFIX(GenVertexArraysAPPLE):
+ .globl GL_PREFIX(_dispatch_stub_821)
+ .type GL_PREFIX(_dispatch_stub_821), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_821))
+GL_PREFIX(_dispatch_stub_821):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6568(%rax), %r11
@@ -31037,12 +31040,13 @@ GL_PREFIX(GenVertexArraysAPPLE):
movq 6568(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(GenVertexArraysAPPLE), .-GL_PREFIX(GenVertexArraysAPPLE)
+ .size GL_PREFIX(_dispatch_stub_821), .-GL_PREFIX(_dispatch_stub_821)
.p2align 4,,15
- .globl GL_PREFIX(IsVertexArrayAPPLE)
- .type GL_PREFIX(IsVertexArrayAPPLE), @function
-GL_PREFIX(IsVertexArrayAPPLE):
+ .globl GL_PREFIX(_dispatch_stub_822)
+ .type GL_PREFIX(_dispatch_stub_822), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_822))
+GL_PREFIX(_dispatch_stub_822):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6576(%rax), %r11
@@ -31066,12 +31070,13 @@ GL_PREFIX(IsVertexArrayAPPLE):
movq 6576(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(IsVertexArrayAPPLE), .-GL_PREFIX(IsVertexArrayAPPLE)
+ .size GL_PREFIX(_dispatch_stub_822), .-GL_PREFIX(_dispatch_stub_822)
.p2align 4,,15
- .globl GL_PREFIX(ProgramEnvParameters4fvEXT)
- .type GL_PREFIX(ProgramEnvParameters4fvEXT), @function
-GL_PREFIX(ProgramEnvParameters4fvEXT):
+ .globl GL_PREFIX(_dispatch_stub_823)
+ .type GL_PREFIX(_dispatch_stub_823), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_823))
+GL_PREFIX(_dispatch_stub_823):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6584(%rax), %r11
@@ -31111,12 +31116,13 @@ GL_PREFIX(ProgramEnvParameters4fvEXT):
movq 6584(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(ProgramEnvParameters4fvEXT), .-GL_PREFIX(ProgramEnvParameters4fvEXT)
+ .size GL_PREFIX(_dispatch_stub_823), .-GL_PREFIX(_dispatch_stub_823)
.p2align 4,,15
- .globl GL_PREFIX(ProgramLocalParameters4fvEXT)
- .type GL_PREFIX(ProgramLocalParameters4fvEXT), @function
-GL_PREFIX(ProgramLocalParameters4fvEXT):
+ .globl GL_PREFIX(_dispatch_stub_824)
+ .type GL_PREFIX(_dispatch_stub_824), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_824))
+GL_PREFIX(_dispatch_stub_824):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6592(%rax), %r11
@@ -31156,7 +31162,7 @@ GL_PREFIX(ProgramLocalParameters4fvEXT):
movq 6592(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(ProgramLocalParameters4fvEXT), .-GL_PREFIX(ProgramLocalParameters4fvEXT)
+ .size GL_PREFIX(_dispatch_stub_824), .-GL_PREFIX(_dispatch_stub_824)
.globl GL_PREFIX(ArrayElementEXT) ; .set GL_PREFIX(ArrayElementEXT), GL_PREFIX(ArrayElement)
.globl GL_PREFIX(BindTextureEXT) ; .set GL_PREFIX(BindTextureEXT), GL_PREFIX(BindTexture)
diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S
index 85d691acb4e..746993d1235 100644
--- a/src/mesa/x86/glapi_x86.S
+++ b/src/mesa/x86/glapi_x86.S
@@ -960,12 +960,18 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(GetQueryObjecti64vEXT, _gloffset_GetQueryObjecti64vEXT, GetQueryObjecti64vEXT@12)
GL_STUB(GetQueryObjectui64vEXT, _gloffset_GetQueryObjectui64vEXT, GetQueryObjectui64vEXT@12)
GL_STUB(BlitFramebufferEXT, _gloffset_BlitFramebufferEXT, BlitFramebufferEXT@40)
- GL_STUB(BindVertexArrayAPPLE, _gloffset_BindVertexArrayAPPLE, BindVertexArrayAPPLE@4)
- GL_STUB(DeleteVertexArraysAPPLE, _gloffset_DeleteVertexArraysAPPLE, DeleteVertexArraysAPPLE@8)
- GL_STUB(GenVertexArraysAPPLE, _gloffset_GenVertexArraysAPPLE, GenVertexArraysAPPLE@8)
- GL_STUB(IsVertexArrayAPPLE, _gloffset_IsVertexArrayAPPLE, IsVertexArrayAPPLE@4)
- GL_STUB(ProgramEnvParameters4fvEXT, _gloffset_ProgramEnvParameters4fvEXT, ProgramEnvParameters4fvEXT@16)
- GL_STUB(ProgramLocalParameters4fvEXT, _gloffset_ProgramLocalParameters4fvEXT, ProgramLocalParameters4fvEXT@16)
+ GL_STUB(_dispatch_stub_819, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_819@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_819, _dispatch_stub_819@4))
+ GL_STUB(_dispatch_stub_820, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_820@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_820, _dispatch_stub_820@8))
+ GL_STUB(_dispatch_stub_821, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_821@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_821, _dispatch_stub_821@8))
+ GL_STUB(_dispatch_stub_822, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_822@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_822, _dispatch_stub_822@4))
+ GL_STUB(_dispatch_stub_823, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_823@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_823, _dispatch_stub_823@16))
+ GL_STUB(_dispatch_stub_824, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_824@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_824, _dispatch_stub_824@16))
GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
GL_STUB_ALIAS(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)