diff options
Diffstat (limited to 'asmrun/stack.h')
-rw-r--r-- | asmrun/stack.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/asmrun/stack.h b/asmrun/stack.h index e8d1b5807..913ec4f55 100644 --- a/asmrun/stack.h +++ b/asmrun/stack.h @@ -96,6 +96,25 @@ struct caml_context { value * gc_regs; /* pointer to register block */ }; +/* Structure of frame descriptors */ + +typedef struct { + uintnat retaddr; + unsigned short frame_size; + unsigned short num_live; + unsigned short live_ofs[1]; +} frame_descr; + +/* Hash table of frame descriptors */ + +extern frame_descr ** caml_frame_descriptors; +extern int caml_frame_descriptors_mask; + +#define Hash_retaddr(addr) \ + (((uintnat)(addr) >> 3) & caml_frame_descriptors_mask) + +extern void caml_init_frame_descriptors(void); + /* Declaration of variables used in the asm code */ extern char * caml_bottom_of_stack; extern uintnat caml_last_return_address; |