diff options
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r-- | libguile/vm-engine.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c index def7e807b..14f444c58 100644 --- a/libguile/vm-engine.c +++ b/libguile/vm-engine.c @@ -100,9 +100,9 @@ vm_run (SCM vm, SCM program, SCM args) SCM prog = program; /* Boot program */ - scm_byte_t bytes[3] = {scm_op_call, 0, scm_op_halt}; + scm_byte_t bytes[5] = {scm_op_mv_call, 0, 1, scm_op_make_int8_1, scm_op_halt}; bytes[1] = scm_ilength (args); /* FIXME: argument overflow */ - program = scm_c_make_program (bytes, 3, SCM_BOOL_F); + program = scm_c_make_program (bytes, 5, SCM_BOOL_F); /* Initial frame */ CACHE_REGISTER (); @@ -166,6 +166,11 @@ vm_run (SCM vm, SCM program, SCM args) err_args = SCM_EOL; goto vm_error; + vm_error_no_values: + err_msg = scm_from_locale_string ("VM: 0-valued return"); + err_args = SCM_EOL; + goto vm_error; + #if VM_CHECK_IP vm_error_invalid_address: err_msg = scm_from_locale_string ("VM: Invalid program address"); |