diff options
author | Andy Wingo <wingo@pobox.com> | 2013-11-19 18:09:34 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-11-19 18:09:34 +0100 |
commit | 9121d9f1ac21a91d2031a186a5b3c77d551acaa4 (patch) | |
tree | d8525983a542d48b98d361276c0415aac4ce8628 /libguile/frames.h | |
parent | b636cdb0f3e1b7e8723c214db7a9c80edac9ead6 (diff) | |
download | guile-9121d9f1ac21a91d2031a186a5b3c77d551acaa4.tar.gz |
All instruction pointers are now scm_t_uint32*
* libguile/frames.h (SCM_FRAME_RTL_RETURN_ADDRESS)
(SCM_FRAME_SET_RTL_RETURN_ADDRESS): Remove. The variants without _RTL
now work fine.
(struct scm_vm_frame): Change the return address to be a
scm_t_uint32*.
(struct scm_frame): Change IP to be scm_t_uint32*.
* libguile/frames.c (scm_c_make_frame)
* libguile/control.c (reify_partial_continuation, scm_c_abort)
* libguile/dynstack.c (PROMPT_IP)
(scm_dynstack_push_prompt, scm_dynstack_find_prompt)
* libguile/dynstack.h:
* libguile/vm-engine.c (SYNC_IP, RETURN_ONE_VALUE)
(call, return-values, prompt): Adapt.
Diffstat (limited to 'libguile/frames.h')
-rw-r--r-- | libguile/frames.h | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/libguile/frames.h b/libguile/frames.h index bc5216568..d425b9439 100644 --- a/libguile/frames.h +++ b/libguile/frames.h @@ -85,7 +85,7 @@ struct scm_vm_frame { SCM *dynamic_link; - scm_t_uint8 *return_address; + scm_t_uint32 *return_address; SCM locals[1]; /* Variable-length */ }; @@ -132,14 +132,6 @@ struct scm_vm_frame #define SCM_FRAME_PROGRAM(fp) (SCM_FRAME_LOCAL (fp, 0)) - -/* FIXME: Replace SCM_FRAME_RETURN_ADDRESS with these. */ -#define SCM_FRAME_RTL_RETURN_ADDRESS(fp) \ - ((scm_t_uint32 *) SCM_FRAME_RETURN_ADDRESS (fp)) -#define SCM_FRAME_SET_RTL_RETURN_ADDRESS(fp, ip) \ - SCM_FRAME_SET_RETURN_ADDRESS (fp, (scm_t_uint8 *) (ip)) - - /* * Heap frames */ @@ -149,7 +141,7 @@ struct scm_frame SCM stack_holder; SCM *fp; SCM *sp; - scm_t_uint8 *ip; + scm_t_uint32 *ip; scm_t_ptrdiff offset; }; @@ -163,7 +155,7 @@ struct scm_frame #define SCM_VALIDATE_VM_FRAME(p,x) SCM_MAKE_VALIDATE (p, x, VM_FRAME_P) SCM_API SCM scm_c_make_frame (SCM stack_holder, SCM *fp, SCM *sp, - scm_t_uint8 *ip, scm_t_ptrdiff offset); + scm_t_uint32 *ip, scm_t_ptrdiff offset); SCM_API SCM scm_frame_p (SCM obj); SCM_API SCM scm_frame_procedure (SCM frame); SCM_API SCM scm_frame_arguments (SCM frame); |