From: Guillermo J. Rozas Date: Sun, 5 Jul 1992 14:20:58 +0000 (+0000) Subject: Flush uses of INST. X-Git-Tag: 20090517-FFI~9238 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=94fddce0d21a45d4a3d9f809a6833bf52cfe5f06;p=mit-scheme.git Flush uses of INST. --- diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 9cbbdfed8..cdb1ae81f 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.43 1992/05/14 03:06:23 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 4.44 1992/07/05 14:20:16 jinx Exp $ Copyright (c) 1988-1992 Massachusetts Institute of Technology @@ -45,16 +45,16 @@ MIT in each case. |# (and (effective-address/address-register? source) (= (+ 8 (lap:ea-operand-1 source)) target))) (LAP) - (LAP ,(memory->machine-register source target)))) + (memory->machine-register source target))) (define (register->register-transfer source target) - (LAP ,(machine->machine-register source target))) + (machine->machine-register source target)) (define (home->register-transfer source target) - (LAP ,(pseudo->machine-register source target))) + (pseudo->machine-register source target)) (define (register->home-transfer source target) - (LAP ,(machine->pseudo-register source target))) + (machine->pseudo-register source target)) (define (pseudo-register-home register) (offset-reference regnum:regs-pointer (pseudo-register-offset register))) @@ -127,21 +127,21 @@ MIT in each case. |# (if (not (register-types-compatible? source target)) (error "Moving between incompatible register types" source target)) (if (float-register? source) - (INST (FMOVE ,(register-reference source) - ,(register-reference target))) - (INST (MOV L - ,(register-reference source) - ,(register-reference target))))) + (LAP (FMOVE ,(register-reference source) + ,(register-reference target))) + (LAP (MOV L + ,(register-reference source) + ,(register-reference target))))) (define (machine-register->memory source target) (if (float-register? source) - (INST (FMOVE D ,(register-reference source) ,target)) - (INST (MOV L ,(register-reference source) ,target)))) + (LAP (FMOVE D ,(register-reference source) ,target)) + (LAP (MOV L ,(register-reference source) ,target)))) (define (memory->machine-register source target) (if (float-register? target) - (INST (FMOVE D ,source ,(register-reference target))) - (INST (MOV L ,source ,(register-reference target))))) + (LAP (FMOVE D ,source ,(register-reference target))) + (LAP (MOV L ,source ,(register-reference target))))) (define (offset-reference register offset) (byte-offset-reference register (* 4 offset))) @@ -157,24 +157,19 @@ MIT in each case. |# (define (load-dnl n d) (cond ((zero? n) - (INST (CLR L (D ,d)))) + (LAP (CLR L (D ,d)))) ((<= -128 n 127) - (INST (MOVEQ (& ,n) (D ,d)))) + (LAP (MOVEQ (& ,n) (D ,d)))) (else - (INST (MOV L (& ,n) (D ,d)))))) + (LAP (MOV L (& ,n) (D ,d)))))) (define (load-dnw n d) (cond ((zero? n) - (INST (CLR W (D ,d)))) + (LAP (CLR W (D ,d)))) ((<= -128 n 127) - (INST (MOVEQ (& ,n) (D ,d)))) + (LAP (MOVEQ (& ,n) (D ,d)))) (else - (INST (MOV W (& ,n) (D ,d)))))) - -(define (test-dnw n d) - (if (zero? n) - (INST (TST W (D ,d))) - (INST (CMPI W (& ,n) (D ,d))))) + (LAP (MOV W (& ,n) (D ,d)))))) (define (ea+=constant ea c) (cond ((zero? c) @@ -242,15 +237,15 @@ MIT in each case. |# (define (memory-set-type type target) (if (= 8 scheme-type-width) - (INST (MOV B (& ,type) ,target)) - (INST (OR B (& ,(* type-scale-factor type)) ,target)))) + (LAP (MOV B (& ,type) ,target)) + (LAP (OR B (& ,(* type-scale-factor type)) ,target)))) (define (test-byte n effective-address) ;; This is used to test actual bytes. ;; Type codes are "preprocessed" by the pertinent rule. (if (and (zero? n) (effective-address/data&alterable? effective-address)) - (INST (TST B ,effective-address)) - (INST (CMPI B (& ,n) ,effective-address)))) + (LAP (TST B ,effective-address)) + (LAP (CMPI B (& ,n) ,effective-address)))) (define (test-non-pointer-constant constant target) (test-non-pointer (object-type constant) @@ -261,10 +256,10 @@ MIT in each case. |# (if (and (zero? type) (zero? datum) (effective-address/data&alterable? effective-address)) - (INST (TST L ,effective-address)) - (INST (CMPI UL - (& ,(make-non-pointer-literal type datum)) - ,effective-address)))) + (LAP (TST L ,effective-address)) + (LAP (CMPI UL + (& ,(make-non-pointer-literal type datum)) + ,effective-address)))) (define (set-standard-branches! cc) (set-current-branches! @@ -385,14 +380,14 @@ MIT in each case. |# (let ((loop (generate-label 'LOOP))) (with-counter (lambda (counter) - (LAP ,(load-dnw (-1+ n) counter) + (LAP ,@(load-dnw (-1+ n) counter) (LABEL ,loop) - ,(instruction-gen) + ,@(instruction-gen) (DB F (D ,counter) (@PCR ,loop)))))) (let loop ((n n)) (if (zero? n) (LAP) - (LAP ,(instruction-gen) + (LAP ,@(instruction-gen) ,@(loop (-1+ n))))))) (define (standard-target-expression? target) @@ -426,11 +421,11 @@ MIT in each case. |# (register-reference (move-to-alias-register! source type target)))) (lambda (target) (LAP - ,(if (eq? type 'FLOAT) - (load-float-register - (standard-register-reference source type false) - target) - (INST (MOV L + ,@(if (eq? type 'FLOAT) + (load-float-register + (standard-register-reference source type false) + target) + (LAP (MOV L ,(standard-register-reference source type true) ,target))) ,@(operate-on-target target))))) @@ -443,9 +438,9 @@ MIT in each case. |# (lambda (target) (let ((temp (reference-temporary-register! type))) (LAP ,@(operate-on-machine-target temp) - ,(if (eq? type 'FLOAT) - (load-float-register temp target) - (INST (MOV L ,temp ,target)))))))) + ,@(if (eq? type 'FLOAT) + (load-float-register temp target) + (LAP (MOV L ,temp ,target)))))))) (case (rtl:expression-type target) ((REGISTER) (let ((register (rtl:register-number target))) @@ -462,8 +457,8 @@ MIT in each case. |# (define (load-float-register source target) (if (effective-address/float-register? source) - (INST (FMOVE ,source ,target)) - (INST (FMOVE D ,source ,target)))) + (LAP (FMOVE ,source ,target)) + (LAP (FMOVE D ,source ,target)))) (define (reuse-and-operate-on-machine-target! type target operate-on-target) (reuse-machine-target! type target @@ -482,9 +477,9 @@ MIT in each case. |# target source1 source2) (let ((worst-case (lambda (target source1 source2) - (LAP ,(if (eq? target-type 'FLOAT) - (load-float-register source1 target) - (INST (MOV L ,source1 ,target))) + (LAP ,@(if (eq? target-type 'FLOAT) + (load-float-register source1 target) + (LAP (MOV L ,source1 ,target))) ,@(operate target source2))))) (reuse-machine-target! target-type target (lambda (target) @@ -563,8 +558,8 @@ MIT in each case. |# (define (test-fixnum effective-address) (if (effective-address/data&alterable? effective-address) - (INST (TST L ,effective-address)) - (INST (CMPI L (& 0) ,effective-address)))) + (LAP (TST L ,effective-address)) + (LAP (CMPI L (& 0) ,effective-address)))) (define (fixnum-predicate->cc predicate) (case predicate @@ -773,14 +768,14 @@ MIT in each case. |# (LAP (LS R L (& ,m) ,target) ,@(word->fixnum target)) (let ((temp (reference-temporary-register! 'DATA))) - (LAP ,(load-dnl m temp) + (LAP ,@(load-dnl m temp) (LS R L ,temp ,target) ,@(word->fixnum target)))))) (else (if (< n 9) (LAP (LS L L (& ,n) ,target)) (let ((temp (reference-temporary-register! 'DATA))) - (LAP ,(load-dnl n temp) + (LAP ,@(load-dnl n temp) (LS L L ,temp ,target)))))))) ;;; Quotient is weird because it must shift left the quotient, @@ -1027,32 +1022,6 @@ MIT in each case. |# (define (char->signed-8-bit-immediate character) (let ((ascii (char->ascii character))) (if (< ascii 128) ascii (- ascii 256)))) - -#| - -;; *** This is believed to be a fossil. *** -;; Left here until the first compilation to make sure that it really is. -;; Can be removed the next time it is seen. - -(define (byte-offset->register source source-reg target) - ;; This code uses a temporary register because right now the register - ;; allocator thinks that it could use the same register for the target - ;; and source, while what we want to happen is to first clear the target - ;; and then move from source to target. - ;; Optimal Code: (CLR L ,target-ref) - ;; (MOV B ,source ,target) - ;; source-register is passed in to check for this. Yuck. - (delete-dead-registers!) - (let* ((temp-ref (register-reference (allocate-temporary-register! 'DATA))) - (target (allocate-alias-register! target 'DATA))) - (if (= target source-reg) - (LAP (CLR L ,temp-ref) - (MOV B ,source ,temp-ref) - (MOV L ,temp-ref ,(register-reference target))) - (LAP (CLR L ,(register-reference target)) - (MOV B ,source ,(register-reference target)))))) - -|# ;;;; Registers/Entries @@ -1172,7 +1141,7 @@ MIT in each case. |# )) (define-integrable (invoke-interface code) - (LAP ,(load-dnw code 0) + (LAP ,@(load-dnw code 0) (JMP ,entry:compiler-scheme-to-interface))) #| @@ -1181,12 +1150,12 @@ MIT in each case. |# ;; The others can be handled similarly. (define-integrable (invoke-interface-jsr code) - (LAP ,(load-dnw code 0) + (LAP ,@(load-dnw code 0) (LEA (@PCO 12) (A 0)) (MOV L (A 0) (D 1)) (JMP ,entry:compiler-scheme-to-interface))) |# (define-integrable (invoke-interface-jsr code) - (LAP ,(load-dnw code 0) + (LAP ,@(load-dnw code 0) (JSR ,entry:compiler-scheme-to-interface-jsr))) \ No newline at end of file diff --git a/v7/src/compiler/machines/bobcat/rules1.scm b/v7/src/compiler/machines/bobcat/rules1.scm index b4b11e2da..50d53de0f 100644 --- a/v7/src/compiler/machines/bobcat/rules1.scm +++ b/v7/src/compiler/machines/bobcat/rules1.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 4.36 1991/10/25 06:49:58 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules1.scm,v 4.37 1992/07/05 14:20:36 jinx Exp $ -Copyright (c) 1988-91 Massachusetts Institute of Technology +Copyright (c) 1988-1992 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -385,7 +385,7 @@ MIT in each case. |# (CONS-POINTER (MACHINE-CONSTANT (? type)) (REGISTER (? datum)))) (let ((target (indirect-reference! address offset))) (LAP (MOV L ,(standard-register-reference datum 'DATA true) ,target) - ,(memory-set-type type target)))) + ,@(memory-set-type type target)))) (define-rule statement (ASSIGN (OFFSET (REGISTER (? address)) (? offset)) @@ -395,7 +395,7 @@ MIT in each case. |# (target (indirect-reference! address offset))) (LAP (LEA ,(indirect-reference! source n) ,temp) (MOV L ,temp ,target) - ,(memory-set-type type target)))) + ,@(memory-set-type type target)))) (define-rule statement (ASSIGN (OFFSET (REGISTER (? address)) (? offset)) @@ -405,7 +405,7 @@ MIT in each case. |# (target (indirect-reference! address offset))) (LAP (LEA ,(indirect-byte-reference! source n) ,temp) (MOV L ,temp ,target) - ,(memory-set-type type target)))) + ,@(memory-set-type type target)))) ;; Common case that can be done cheaply: @@ -436,7 +436,7 @@ MIT in each case. |# (LAP (LEA (@PCR ,(rtl-procedure/external-label (label->object label))) ,temp) (MOV L ,temp ,target) - ,(memory-set-type type target)))) + ,@(memory-set-type type target)))) (define-rule statement (ASSIGN (OFFSET (REGISTER (? a0)) (? n0)) @@ -502,7 +502,7 @@ MIT in each case. |# (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (CONS-POINTER (MACHINE-CONSTANT (? type)) (REGISTER (? datum)))) (LAP (MOV L ,(standard-register-reference datum 'DATA true) (@-A 7)) - ,(memory-set-type type (INST-EA (@A 7))))) + ,@(memory-set-type type (INST-EA (@A 7))))) (define-rule statement (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) @@ -515,28 +515,28 @@ MIT in each case. |# (CONS-POINTER (MACHINE-CONSTANT (? type)) (ENTRY:PROCEDURE (? label)))) (LAP (PEA (@PCR ,(rtl-procedure/external-label (label->object label)))) - ,(memory-set-type type (INST-EA (@A 7))))) + ,@(memory-set-type type (INST-EA (@A 7))))) (define-rule statement (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (CONS-POINTER (MACHINE-CONSTANT (? type)) (ENTRY:CONTINUATION (? label)))) (LAP (PEA (@PCR ,label)) - ,(memory-set-type type (INST-EA (@A 7))))) + ,@(memory-set-type type (INST-EA (@A 7))))) (define-rule statement (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (CONS-POINTER (MACHINE-CONSTANT (? type)) (OFFSET-ADDRESS (REGISTER (? r)) (? n)))) (LAP (PEA ,(indirect-reference! r n)) - ,(memory-set-type type (INST-EA (@A 7))))) + ,@(memory-set-type type (INST-EA (@A 7))))) (define-rule statement (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (CONS-POINTER (MACHINE-CONSTANT (? type)) (BYTE-OFFSET-ADDRESS (REGISTER (? r)) (? n)))) (LAP (PEA ,(indirect-byte-reference! r n)) - ,(memory-set-type type (INST-EA (@A 7))))) + ,@(memory-set-type type (INST-EA (@A 7))))) (define-rule statement (ASSIGN (PRE-INCREMENT (REGISTER 15) -1) (OFFSET (REGISTER (? r)) (? n))) diff --git a/v7/src/compiler/machines/bobcat/rules2.scm b/v7/src/compiler/machines/bobcat/rules2.scm index f8e8487f1..1a88e9578 100644 --- a/v7/src/compiler/machines/bobcat/rules2.scm +++ b/v7/src/compiler/machines/bobcat/rules2.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules2.scm,v 4.12 1990/01/18 22:44:04 cph Rel $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules2.scm,v 4.13 1992/07/05 14:20:58 jinx Exp $ -Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology +Copyright (c) 1988-1992 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -33,6 +33,7 @@ promotional, or sales literature without prior written consent from MIT in each case. |# ;;;; LAP Generation Rules: Predicates +;;; package: (compiler lap-syntaxer) (declare (usual-integrations)) @@ -98,7 +99,7 @@ MIT in each case. |# (define-rule predicate (TYPE-TEST (REGISTER (? register)) (? type)) (set-standard-branches! 'EQ) - (LAP ,(test-byte type (reference-alias-register! register 'DATA)))) + (test-byte type (reference-alias-register! register 'DATA))) (define-rule predicate (TYPE-TEST (OBJECT->TYPE (REGISTER (? register))) (? type)) @@ -129,7 +130,7 @@ MIT in each case. |# (set-standard-branches! 'EQ) (let ((source (indirect-reference! address offset))) (cond ((= scheme-type-width 8) - (LAP ,(test-byte type source))) + (test-byte type source)) ((and (zero? type) use-68020-instructions?) (LAP (BFTST ,source (& 0) (& ,scheme-type-width)))) (else @@ -141,7 +142,7 @@ MIT in each case. |# (LAP ,@(object->type source target) ,@(if (zero? type) (LAP) - (LAP ,(test-byte type target))))) + (test-byte type target)))) (define-rule predicate (EQ-TEST (REGISTER (? register-1)) (REGISTER (? register-2))) @@ -181,9 +182,9 @@ MIT in each case. |# (if (non-pointer-object? constant) (begin (set-standard-branches! 'EQ) - (LAP ,(test-non-pointer-constant - constant - (standard-register-reference register 'DATA true)))) + (test-non-pointer-constant + constant + (standard-register-reference register 'DATA true))) (compare/register*memory register (INST-EA (@PCR ,(constant->label constant))) 'EQ))) @@ -203,7 +204,7 @@ MIT in each case. |# (if (non-pointer-object? constant) (begin (set-standard-branches! 'EQ) - (LAP ,(test-non-pointer-constant constant memory))) + (test-non-pointer-constant constant memory)) (compare/memory*memory memory (INST-EA (@PCR ,(constant->label constant))) 'EQ)))) @@ -222,9 +223,9 @@ MIT in each case. |# (define (eq-test/synthesized-constant*register type datum register) (set-standard-branches! 'EQ) - (LAP ,(test-non-pointer type - datum - (standard-register-reference register 'DATA true)))) + (test-non-pointer type + datum + (standard-register-reference register 'DATA true))) (define-rule predicate (EQ-TEST (CONS-POINTER (MACHINE-CONSTANT (? type)) @@ -242,9 +243,9 @@ MIT in each case. |# (define (eq-test/synthesized-constant*memory type datum memory) (set-standard-branches! 'EQ) - (LAP ,(test-non-pointer type - datum - (predicate/memory-operand-reference memory)))) + (test-non-pointer type + datum + (predicate/memory-operand-reference memory))) ;;;; Fixnum/Flonum Predicates @@ -256,7 +257,7 @@ MIT in each case. |# (define-rule predicate (FIXNUM-PRED-1-ARG (? predicate) (REGISTER (? register))) (set-standard-branches! (fixnum-predicate->cc predicate)) - (LAP ,(test-fixnum (standard-register-reference register 'DATA true)))) + (test-fixnum (standard-register-reference register 'DATA true))) (define-rule predicate (FIXNUM-PRED-1-ARG (? predicate) (OBJECT->FIXNUM (REGISTER (? register)))) @@ -267,7 +268,7 @@ MIT in each case. |# (FIXNUM-PRED-1-ARG (? predicate) (? memory)) (QUALIFIER (predicate/memory-operand? memory)) (set-standard-branches! (fixnum-predicate->cc predicate)) - (LAP ,(test-fixnum (predicate/memory-operand-reference memory)))) + (test-fixnum (predicate/memory-operand-reference memory))) (define-rule predicate (FIXNUM-PRED-2-ARGS (? predicate) diff --git a/v7/src/compiler/machines/bobcat/rules3.scm b/v7/src/compiler/machines/bobcat/rules3.scm index 5727db5d8..43b83f48a 100644 --- a/v7/src/compiler/machines/bobcat/rules3.scm +++ b/v7/src/compiler/machines/bobcat/rules3.scm @@ -1,8 +1,8 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules3.scm,v 4.31 1991/05/28 19:14:55 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/rules3.scm,v 4.32 1992/07/05 14:20:51 jinx Exp $ -Copyright (c) 1988-1991 Massachusetts Institute of Technology +Copyright (c) 1988-1992 Massachusetts Institute of Technology This material was developed by the Scheme project at the Massachusetts Institute of Technology, Department of Electrical Engineering and @@ -41,13 +41,13 @@ MIT in each case. |# (define-integrable (clear-continuation-type-code) (if (= scheme-type-width 8) - (INST (CLR B (@A 7))) - (INST (AND L ,mask-reference (@A 7))))) + (LAP (CLR B (@A 7))) + (LAP (AND L ,mask-reference (@A 7))))) (define-rule statement (POP-RETURN) (LAP ,@(clear-map!) - ,(clear-continuation-type-code) + ,@(clear-continuation-type-code) (RTS))) (define-rule statement @@ -64,7 +64,7 @@ MIT in each case. |# ((7) (LAP (JMP ,entry:compiler-shortcircuit-apply-size-7))) ((8) (LAP (JMP ,entry:compiler-shortcircuit-apply-size-8))) (else - (LAP ,(load-dnl frame-size 2) + (LAP ,@(load-dnl frame-size 2) (JMP ,entry:compiler-shortcircuit-apply)))))) (define-rule statement @@ -78,14 +78,14 @@ MIT in each case. |# frame-size continuation ;; It expects the procedure at the top of the stack (LAP ,@(clear-map!) - ,(clear-continuation-type-code) + ,@(clear-continuation-type-code) (RTS))) (define-rule statement (INVOCATION:LEXPR (? number-pushed) (? continuation) (? label)) continuation (LAP ,@(clear-map!) - ,(load-dnl number-pushed 2) + ,@(load-dnl number-pushed 2) (LEA (@PCR ,label) (A 0)) (MOV L (A 0) (D 1)) ,@(invoke-interface code:compiler-lexpr-apply))) @@ -95,8 +95,8 @@ MIT in each case. |# continuation ;; It expects the procedure at the top of the stack (LAP ,@(clear-map!) - ,(load-dnl number-pushed 2) - ,(clear-continuation-type-code) + ,@(load-dnl number-pushed 2) + ,@(clear-continuation-type-code) (MOV L (@A+ 7) (D 1)) ,@(invoke-interface code:compiler-lexpr-apply))) @@ -131,7 +131,7 @@ MIT in each case. |# (delete-dead-registers!) (LAP ,@set-extension ,@(clear-map!) - ,(load-dnl frame-size 3) + ,@(load-dnl frame-size 3) (LEA (@PCR ,*block-label*) (A 1)) (MOV L (A 1) (D 2)) ,@(invoke-interface code:compiler-cache-reference-apply)))) @@ -146,7 +146,7 @@ MIT in each case. |# (LAP ,@set-environment ,@(clear-map!) ,@(load-constant name (INST-EA (D 2))) - ,(load-dnl frame-size 3) + ,@(load-dnl frame-size 3) ,@(invoke-interface code:compiler-lookup-apply)))) (define-rule statement @@ -154,7 +154,7 @@ MIT in each case. |# continuation (LAP ,@(clear-map!) ,@(if (eq? primitive compiled-error-procedure) - (LAP ,(load-dnl frame-size 1) + (LAP ,@(load-dnl frame-size 1) (JMP ,entry:compiler-error)) (let ((arity (primitive-procedure-arity primitive))) (cond ((not (negative? arity)) @@ -167,7 +167,7 @@ MIT in each case. |# (JMP ,entry:compiler-primitive-lexpr-apply))) (else ;; Unknown primitive arity. Go through apply. - (LAP ,(load-dnl frame-size 2) + (LAP ,@(load-dnl frame-size 2) (MOV L (@PCR ,(constant->label primitive)) (D 1)) ,@(invoke-interface code:compiler-apply)))))))) @@ -245,10 +245,10 @@ MIT in each case. |# (LAP (MOV L (@AO 7 4) (@AO 7 8)) (MOV L (@A+ 7) (@A 7))) (let ((i (lambda () - (INST (MOV L (@A+ 7) - ,(offset-reference a7 (-1+ how-far))))))) - (LAP ,(i) - ,(i) + (LAP (MOV L (@A+ 7) + ,(offset-reference a7 (-1+ how-far))))))) + (LAP ,@(i) + ,@(i) ,@(increment-machine-register 15 (* 4 (- how-far 2))))))) (else (generate/move-frame-up frame-size (offset-reference a7 offset)))))) @@ -318,9 +318,9 @@ MIT in each case. |# ,@(generate-n-times frame-size 5 (lambda () - (INST (MOV L - (@-A ,(- temp 8)) - (@-A ,(- destination 8))))) + (LAP (MOV L + (@-A ,(- temp 8)) + (@-A ,(- destination 8))))) (lambda (generator) (generator (allocate-temporary-register! 'DATA)))) (MOV L ,(register-reference destination) (A 7))))) @@ -647,7 +647,7 @@ long-word aligned and there is no need for shuffling. ;; and returns its value in a0. (define (MC68040/allocate-closure size) - (LAP ,(load-dnl size 0) + (LAP ,@(load-dnl size 0) (JSR ,entry:compiler-allocate-closure))) ;; If this issues too much code, the optional code can be eliminated at @@ -754,7 +754,7 @@ long-word aligned and there is no need for shuffling. (MOV L (A 0) (D 2)) (LEA (@PCR ,free-ref-label) (A 0)) (MOV L (A 0) (D 3)) - ,(load-dnl n-sections 4) + ,@(load-dnl n-sections 4) (JSR ,entry:compiler-link) ,@(make-external-label (continuation-code-word false) (generate-label)))) @@ -766,19 +766,19 @@ long-word aligned and there is no need for shuffling. (let ((load-offset (lambda (offset) (if (<= -32768 offset 32767) - (INST (LEA (@AO 0 ,offset) (A 1))) - (INST (LEA (@AOF 0 E (,offset L) #F - ((D 0) L 1) Z - (0 N)) - (A 1))))))) + (LAP (LEA (@AO 0 ,offset) (A 1))) + (LAP (LEA (@AOF 0 E (,offset L) #F + ((D 0) L 1) Z + (0 N)) + (A 1))))))) (LAP (MOV L (@PCR ,code-block-label) (D 2)) (AND L ,mask-reference (D 2)) (MOV L (D 2) (A 0)) - ,(load-offset environment-offset) + ,@(load-offset environment-offset) (MOV L ,reg:environment (@A 1)) - ,(load-offset free-ref-offset) + ,@(load-offset free-ref-offset) (MOV L (A 1) (D 3)) - ,(load-dnl n-sections 4) + ,@(load-dnl n-sections 4) (JSR ,entry:compiler-link) ,@(make-external-label (continuation-code-word false) (generate-label)))))