pike.git
/
src
/
code
/
sparc.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/sparc.c:1:
/* || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: sparc.c,v 1.
41
2005/06/
17
16
:
56
:
08
grubba Exp $
+
|| $Id: sparc.c,v 1.
42
2005/06/
20
14
:
17
:
04
grubba Exp $
*/ /* * Machine code generator for sparc. * * Henrik Grubbström 20010720 */ #include "global.h" #include "svalue.h"
pike.git/src/code/sparc.c:637:
last_prog_id=Pike_compiler->new_program->id; last_num_linenumbers = Pike_compiler->new_program->num_linenumbers; LOAD_PIKE_FP(); /* Note: We fill the delay slot with the following opcode. * This works since the new %o7 is available immediately. * (Sparc Architecture Manual V9 p149.) */
+
#ifdef PIKE_OPCODE_SPARC64
+
/* stx %o7, [ %pike_fp, %offsetof(pike_frame, pc) ] */
+
add_to_program(0xc0702000|(SPARC_REG_O7<<25)|(SPARC_REG_PIKE_FP<<14)|
+
OFFSETOF(pike_frame, pc));
+
#else /* !PIKE_OPCODE_SPARC64 */
/* stw %o7, [ %pike_fp, %offsetof(pike_frame, pc) ] */ add_to_program(0xc0202000|(SPARC_REG_O7<<25)|(SPARC_REG_PIKE_FP<<14)| OFFSETOF(pike_frame, pc));
-
+
#endif /* PIKE_OPCODE_SPARC64 */
delay_ok = 1; } } ADD_CALL(addr, delay_ok); #if 1 /* Invalidate cached values if needed. */ if (i_flags & (I_UPDATE_SP|I_UPDATE_M_SP|I_UPDATE_FP)) {