Branch: Tag:

2017-02-21

2017-02-21 20:41:13 by Martin Karlgren <marty@roxen.com>

Inline the F_CATCH opcode (on AMD64 so far).

This is a prerequisite for MACHINE_CODE_STACK_FRAMES, since
inter_return_opcode_F_CATCH will "inject" itself on the C stack when the first
F_CATCH opcode is encountered (and won't vanish until inter return, which may
occur in an outer Pike frame).

12:   #include "pike_error.h"   #include "object.h"   #include "pike_rusage.h" + #include "pikecode.h"      struct catch_context   {
848: Inside #if defined(PIKE_USE_MACHINE_CODE) and #if defined(OPCODE_INLINE_RETURN)
  #ifdef OPCODE_INLINE_RETURN   PIKE_OPCODE_T *inter_return_opcode_F_CATCH(PIKE_OPCODE_T *addr);   #endif + #ifdef OPCODE_INLINE_CATCH + PIKE_OPCODE_T *setup_catch_context(PIKE_OPCODE_T *addr); + PIKE_OPCODE_T *handle_caught_exception(void); + #endif   #ifdef PIKE_DEBUG   void simple_debug_instr_prologue_0 (PIKE_INSTR_T instr);   void simple_debug_instr_prologue_1 (PIKE_INSTR_T instr, INT32 arg);