From 4fbe0daf385cc70cd7dae0aa2d63d449a1ef7a12 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Sat, 28 Aug 2010 20:49:33 +0000 Subject: [PATCH] Omit continuation code words after interpreter cache references. The RTL already arranges their continuations to follow them; putting an extra continuation code word causes the machine to try to execute the real one as if it were an instruction. --- src/compiler/machines/svm/rules.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/compiler/machines/svm/rules.scm b/src/compiler/machines/svm/rules.scm index 0788d1326..588fd1c86 100644 --- a/src/compiler/machines/svm/rules.scm +++ b/src/compiler/machines/svm/rules.scm @@ -1344,8 +1344,7 @@ USA. (LAP ,@(clear-map!) ,@(if safe? (trap:safe-lookup cache) - (trap:lookup cache)) - ,@(make-internal-continuation-label (generate-label))))) + (trap:lookup cache))))) (define-rule statement (INTERPRETER-CALL:CACHE-ASSIGNMENT (? cont) (? extension) (? value)) @@ -1355,8 +1354,7 @@ USA. (let* ((cache (interpreter-call-temporary extension)) (value (interpreter-call-temporary value))) (LAP ,@(clear-map!) - ,@(trap:assignment cache value) - ,@(make-internal-continuation-label (generate-label))))) + ,@(trap:assignment cache value)))) (define-rule statement (INTERPRETER-CALL:CACHE-UNASSIGNED? (? cont) (? extension)) @@ -1364,8 +1362,7 @@ USA. cont ; ignored (let ((cache (interpreter-call-temporary extension))) (LAP ,@(clear-map!) - ,@(trap:unassigned? cache) - ,@(make-internal-continuation-label (generate-label))))) + ,@(trap:unassigned? cache)))) ;;;; Synthesized Data -- 2.25.1