Omit continuation code words after interpreter cache references.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 28 Aug 2010 20:49:33 +0000 (20:49 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 28 Aug 2010 20:49:33 +0000 (20:49 +0000)
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

index 0788d1326fefb6085953f1aaf41548c408fa5a71..588fd1c86cb8a175573b9f39890c185f2bcfa2e8 100644 (file)
@@ -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))))
 \f
 ;;;; Synthesized Data