summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/intrinsics.h3
-rw-r--r--libguile/jit.c3
-rw-r--r--libguile/jit.h4
-rw-r--r--libguile/vm-engine.c29
-rw-r--r--libguile/vm.c4
5 files changed, 17 insertions, 26 deletions
diff --git a/libguile/intrinsics.h b/libguile/intrinsics.h
index aa2355bf1..47a896956 100644
--- a/libguile/intrinsics.h
+++ b/libguile/intrinsics.h
@@ -69,7 +69,6 @@ typedef void (*scm_t_thread_mra_intrinsic) (scm_thread*, uint8_t*);
typedef uint32_t* (*scm_t_vra_from_thread_intrinsic) (scm_thread*);
typedef uint8_t* (*scm_t_mra_from_thread_scm_intrinsic) (scm_thread*, SCM);
typedef uint8_t* (*scm_t_mra_from_thread_mra_intrinsic) (scm_thread*, uint8_t*);
-typedef SCM (*scm_t_scm_from_thread_mra_intrinsic) (scm_thread*, uint8_t*);
#define SCM_FOR_ALL_VM_INTRINSICS(M) \
M(scm_from_scm_scm, add, "add", ADD) \
@@ -121,7 +120,7 @@ typedef SCM (*scm_t_scm_from_thread_mra_intrinsic) (scm_thread*, uint8_t*);
M(thread_mra, push_interrupt_frame, "push-interrupt-frame", PUSH_INTERRUPT_FRAME) \
M(thread_scm_scm, foreign_call, "foreign-call", FOREIGN_CALL) \
M(thread_scm_noreturn, reinstate_continuation_x, "reinstate-continuation!", REINSTATE_CONTINUATION_X) \
- M(scm_from_thread_mra, capture_continuation, "capture-continuation", CAPTURE_CONTINUATION) \
+ M(scm_from_thread, capture_continuation, "capture-continuation", CAPTURE_CONTINUATION) \
M(mra_from_thread_scm, compose_continuation, "compose-continuation", COMPOSE_CONTINUATION) \
M(int_from_scm, rest_arg_length, "rest-arg-length", REST_ARG_LENGTH) \
M(mra_from_thread_mra, abort_to_prompt, "abort-to-prompt", ABORT_TO_PROMPT) \
diff --git a/libguile/jit.c b/libguile/jit.c
index 346e9197e..69b202132 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -1215,11 +1215,10 @@ scm_jit_compute_mcode (scm_thread *thread, struct scm_jit_function_data *data)
return NULL;
}
-uint32_t *
+void
scm_jit_enter_mcode (scm_thread *thread, const uint8_t *mcode)
{
abort ();
- return NULL;
}
void
diff --git a/libguile/jit.h b/libguile/jit.h
index 34f5751d9..325ec35ed 100644
--- a/libguile/jit.h
+++ b/libguile/jit.h
@@ -53,8 +53,8 @@ enum scm_jit_counter_value
SCM_INTERNAL const uint8_t *scm_jit_compute_mcode (scm_thread *thread,
struct scm_jit_function_data *data);
-SCM_INTERNAL uint32_t *scm_jit_enter_mcode (scm_thread *thread,
- const uint8_t *mcode);
+SCM_INTERNAL void scm_jit_enter_mcode (scm_thread *thread,
+ const uint8_t *mcode);
SCM_INTERNAL void scm_init_jit (void);
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 9789fc82d..8dc5c00c1 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -472,8 +472,8 @@ VM_NAME (scm_thread *thread)
if (mcode)
{
- ip = scm_jit_enter_mcode (thread, mcode);
- CACHE_SP ();
+ scm_jit_enter_mcode (thread, mcode);
+ CACHE_REGISTER ();
NEXT (0);
}
}
@@ -682,8 +682,8 @@ VM_NAME (scm_thread *thread)
if (mcode)
{
- ip = scm_jit_enter_mcode (thread, mcode);
- CACHE_SP ();
+ scm_jit_enter_mcode (thread, mcode);
+ CACHE_REGISTER ();
NEXT (0);
}
else
@@ -716,8 +716,8 @@ VM_NAME (scm_thread *thread)
if (mcode)
{
- ip = scm_jit_enter_mcode (thread, mcode);
- CACHE_SP ();
+ scm_jit_enter_mcode (thread, mcode);
+ CACHE_REGISTER ();
NEXT (0);
}
}
@@ -735,12 +735,11 @@ VM_NAME (scm_thread *thread)
VM_DEFINE_OP (15, capture_continuation, "capture-continuation", DOP1 (X8_S24))
{
uint32_t dst;
- uint8_t *mra = NULL;
UNPACK_24 (op, dst);
SYNC_IP ();
- SP_SET (dst, CALL_INTRINSIC (capture_continuation, (thread, mra)));
+ SP_SET (dst, CALL_INTRINSIC (capture_continuation, (thread)));
NEXT (1);
}
@@ -769,16 +768,10 @@ VM_NAME (scm_thread *thread)
ABORT_CONTINUATION_HOOK ();
if (mcode)
- {
- ip = scm_jit_enter_mcode (thread, mcode);
- CACHE_SP ();
- NEXT (0);
- }
- else
- {
- CACHE_REGISTER ();
- NEXT (0);
- }
+ scm_jit_enter_mcode (thread, mcode);
+
+ CACHE_REGISTER ();
+ NEXT (0);
}
/* builtin-ref dst:12 idx:12
diff --git a/libguile/vm.c b/libguile/vm.c
index 36255b204..4e60a96b1 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -1086,7 +1086,7 @@ reinstate_continuation_x (scm_thread *thread, SCM cont)
}
static SCM
-capture_continuation (scm_thread *thread, uint8_t *mra)
+capture_continuation (scm_thread *thread)
{
struct scm_vm *vp = &thread->vm;
SCM vm_cont = capture_stack (vp->stack_top,
@@ -1441,7 +1441,7 @@ scm_call_n (SCM proc, SCM *argv, size_t nargs)
if (vp->trace_level)
invoke_abort_hook (thread);
if (mcode)
- vp->ip = scm_jit_enter_mcode (thread, mcode);
+ scm_jit_enter_mcode (thread, mcode);
}
else
vp->ip = get_callee_vcode (thread);