pike.git / src / code / README.txt

version» Context lines:

pike.git/src/code/README.txt:214:      OPCODE_RETURN_JUMPADDR    If defined, jump functions that return the address to jump to    will be generated for I_JUMP instructions, so the ins_f_byte*    must generate machine code that (unconditionally) jumps to the    return value for those opcodes. If this isn't defined, they    will instead use SET_PROG_COUNTER to change the address they    return to. This macro allows faster code on cpus where setting    the return address wreaks havoc in the instruction pipelines.    + OPCODE_INLINE_CATCH +  If defined, each F_CATCH opcode should set up its own +  recovery. Pike_interpreter.catching_eval_jmpbuf isn't used in +  that case. +    JUMP_SET_TO_PC_AT_NEXT(PIKE_OPCODE_T *PC)    Used in I_JUMP opcodes to store the pc to the next    instruction, to compensate for any machine code that is    inserted after the call. PC is the lvalue where it should be    stored. Must be defined if OPCODE_RETURN_JUMPADDR is.      void CHECK_RELOC(size_t reloc, size_t program_size)    Check if a relocation is valid for the program.    Should throw an error on bad relocations.   
pike.git/src/code/README.txt:236:      Help structures and functions implemented in other places:      struct instr instrs[];    Array of bytecode instruction definitions. Indexed by    F-opcode minus F_OFFSET. See opcodes.h for details.      PIKE_OPCODE_T *inter_return_opcode_F_CATCH(PIKE_OPCODE_T *addr)    Function to simplify implementation of F_CATCH in    OPCODE_INLINE_RETURN mode. See interpret.c for details. +  + PIKE_OPCODE_T *setup_catch_context(PIKE_OPCODE_T *addr) +  Helper function for F_CATCH machine code. See interpret.c for details. +  + PIKE_OPCODE_T *handle_caught_exception(void) +  Helper function for F_CATCH machine code. See interpret.c for details.