summaryrefslogtreecommitdiff
path: root/libguile/frames.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-11-19 18:09:34 +0100
committerAndy Wingo <wingo@pobox.com>2013-11-19 18:09:34 +0100
commit9121d9f1ac21a91d2031a186a5b3c77d551acaa4 (patch)
treed8525983a542d48b98d361276c0415aac4ce8628 /libguile/frames.h
parentb636cdb0f3e1b7e8723c214db7a9c80edac9ead6 (diff)
downloadguile-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.h14
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);