mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 04:20:08 +01:00
Remove dependency on MESA sources from gl* files
in SPARC glapi optimizations by moving the icache flush into the glapi_sparc.S file. Brian, how is this?
This commit is contained in:
parent
a5455bb374
commit
4a497e649b
5 changed files with 38 additions and 18 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: glapi.c,v 1.55 2001/06/05 23:54:00 davem69 Exp $ */
|
||||
/* $Id: glapi.c,v 1.56 2001/06/06 22:55:28 davem69 Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
|
@ -52,10 +52,6 @@
|
|||
#include "glapitable.h"
|
||||
#include "glthread.h"
|
||||
|
||||
#ifdef USE_SPARC_ASM
|
||||
#include "SPARC/sparc.h"
|
||||
#endif
|
||||
|
||||
/***** BEGIN NO-OP DISPATCH *****/
|
||||
|
||||
static GLboolean WarnFlag = GL_FALSE;
|
||||
|
|
@ -1709,7 +1705,9 @@ get_static_proc_address(const char *funcName)
|
|||
static struct name_address_offset ExtEntryTable[MAX_EXTENSION_FUNCS];
|
||||
static GLuint NumExtEntryPoints = 0;
|
||||
|
||||
|
||||
#ifdef USE_SPARC_ASM
|
||||
extern void __glapi_sparc_icache_flush(unsigned int *);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Generate a dispatch function (entrypoint) which jumps through
|
||||
|
|
@ -1789,19 +1787,19 @@ generate_entrypoint(GLuint functionOffset)
|
|||
#ifdef __sparc_v9__
|
||||
code[0] |= (glapi_addr >> (32 + 10));
|
||||
code[1] |= ((glapi_addr & 0xffffffff) >> 10);
|
||||
_mesa_sparc_icache_flush(&code[0]);
|
||||
__glapi_sparc_icache_flush(&code[0]);
|
||||
code[2] |= ((glapi_addr >> 32) & ((1 << 10) - 1));
|
||||
code[3] |= (glapi_addr & ((1 << 10) - 1));
|
||||
_mesa_sparc_icache_flush(&code[2]);
|
||||
__glapi_sparc_icache_flush(&code[2]);
|
||||
code[6] |= ((functionOffset * 8) >> 10);
|
||||
code[7] |= ((functionOffset * 8) & ((1 << 10) - 1));
|
||||
_mesa_sparc_icache_flush(&code[6]);
|
||||
__glapi_sparc_icache_flush(&code[6]);
|
||||
#else
|
||||
code[0] |= (glapi_addr >> 10);
|
||||
code[1] |= (glapi_addr & ((1 << 10) - 1));
|
||||
_mesa_sparc_icache_flush(&code[0]);
|
||||
__glapi_sparc_icache_flush(&code[0]);
|
||||
code[2] |= (functionOffset * 4);
|
||||
_mesa_sparc_icache_flush(&code[2]);
|
||||
__glapi_sparc_icache_flush(&code[2]);
|
||||
#endif
|
||||
}
|
||||
return code;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
# $Id: glsparcasm.py,v 1.2 2001/06/05 23:54:00 davem69 Exp $
|
||||
# $Id: glsparcasm.py,v 1.3 2001/06/06 22:55:28 davem69 Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 3.5
|
||||
|
|
@ -51,10 +51,20 @@ def PrintHead():
|
|||
print ' * sethi/or instruction sequences below at library init time.'
|
||||
print ' */'
|
||||
print ''
|
||||
print ''
|
||||
print '.text'
|
||||
print '.align 32'
|
||||
print '.globl __glapi_sparc_icache_flush'
|
||||
print '__glapi_sparc_icache_flush: /* %o0 = insn_addr */'
|
||||
print '\tflush\t%o0'
|
||||
print '\tretl'
|
||||
print '\t nop'
|
||||
print ''
|
||||
print '.data'
|
||||
print '.align 64'
|
||||
print ''
|
||||
print '.globl _mesa_sparc_glapi_begin'
|
||||
print '.type _mesa_sparc_glapi_begin,@function'
|
||||
print '_mesa_sparc_glapi_begin:'
|
||||
print ''
|
||||
return
|
||||
|
|
@ -64,6 +74,7 @@ def PrintTail():
|
|||
print '\t nop'
|
||||
print ''
|
||||
print '.globl _mesa_sparc_glapi_end'
|
||||
print '.type _mesa_sparc_glapi_end,@function'
|
||||
print '_mesa_sparc_glapi_end:'
|
||||
print ''
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -8,10 +8,20 @@
|
|||
* sethi/or instruction sequences below at library init time.
|
||||
*/
|
||||
|
||||
|
||||
.text
|
||||
.align 32
|
||||
.globl __glapi_sparc_icache_flush
|
||||
__glapi_sparc_icache_flush: /* %o0 = insn_addr */
|
||||
flush %o0
|
||||
retl
|
||||
nop
|
||||
|
||||
.data
|
||||
.align 64
|
||||
|
||||
.globl _mesa_sparc_glapi_begin
|
||||
.type _mesa_sparc_glapi_begin,@function
|
||||
_mesa_sparc_glapi_begin:
|
||||
|
||||
GLOBL_FN(GL_PREFIX(NewList))
|
||||
|
|
@ -11758,5 +11768,6 @@ GL_PREFIX(SamplePatternSGIS):
|
|||
nop
|
||||
|
||||
.globl _mesa_sparc_glapi_end
|
||||
.type _mesa_sparc_glapi_end,@function
|
||||
_mesa_sparc_glapi_end:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: sparc.c,v 1.4 2001/06/06 11:46:04 davem69 Exp $ */
|
||||
/* $Id: sparc.c,v 1.5 2001/06/06 22:55:28 davem69 Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
|
@ -143,6 +143,7 @@ void _mesa_init_all_sparc_transform_asm(void)
|
|||
|
||||
extern unsigned int _mesa_sparc_glapi_begin;
|
||||
extern unsigned int _mesa_sparc_glapi_end;
|
||||
extern void __glapi_sparc_icache_flush(unsigned int *);
|
||||
|
||||
void _mesa_init_sparc_glapi_relocs(void)
|
||||
{
|
||||
|
|
@ -157,15 +158,15 @@ void _mesa_init_sparc_glapi_relocs(void)
|
|||
#ifdef __sparc_v9__
|
||||
insn_ptr[0] |= (disp_addr >> (32 + 10));
|
||||
insn_ptr[1] |= ((disp_addr & 0xffffffff) >> 10);
|
||||
_mesa_sparc_icache_flush(&insn_ptr[0]);
|
||||
__glapi_sparc_icache_flush(&insn_ptr[0]);
|
||||
insn_ptr[2] |= ((disp_addr >> 32) & ((1 << 10) - 1));
|
||||
insn_ptr[3] |= (disp_addr & ((1 << 10) - 1));
|
||||
_mesa_sparc_icache_flush(&insn_ptr[2]);
|
||||
__glapi_sparc_icache_flush(&insn_ptr[2]);
|
||||
insn_ptr += 10;
|
||||
#else
|
||||
insn_ptr[0] |= (disp_addr >> 10);
|
||||
insn_ptr[1] |= (disp_addr & ((1 << 10) - 1));
|
||||
_mesa_sparc_icache_flush(&insn_ptr[0]);
|
||||
__glapi_sparc_icache_flush(&insn_ptr[0]);
|
||||
insn_ptr += 4;
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: sparc.h,v 1.2 2001/06/05 23:54:01 davem69 Exp $ */
|
||||
/* $Id: sparc.h,v 1.3 2001/06/06 22:55:28 davem69 Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
|
@ -34,6 +34,5 @@
|
|||
|
||||
extern void _mesa_init_all_sparc_transform_asm(void);
|
||||
extern void _mesa_init_sparc_glapi_relocs(void);
|
||||
extern void _mesa_sparc_icache_flush(unsigned int *);
|
||||
|
||||
#endif /* !(SPARC_H) */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue