diff options
Diffstat (limited to 'src/mesa/glapi/gl_SPARC_asm.py')
-rw-r--r-- | src/mesa/glapi/gl_SPARC_asm.py | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/mesa/glapi/gl_SPARC_asm.py b/src/mesa/glapi/gl_SPARC_asm.py index 9be4849010..1a8823cc40 100644 --- a/src/mesa/glapi/gl_SPARC_asm.py +++ b/src/mesa/glapi/gl_SPARC_asm.py @@ -40,15 +40,13 @@ class PrintGenericStubs(gl_XML.gl_print_base): def printRealHeader(self): print '#include "glapioffsets.h"' print '' - print '#define GLOBL_FN(x) .globl x ; .type x,#function' - print '' - print '#if (defined(__sparc_v9__) && (!defined(__linux__) || defined(__linux_sparc_64__)))' + print '#ifdef __arch64__' print '# define GL_STUB(fn,off)\t\t\t\t\\' - print 'GLOBL_FN(fn) ; fn:\t\t\t\t\t\\' - print '\tsethi\t%hi(0x00000000), %g4 ;\t\t\t\\' - print '\tsethi\t%hi(0x00000000), %g1 ;\t\t\t\\' - print '\tor\t%g4, %lo(0x00000000), %g4 ;\t\t\\' - print '\tor\t%g1, %lo(0x00000000), %g1 ;\t\t\\' + print 'fn:\t\t\t\t\t\\' + print '\tsethi\t%hi(0xDEADBEEF), %g4 ;\t\t\t\\' + print '\tsethi\t%hi(0xDEADBEEF), %g1 ;\t\t\t\\' + print '\tor\t%g4, %lo(0xDEADBEEF), %g4 ;\t\t\\' + print '\tor\t%g1, %lo(0xDEADBEEF), %g1 ;\t\t\\' print '\tsllx\t%g4, 32, %g4 ;\t\t\t\t\\' print '\tldx\t[%g1 + %g4], %g1 ;\t\t\t\\' print '\tsethi\t%hi(8 * off), %g4 ;\t\t\t\\' @@ -58,19 +56,19 @@ class PrintGenericStubs(gl_XML.gl_print_base): print '\tnop' print '#else' print '# define GL_STUB(fn,off)\t\t\t\t\\' - print 'GLOBL_FN(fn) ; fn:\t\t\t\t\t\\' - print '\tsethi\t%hi(0x00000000), %g1 ;\t\t\t\\' - print '\tld\t[%g1 + %lo(0x00000000)], %g1 ;\t\t\\' + print 'fn:\t\t\t\t\t\\' + print '\tsethi\t%hi(0xDEADBEEF), %g1 ;\t\t\t\\' + print '\tld\t[%g1 + %lo(0xDEADBEEF)], %g1 ;\t\t\\' print '\tld\t[%g1 + (4 * off)], %g5 ;\t\t\\' print '\tjmpl\t%g5, %g0 ;\t\t\t\t\\' print '\tnop' print '#endif' print '' - print '#define GL_STUB_ALIAS(fn,alias) GLOBL_FN(fn) ; fn = alias' + print '#define GL_STUB_ALIAS(fn,alias) fn = alias' print '' print '.text' print '.align 32' - print 'GLOBL_FN(__glapi_sparc_icache_flush)' + print '\t\t.globl __glapi_sparc_icache_flush ; .type __glapi_sparc_icache_flush,#function' print '__glapi_sparc_icache_flush: /* %o0 = insn_addr */' print '\tflush\t%o0' print '\tretl' @@ -83,7 +81,10 @@ class PrintGenericStubs(gl_XML.gl_print_base): def printBody(self, api): - print 'GLOBL_FN(_mesa_sparc_glapi_begin)' + for f in api.functionIterateByOffset(): + print '\t\t.globl gl%s ; .type gl%s,#function' % (f.name, f.name) + + print '\t\t.globl _mesa_sparc_glapi_begin ; .type _mesa_sparc_glapi_begin,#function' print '_mesa_sparc_glapi_begin:' print '' @@ -91,7 +92,7 @@ class PrintGenericStubs(gl_XML.gl_print_base): print '\tGL_STUB(gl%s, _gloffset_%s)' % (f.name, f.name) print '' - print 'GLOBL_FN(_mesa_sparc_glapi_end)' + print '\t\t.globl _mesa_sparc_glapi_end ; .type _mesa_sparc_glapi_end,#function' print '_mesa_sparc_glapi_end:' print '' @@ -99,7 +100,7 @@ class PrintGenericStubs(gl_XML.gl_print_base): for f in api.functionIterateByOffset(): for n in f.entry_points: if n != f.name: - print '\tGL_STUB_ALIAS(gl%s, gl%s)' % (n, f.name) + print '\t.globl gl%s ; .type gl%s,#function ; gl%s = gl%s' % (n, n, n, f.name) return |