Ignore:
Timestamp:
Sep 20, 2011, 2:19:03 AM (9 years ago)
Author:
rme
Message:

New functions in x86-utils.[ch], moved, more-or-less,
from xlbt.c.

Use them in x86-exceptions.c, in particular in
create_exception_callback_frame().

Move the definitions of the RECOVER_FN_xxx constants
from x86-exceptions.h to the appropriate x86-constants{32,64}.h
files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-constants64.h

    r14207 r14991  
    253253
    254254#define function_boundary_marker SUBTAG(fulltag_imm_1,15)       
     255
     256/*
     257 * To determine the function associated with a tagged return
     258 * address, we attempt to recognize an the instruction
     259 * (lea (@ disp (% rip)) (% fn)) at the tra.
     260 */
     261#define RECOVER_FN_FROM_RIP_LENGTH 7 /* the instruction is 7 bytes long */
     262#define RECOVER_FN_FROM_RIP_DISP_OFFSET 3 /* displacement word is 3 bytes in */
     263#define RECOVER_FN_FROM_RIP_WORD0 0x8d4c /* 0x4c 0x8d, little-endian */
     264#define RECOVER_FN_FROM_RIP_BYTE2 0x2d  /* third byte of opcode */
     265
    255266
    256267/* The objects themselves look something like this: */
Note: See TracChangeset for help on using the changeset viewer.