pike.git / src / interpreter.h

version» Context lines:

pike.git/src/interpreter.h:63:      static int eval_instruction(PIKE_OPCODE_T *pc)   {    unsigned INT32 prefix2=0,prefix=0;       debug_malloc_touch(Pike_fp);    while(1)    {    INT32 arg1, arg2;    PIKE_INSTR_T instr = pc[0]; +  +  restart_instr:    Pike_fp->pc = pc++;       STEP_BREAK_LINE      #ifdef PIKE_DEBUG    if (d_flag || Pike_interpreter.trace_level > 2)    low_debug_instr_prologue (instr);   #endif       switch(instr + F_OFFSET)
pike.git/src/interpreter.h:105:    case F_PREFIX2_24BITX256:    prefix2 += (unsigned INT32)(pc++)[0]<<24;    /* FALLTHRU */    case F_PREFIX2_WORDX256:    prefix2 += (unsigned INT32)(pc++)[0]<<16;    /* FALLTHRU */    case F_PREFIX2_CHARX256:    prefix2 += (pc++)[0]<<8;    break;    +  /* Support large opcodes. */ +  case F_INSTR_PREFIX_256: +  instr = 256 + pc[0]; +  goto restart_instr;    -  +    #define INTERPRETER      #define OPCODE0(OP, DESC, FLAGS, CODE) CASE(OP); CODE; DONE   #define OPCODE1(OP, DESC, FLAGS, CODE) CASE(OP); { \    arg1=GET_ARG(); \    FETCH; \    CODE; \    } DONE      #define OPCODE2(OP, DESC, FLAGS, CODE) CASE(OP); { \