pike.git / src / opcodes.c

version» Context lines:

pike.git/src/opcodes.c:191:   #undef OPCODE2_TAILBRANCH      #else   #define ADDR(X)   #define BRANCHADDR(X)   #define JUMPADDR(X)   #define NULLADDR   #define ALIASADDR(X)   #endif    - #define OPCODE0(OP,DESC,FLAGS) { DESC, OP, FLAGS ADDR(OP) }, - #define OPCODE1(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_HASARG ADDR(OP) }, - #define OPCODE2(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_TWO_ARGS ADDR(OP) }, - #define OPCODE0_TAIL(OP,DESC,FLAGS) OPCODE0(OP,DESC,FLAGS) - #define OPCODE1_TAIL(OP,DESC,FLAGS) OPCODE1(OP,DESC,FLAGS) - #define OPCODE2_TAIL(OP,DESC,FLAGS) OPCODE2(OP,DESC,FLAGS) -  - #define OPCODE0_PTRJUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISPTRJUMP JUMPADDR(OP) }, - #define OPCODE1_PTRJUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISPTRJUMPARG JUMPADDR(OP) }, - #define OPCODE2_PTRJUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISPTRJUMPARGS JUMPADDR(OP) }, - #define OPCODE0_TAILPTRJUMP(OP,DESC,FLAGS) OPCODE0_PTRJUMP(OP,DESC,FLAGS) - #define OPCODE1_TAILPTRJUMP(OP,DESC,FLAGS) OPCODE1_PTRJUMP(OP,DESC,FLAGS) - #define OPCODE2_TAILPTRJUMP(OP,DESC,FLAGS) OPCODE2_PTRJUMP(OP,DESC,FLAGS) -  - #define OPCODE0_JUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISJUMP JUMPADDR(OP) }, - #define OPCODE1_JUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISJUMPARG JUMPADDR(OP) }, - #define OPCODE2_JUMP(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISJUMPARGS JUMPADDR(OP) }, - #define OPCODE0_TAILJUMP(OP, DESC, FLAGS) OPCODE0_JUMP(OP,DESC,FLAGS) - #define OPCODE1_TAILJUMP(OP, DESC, FLAGS) OPCODE1_JUMP(OP,DESC,FLAGS) - #define OPCODE2_TAILJUMP(OP, DESC, FLAGS) OPCODE2_JUMP(OP,DESC,FLAGS) -  - #define OPCODE0_RETURN(OP, DESC, FLAGS) OPCODE0_JUMP(OP,DESC,FLAGS | I_RETURN) - #define OPCODE1_RETURN(OP, DESC, FLAGS) OPCODE1_JUMP(OP,DESC,FLAGS | I_RETURN) - #define OPCODE2_RETURN(OP, DESC, FLAGS) OPCODE2_JUMP(OP,DESC,FLAGS | I_RETURN) - #define OPCODE0_TAILRETURN(OP, DESC, FLAGS) OPCODE0_RETURN(OP,DESC,FLAGS) - #define OPCODE1_TAILRETURN(OP, DESC, FLAGS) OPCODE1_RETURN(OP,DESC,FLAGS) - #define OPCODE2_TAILRETURN(OP, DESC, FLAGS) OPCODE2_RETURN(OP,DESC,FLAGS) -  - #define OPCODE0_ALIAS(OP, DESC, FLAGS, A) { DESC, OP, FLAGS ALIASADDR(A) }, - #define OPCODE1_ALIAS(OP, DESC, FLAGS, A) { DESC, OP, FLAGS | I_HASARG ALIASADDR(A) }, - #define OPCODE2_ALIAS(OP, DESC, FLAGS, A) { DESC, OP, FLAGS | I_TWO_ARGS ALIASADDR(A) }, -  - #define OPCODE0_BRANCH(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISBRANCH BRANCHADDR(OP) }, - #define OPCODE1_BRANCH(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISBRANCHARG BRANCHADDR(OP) }, - #define OPCODE2_BRANCH(OP,DESC,FLAGS) { DESC, OP, FLAGS | I_ISBRANCHARGS BRANCHADDR(OP) }, - #define OPCODE0_TAILBRANCH(OP,DESC,FLAGS) OPCODE0_BRANCH(OP,DESC,FLAGS) - #define OPCODE1_TAILBRANCH(OP,DESC,FLAGS) OPCODE1_BRANCH(OP,DESC,FLAGS) - #define OPCODE2_TAILBRANCH(OP,DESC,FLAGS) OPCODE2_BRANCH(OP,DESC,FLAGS) -  - #define OPCODE_NOCODE(DESC, OP, FLAGS) { DESC, OP, FLAGS NULLADDR }, -  - const struct keyword instr_names[]= - { - #include "opcode_list.h" - }; -  - #undef OPCODE0 - #undef OPCODE1 - #undef OPCODE2 - #undef OPCODE0_TAIL - #undef OPCODE1_TAIL - #undef OPCODE2_TAIL -  - #undef OPCODE0_JUMP - #undef OPCODE1_JUMP - #undef OPCODE2_JUMP - #undef OPCODE0_TAILJUMP - #undef OPCODE1_TAILJUMP - #undef OPCODE2_TAILJUMP -  - #undef OPCODE0_PTRJUMP - #undef OPCODE1_PTRJUMP - #undef OPCODE2_PTRJUMP - #undef OPCODE0_TAILPTRJUMP - #undef OPCODE1_TAILPTRJUMP - #undef OPCODE2_TAILPTRJUMP -  - #undef OPCODE0_RETURN - #undef OPCODE1_RETURN - #undef OPCODE2_RETURN - #undef OPCODE0_TAILRETURN - #undef OPCODE1_TAILRETURN - #undef OPCODE2_TAILRETURN -  - #undef OPCODE0_ALIAS - #undef OPCODE1_ALIAS - #undef OPCODE2_ALIAS -  - #undef OPCODE0_BRANCH - #undef OPCODE1_BRANCH - #undef OPCODE2_BRANCH - #undef OPCODE0_TAILBRANCH - #undef OPCODE1_TAILBRANCH - #undef OPCODE2_TAILBRANCH - #undef OPCODE_NOCODE -  +    #define OPCODE0(OP,DESC,FLAGS) { DESC, FLAGS ADDR(OP) },   #define OPCODE1(OP,DESC,FLAGS) { DESC, FLAGS | I_HASARG ADDR(OP) },   #define OPCODE2(OP,DESC,FLAGS) { DESC, FLAGS | I_TWO_ARGS ADDR(OP) },   #define OPCODE0_TAIL(OP,DESC,FLAGS) OPCODE0(OP,DESC,FLAGS)   #define OPCODE1_TAIL(OP,DESC,FLAGS) OPCODE1(OP,DESC,FLAGS)   #define OPCODE2_TAIL(OP,DESC,FLAGS) OPCODE2(OP,DESC,FLAGS)      #define OPCODE0_PTRJUMP(OP,DESC,FLAGS) { DESC, FLAGS | I_ISPTRJUMP JUMPADDR(OP) },   #define OPCODE1_PTRJUMP(OP,DESC,FLAGS) { DESC, FLAGS | I_ISPTRJUMPARG JUMPADDR(OP) },   #define OPCODE2_PTRJUMP(OP,DESC,FLAGS) { DESC, FLAGS | I_ISPTRJUMPARGS JUMPADDR(OP) },
pike.git/src/opcodes.c:401:    return instrs[n-F_OFFSET].name;    }else{    sprintf(buf, "<OTHER %d>", n);    return buf;    }   }      void init_opcodes(void)   {   #ifdef PIKE_DEBUG -  int fatal_later=0; +    #ifdef INSTR_PROFILING    instr_counter_storage=init_instr_storage_pointers(p_flag);   #endif -  -  for(unsigned int i=0; i<NELEM(instr_names);i++) -  { -  const char *word = instr_names[i].word; -  int token = instr_names[i].token - F_OFFSET; -  const char *name; -  -  if ((size_t)token >= NELEM(instrs)) { -  Pike_fatal("Instruction out of bounds.\n"); -  } -  -  name = instrs[token].name; -  -  if (name && name != word) { -  Pike_fatal("Wrong instruction name: %s vs. %s\n", name, word); -  } -  } +    #endif   }      void exit_opcodes(void)   {   #ifdef PIKE_DEBUG    if(p_flag)    {    extern void present_constant_profiling(void);    int e;