Branch: Tag:

2017-10-09

2017-10-09 18:08:07 by Martin Karlgren <marty@roxen.com>

X86-64: Check C stack margin before adding stub stack frames.

1224:   #endif /* MACHINE_CODE_STACK_FRAMES */      static void amd64_load_fp_reg(void); + static void amd64_call_c_function(void *addr);      void amd64_ins_start_function(void)   {
1235: Inside #if defined(MACHINE_CODE_STACK_FRAMES)
   and_reg32_imm( P_REG_RAX, PIKE_FRAME_RETURN_INTERNAL);    jz( &label_A );    +  amd64_call_c_function(check_c_stack_margin); +     /* This is an internal frame (no entry prologue), so we'll insert a    minimal frame that can be used to unwind the C stack. */    mov_mem_reg(fp_reg, OFFSETOF(pike_frame, next), P_REG_RAX);