pike.git / src / peep.c

version» Context lines:

pike.git/src/peep.c:12:   #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"   #include "pikecode.h"    - RCSID("$Id: peep.c,v 1.62 2001/07/20 12:44:49 grubba Exp $"); + RCSID("$Id: peep.c,v 1.63 2001/07/21 09:30:25 hubbe 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:127:   {    p_instr *p;   #ifdef PIKE_DEBUG    if(instr > (long)instrbuf.s.len / (long)sizeof(p_instr) || instr < 0)    fatal("update_arg outside known space.\n");   #endif    p=(p_instr *)instrbuf.s.str;    p[instr].arg=arg;   }    + #ifndef FLUSH_CODE_GENERATOR_STATE + #define FLUSH_CODE_GENERATOR_STATE() + #endif    -  +    /**** Bytecode Generator *****/      void assemble(void)   {    INT32 d,max_label,tmp;    INT32 *labels, *jumps, *uses;    ptrdiff_t e, length;    p_instr *c;    int reoptimize=!(debug_options & NO_PEEP_OPTIMIZING);   #ifdef PIKE_DEBUG
pike.git/src/peep.c:248:       c=(p_instr *)instrbuf.s.str;    length=instrbuf.s.len / sizeof(p_instr);       for(e=0;e<=max_label;e++) labels[e]=jumps[e]=-1;       c=(p_instr *)instrbuf.s.str;   #ifdef PIKE_DEBUG    synch_depth = 0;   #endif +  FLUSH_CODE_GENERATOR_STATE();    for(e=0;e<length;e++)    {    int linenumbers_stored=0;   #ifdef PIKE_DEBUG    if((a_flag > 2 && store_linenumbers) || a_flag > 3)    {    if (c->opcode == F_POP_SYNCH_MARK) synch_depth--;    fprintf(stderr, "===%4d %4lx %*s", c->line,    DO_NOT_WARN((unsigned long)PC), synch_depth, "");    dump_instr(c);
pike.git/src/peep.c:295: Inside #if defined(PIKE_DEBUG)
   if(c->arg == -1) break;   #ifdef PIKE_DEBUG    if(c->arg > max_label || c->arg < 0)    fatal("max_label calculation failed!\n");       if(labels[c->arg] != -1)    fatal("Duplicate label!\n");   #endif    labels[c->arg] = DO_NOT_WARN((INT32)PC);    UPDATE_PC(); +  FLUSH_CODE_GENERATOR_STATE();    break;       case F_VOLATILE_RETURN:    ins_f_byte(F_RETURN);    break;       default:    switch(instrs[c->opcode - F_OFFSET].flags)    {    case I_ISJUMP: