diff --git a/module/system/il/compile.scm b/module/system/il/compile.scm index a4fd8b0cf..e9354c45b 100644 --- a/module/system/il/compile.scm +++ b/module/system/il/compile.scm @@ -280,7 +280,8 @@ (finalize-index! locs) (finalize-index! exts) ;; export arguments - (do ((n 0 (1+ n)) (l args (cdr l))) + (do ((n 0 (1+ n)) + (l args (cdr l))) ((null? l)) (let ((v (car l))) (if (eq? v.kind 'external) diff --git a/src/vm_loader.c b/src/vm_loader.c index 5469fcef8..899e9928f 100644 --- a/src/vm_loader.c +++ b/src/vm_loader.c @@ -142,7 +142,7 @@ VM_DEFINE_LOADER (load_program, "load-program") SCM_PROGRAM_NARGS (prog) = (i >> 12) & 0x07; /* 15-12 bits */ SCM_PROGRAM_NREST (prog) = (i >> 11) & 0x01; /* 11 bit */ SCM_PROGRAM_NLOCS (prog) = (i >> 4) & 0x7f; /* 10-4 bits */ - SCM_PROGRAM_NEXTS (prog) = i & 0x07; /* 3-0 bits */ + SCM_PROGRAM_NEXTS (prog) = i & 0x0f; /* 3-0 bits */ } } else diff --git a/src/vm_system.c b/src/vm_system.c index 9ec9ce33d..1fa3625f8 100644 --- a/src/vm_system.c +++ b/src/vm_system.c @@ -488,9 +488,9 @@ VM_DEFINE_INSTRUCTION (return, "return", 0, 0, 1) FREE_FRAME (); /* Restore the last program */ - external = fp[bp->nargs + bp->nlocs]; program = SCM_VM_FRAME_PROGRAM (fp); CACHE_PROGRAM (); + external = fp[bp->nargs + bp->nlocs]; PUSH (ret); NEXT; }