r300: move some more function to generic
[mesa.git] / src / mesa / glapi / gl_x86-64_asm.py
index 33943bce9340ec3f87d9aeee7531064801840abf..fa45406f47bc0bb54f7a17fd624ed9b906c77d2d 100644 (file)
@@ -25,7 +25,8 @@
 # Authors:
 #    Ian Romanick <idr@us.ibm.com>
 
-import gl_XML, license
+import license
+import gl_XML, glX_XML
 import sys, getopt, copy
 
 def should_use_push(registers):
@@ -132,6 +133,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                print ''
                print '# if defined(USE_MGL_NAMESPACE)'
                print '#  define GL_PREFIX(n) GLNAME(CONCAT(mgl,n))'
+               print '#  define _glapi_Dispatch _mglapi_Dispatch'
                print '# else'
                print '#  define GL_PREFIX(n) GLNAME(CONCAT(gl,n))'
                print '# endif'
@@ -236,10 +238,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                        registers.append( ["%rbp", 0] )
 
 
-               if f.is_static_entry_point(f.name):
-                       name = f.name
-               else:
-                       name = "_dispatch_stub_%u" % (f.offset)
+               name = f.dispatch_name()
 
                print '\t.p2align\t4,,15'
                print '\t.globl\tGL_PREFIX(%s)' % (name)
@@ -291,10 +290,18 @@ class PrintGenericStubs(gl_XML.gl_print_base):
 
 
                for f in api.functionIterateByOffset():
+                       dispatch = f.dispatch_name()
                        for n in f.entry_points:
                                if n != f.name:
                                        if f.is_static_entry_point(n):
-                                               print '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, f.name)
+                                               text = '\t.globl GL_PREFIX(%s) ; .set GL_PREFIX(%s), GL_PREFIX(%s)' % (n, n, dispatch)
+
+                                               if f.has_different_protocol(n):
+                                                       print '#ifndef GLX_INDIRECT_RENDERING'
+                                                       print text
+                                                       print '#endif'
+                                               else:
+                                                       print text
 
                return
 
@@ -323,6 +330,5 @@ if __name__ == '__main__':
                print "ERROR: Invalid mode \"%s\" specified." % mode
                show_usage()
 
-       api = gl_XML.parse_GL_API( file_name )
-
-       printer.Print( api )
+       api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+       printer.Print(api)