diff options
Diffstat (limited to 'src/mesa/glapi/gl_x86_asm.py')
-rw-r--r-- | src/mesa/glapi/gl_x86_asm.py | 29 |
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 |