pike.git / src / code / sparc.c

version» Context lines:

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)) {