summaryrefslogtreecommitdiffstats
path: root/src/mesa/glapi/gl_x86_asm.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/glapi/gl_x86_asm.py')
-rw-r--r--src/mesa/glapi/gl_x86_asm.py29
1 files changed, 22 insertions, 7 deletions
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