pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:9:    */      #include "global.h"      #undef CJUMP   #undef LOOP   #undef COMPARISON   #undef MKAPPLY   #undef DO_CALL_BUILTIN    - #undef DO_IF_ELSE_COMPUTED_GOTO - #ifdef HAVE_COMPUTED_GOTO - #define DO_IF_ELSE_COMPUTED_GOTO(A, B) (A) - #else /* !HAVE_COMPUTED_GOTO */ - #define DO_IF_ELSE_COMPUTED_GOTO(A, B) (B) - #endif /* HAVE_COMPUTED_GOTO */ -  +    #ifdef GEN_PROTOS   /* Used to generate the interpret_protos.h file. */   #define OPCODE0(A, B, F, C) OPCODE0(A, B, F) --- C   #define OPCODE1(A, B, F, C) OPCODE1(A, B, F) --- C   #define OPCODE2(A, B, F, C) OPCODE2(A, B, F) --- C   #define OPCODE0_TAIL(A, B, F, C) OPCODE0_TAIL(A, B, F) --- C   #define OPCODE1_TAIL(A, B, F, C) OPCODE1_TAIL(A, B, F) --- C   #define OPCODE2_TAIL(A, B, F, C) OPCODE2_TAIL(A, B, F) --- C   #define OPCODE0_JUMP(A, B, F, C) OPCODE0_JUMP(A, B, F) --- C   #define OPCODE1_JUMP(A, B, F, C) OPCODE1_JUMP(A, B, F) --- C
pike.git/src/interpret_functions.h:1631:    push_undefined();    POP_CATCH_CONTEXT;   });      OPCODE1_JUMP(F_SWITCH, "switch", I_UPDATE_ALL, {    INT32 tmp;    PIKE_OPCODE_T *addr;    JUMP_SET_TO_PC_AT_NEXT (addr);    tmp=switch_lookup(Pike_fp->context->prog->    constants[arg1].sval.u.array,Pike_sp-1); -  addr = DO_IF_ELSE_COMPUTED_GOTO(addr, (PIKE_OPCODE_T *) -  DO_ALIGN(PTR_TO_INT(addr), -  ((ptrdiff_t)sizeof(INT32)))); +  addr = (PIKE_OPCODE_T *) DO_ALIGN(PTR_TO_INT(addr), ((ptrdiff_t)sizeof(INT32)));    addr = (PIKE_OPCODE_T *)(((INT32 *)addr) + (tmp>=0 ? 1+tmp*2 : 2*~tmp));    if(*(INT32*)addr < 0) FAST_CHECK_THREADS_ON_BRANCH();    pop_stack();    DO_JUMP_TO(addr + *(INT32*)addr);   });      OPCODE1_JUMP(F_SWITCH_ON_INDEX, "switch on index", I_UPDATE_ALL, {    INT32 tmp;    PIKE_OPCODE_T *addr;    LOCAL_VAR(struct svalue tmp2);    JUMP_SET_TO_PC_AT_NEXT (addr);    index_no_free(&tmp2, Pike_sp-2, Pike_sp-1);    move_svalue (Pike_sp++, &tmp2);       tmp=switch_lookup(Pike_fp->context->prog->    constants[arg1].sval.u.array,Pike_sp-1);    pop_n_elems(3); -  addr = DO_IF_ELSE_COMPUTED_GOTO(addr, (PIKE_OPCODE_T *) -  DO_ALIGN(PTR_TO_INT(addr), -  ((ptrdiff_t)sizeof(INT32)))); +  addr = (PIKE_OPCODE_T *) DO_ALIGN(PTR_TO_INT(addr), ((ptrdiff_t)sizeof(INT32)));    addr = (PIKE_OPCODE_T *)(((INT32 *)addr) + (tmp>=0 ? 1+tmp*2 : 2*~tmp));    if(*(INT32*)addr < 0) FAST_CHECK_THREADS_ON_BRANCH();    DO_JUMP_TO(addr + *(INT32*)addr);   });      OPCODE2_JUMP(F_SWITCH_ON_LOCAL, "switch on local", 0, {    INT32 tmp;    PIKE_OPCODE_T *addr;    JUMP_SET_TO_PC_AT_NEXT (addr);    tmp=switch_lookup(Pike_fp->context->prog->    constants[arg2].sval.u.array,Pike_fp->locals + arg1); -  addr = DO_IF_ELSE_COMPUTED_GOTO(addr, (PIKE_OPCODE_T *) -  DO_ALIGN(PTR_TO_INT(addr), -  ((ptrdiff_t)sizeof(INT32)))); +  addr = (PIKE_OPCODE_T *) DO_ALIGN(PTR_TO_INT(addr), ((ptrdiff_t)sizeof(INT32)));    addr = (PIKE_OPCODE_T *)(((INT32 *)addr) + (tmp>=0 ? 1+tmp*2 : 2*~tmp));    if(*(INT32*)addr < 0) FAST_CHECK_THREADS_ON_BRANCH();    DO_JUMP_TO(addr + *(INT32*)addr);   });          /* LOOP(OPCODE, INCREMENT, OPERATOR, IS_OPERATOR) */   #define LOOP(ID, DESC, INC, OP2, OP4) \    OPCODE0_BRANCH(ID, DESC, 0, { \    union anything *i=get_pointer_if_this_type(Pike_sp-2, T_INT); \