pike.git / src / peep.c

version» Context lines:

pike.git/src/peep.c:11:   #include "pike_memory.h"   #include "peep.h"   #include "dmalloc.h"   #include "stuff.h"   #include "bignum.h"   #include "opcodes.h"   #include "builtin_functions.h"   #include "constants.h"   #include "interpret.h"    - RCSID("$Id: peep.c,v 1.59 2001/07/17 22:03:33 grubba Exp $"); + RCSID("$Id: peep.c,v 1.60 2001/07/18 17:42:36 grubba Exp $");      static void asm_opt(void);      dynamic_buffer instrbuf;      static int hasarg(int opcode)   {    return instrs[opcode-F_OFFSET].flags & I_HASARG;   }   
pike.git/src/peep.c:179:      #define SET_REG(REG, X) do { \    INT32 val_ = X; \    INT32 reg_ = REG; \    if ((-4096 <= val_) && (val_ <= 4095)) { \    /* or %g0, val_, reg */ \    add_to_program(0x80102000|(reg_<<25)|(val_ & 0x1fff)); \    } else { \    /* sethi %hi(val_), reg */ \    add_to_program(0x01000000|(reg_<<25)|((val_ >> 10)&0x3fffff)); \ -  if (val_ & 0x3ff) { \ +  if (1 || (val_ & 0x3ff)) { \    /* or reg, %lo(val_), reg */ \    add_to_program(0x80102000|(reg_<<25)|(reg_<<14)|(val_ & 0x0fff)); \    } \    if (val_ < 0) { \    /* sra reg, %g0, reg */ \    add_to_program(0x81380000|(reg_<<25)|(reg_<<14)); \    } \    } \    } while(0)      #define CALL_ABSOLUTE(X) do { \    SET_REG(REG_O2, (INT32)(X)); \    /* jmpl %o2, %o7 */ \    add_to_program(0x81c00000|(REG_O7<<25)|(REG_O2<<14)); \    /* noop */ \    add_to_program(0x01000000); \    } while(0)    - #if 0 + #if 1   #define UPDATE_PC() do { \    INT32 tmp = PC; \    SET_REG(REG_O3, ((INT32)(&Pike_interpreter.frame_pointer))); \    /* lduw %o3, %o3 */ \    add_to_program(0xc0000000|(REG_O3<<25)|(REG_O3<<14)); \    SET_REG(REG_O4, tmp); \    /* stw %o4, yy(%o3) */ \    add_to_program(0xc0202000|(REG_O4<<25)|(REG_O3<<14)| \    OFFSETOF(pike_frame, pc)); \    } while(0)
pike.git/src/peep.c:501:    store_linenumber(c->line, c->file);       switch(c->opcode)    {    case F_NOP:    case F_NOTREACHED:    case F_START_FUNCTION:    break;    case F_ALIGN:   #ifndef HAVE_COMPUTED_GOTO + #if !(defined(PIKE_USE_MACHINE_CODE) && defined(sparc))    while(PC % c->arg) add_to_program(0); -  + #endif /* !(PIKE_USE_MACHINE_CODE && sparc) */   #endif /* HAVE_COMPUTED_GOTO */    break;       case F_BYTE:   #ifdef HAVE_COMPUTED_GOTO    add_to_program((void *)(ptrdiff_t)(unsigned char)(c->arg));   #elif defined(PIKE_USE_MACHINE_CODE) && defined(sparc)    add_to_program(c->arg);   #else /* !HAVE_COMPUTED_GOTO */    add_to_program((unsigned char)(c->arg));