pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:969:   /* Machine code entry prologue.    *    * On entry:    * RDI: Pike_interpreter (ARG1_REG)    *    * During interpreting:    * R15: Pike_interpreter    */   void amd64_ins_entry(void)   { +  size_t orig_ppc = PIKE_PC;    /* Push all registers that the ABI requires to be preserved. */    push(P_REG_RBP);    mov_reg_reg(P_REG_RSP, P_REG_RBP);    push(P_REG_R15);    push(P_REG_R14);    push(P_REG_R13);    push(P_REG_R12);    push(P_REG_RBX);    sub_reg_imm(P_REG_RSP, 8); /* Align on 16 bytes. */    mov_reg_reg(ARG1_REG, Pike_interpreter_reg);    amd64_flush_code_generator_state(); -  +  +  if( PIKE_PC - orig_ppc != ENTRY_PROLOGUE_SIZE ) /* sanity check */ +  Pike_fatal("ENTRY_PROLOGUE_SIZE incorrectly set, should be 0x%x\n", +  PIKE_PC-orig_ppc );   }      void amd64_flush_code_generator_state(void)   {    sp_reg = -1;    fp_reg = -1;    ret_for_func = 0;    mark_sp_reg = -1;    dirty_regs = 0;    amd64_prev_stored_pc = -1;