Add some debug messages
[mesa.git] / src / mesa / glapi / gl_x86_asm.py
index 977e0329cc56ea3b5b0c99aab92b3023a9466dc4..403e87261b09d3b223de9d2ff90b0d214d0adc3f 100644 (file)
@@ -62,6 +62,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                print '#else'
                print '# if defined(USE_MGL_NAMESPACE)'
                print '#  define GL_PREFIX(n,n2) GLNAME(CONCAT(mgl,n))'
+               print '#  define _glapi_Dispatch _mglapi_Dispatch'
                print '# else'
                print '#  define GL_PREFIX(n,n2) GLNAME(CONCAT(gl,n))'
                print '# endif'
@@ -81,12 +82,18 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                print ''
                print '#ifdef GLX_USE_TLS'
                print ''
+               print '#ifdef GLX_X86_READONLY_TEXT'
+               print '# define CTX_INSNS MOV_L(GS:(EAX), EAX)'
+               print '#else'
+               print '# define CTX_INSNS NOP /* Pad for init_glapi_relocs() */'
+               print '#endif'
+               print ''
                print '#  define GL_STUB(fn,off,fn_alt)\t\t\t\\'
                print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
                print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
                print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
                print '\tCALL(_x86_get_dispatch) ;\t\t\t\\'
-               print '\tNOP ;\t\t\t\t\t\t\\'
+               print '\tCTX_INSNS ;                                    \\'
                print '\tJMP(GL_OFFSET(off))'
                print ''
                print '#elif defined(PTHREADS)'
@@ -137,7 +144,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                print '\tHIDDEN(GLNAME(_x86_get_dispatch))'
                print 'ALIGNTEXT16'
                print 'GLNAME(_x86_get_dispatch):'
-               print '\tmovl\t%gs:_glapi_tls_Dispatch@NTPOFF, %eax'
+               print '\tcall   1f'
+               print '1:\tpopl %eax'
+               print '\taddl   $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax'
+               print '\tmovl   _glapi_tls_Dispatch@GOTNTPOFF(%eax), %eax'
                print '\tret'
                print ''
                print '#elif defined(PTHREADS)'
@@ -157,7 +167,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
                print '#endif'
                print ''
 
-               print '#if defined( GLX_USE_TLS )'
+               print '#if defined( GLX_USE_TLS ) && !defined( GLX_X86_READONLY_TEXT )'
                print '\t\t.section\twtext, "awx", @progbits'
                print '#endif /* defined( GLX_USE_TLS ) */'