From: Taylor R Campbell Date: Sat, 28 Aug 2010 20:49:33 +0000 (+0000) Subject: Omit continuation code words after interpreter cache references. X-Git-Tag: 20101212-Gtk~83 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=4fbe0daf385cc70cd7dae0aa2d63d449a1ef7a12;p=mit-scheme.git 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. --- 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