Change SVM compiler to use new pop-return instruction.
authorChris Hanson <org/chris-hanson/cph>
Sun, 22 Apr 2018 01:56:02 +0000 (18:56 -0700)
committerChris Hanson <org/chris-hanson/cph>
Sun, 22 Apr 2018 01:56:02 +0000 (18:56 -0700)
src/compiler/machines/svm/machine.scm
src/compiler/machines/svm/rules.scm

index 4f1ee70939baf2c4e77ff47360f9d8be96bdcffd..80546d04e7132b427d32c3edeb91a69abdacd160 100644 (file)
@@ -285,6 +285,7 @@ USA.
              (cdr form))))))
 
 (define-interrupt-tests dynamic-link procedure continuation ic-procedure)
+(define-inst pop-return)
 \f
 ;;;; Machine registers, register references.
 
index 639ab9b7915daaae5bf1fcbe4ae8e14ead4e8783..37ea00525d8dadc51925fc1b38e7c80d87ca5900 100644 (file)
@@ -600,9 +600,7 @@ USA.
   (let ((checks (get-exit-interrupt-checks)))
     (LAP ,@(clear-map!)
         ,@(if (null? checks) '() (inst:interrupt-test-continuation))
-        ,@(inst:load 'WORD rref:word-0 (ea:stack-pop))
-        ,@(inst:object-address rref:word-0 rref:word-0)
-        ,@(inst:jump (ea:indirect rref:word-0)))))
+        ,@(inst:pop-return))))
 
 (define-rule statement
   (INVOCATION:APPLY (? frame-size) (? continuation))