From: Chris Hanson Date: Sun, 22 Apr 2018 01:56:02 +0000 (-0700) Subject: Change SVM compiler to use new pop-return instruction. X-Git-Tag: mit-scheme-pucked-x11-0.3.1~7^2~122 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=026b8d39e04e9c6bae736cd37b8dc35acb2e572d;p=mit-scheme.git Change SVM compiler to use new pop-return instruction. --- diff --git a/src/compiler/machines/svm/machine.scm b/src/compiler/machines/svm/machine.scm index 4f1ee7093..80546d04e 100644 --- a/src/compiler/machines/svm/machine.scm +++ b/src/compiler/machines/svm/machine.scm @@ -285,6 +285,7 @@ USA. (cdr form)))))) (define-interrupt-tests dynamic-link procedure continuation ic-procedure) +(define-inst pop-return) ;;;; Machine registers, register references. diff --git a/src/compiler/machines/svm/rules.scm b/src/compiler/machines/svm/rules.scm index 639ab9b79..37ea00525 100644 --- a/src/compiler/machines/svm/rules.scm +++ b/src/compiler/machines/svm/rules.scm @@ -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))