From: Mark Friedman Date: Fri, 22 Apr 1988 16:28:23 +0000 (+0000) Subject: Added expression costs for fixnum expressions. These costs X-Git-Tag: 20090517-FFI~12816 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=34d61f8b621e69a12f9af25e75bb45d612a0db08;p=mit-scheme.git Added expression costs for fixnum expressions. These costs are pretty rough. Someone who really understands the 68020 book should check them out. --- diff --git a/v7/src/compiler/machines/bobcat/machin.scm b/v7/src/compiler/machines/bobcat/machin.scm index 06bda7dd1..e362ce51e 100644 --- a/v7/src/compiler/machines/bobcat/machin.scm +++ b/v7/src/compiler/machines/bobcat/machin.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/machin.scm,v 4.3 1988/03/14 19:38:06 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/machin.scm,v 4.4 1988/04/22 16:28:23 markf Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -76,12 +76,46 @@ MIT in each case. |# ;; move.l reg,d(reg) = 16 ;; move.b d(reg),reg = 12 ((OBJECT->TYPE) 28) + ;; lsl.l #8,reg = 4 + ;; asr.l #8,reg = 6 + ((OBJECT->FIXNUM) 10) ((OFFSET) 16) ;move.l d(reg),reg ((OFFSET-ADDRESS) 8) ;lea d(an),reg ((POST-INCREMENT) 12) ;move.l (reg)+,reg ((PRE-INCREMENT) 14) ;move.l -(reg),reg ((REGISTER) 4) ;move.l reg,reg ((UNASSIGNED) 12) ;move.l #data,reg + ((FIXNUM-2-ARGS) + (case (rtl:fixnum-2-args-operator expression) + ;; move.l reg,reg = 3 + ;; add.l reg,reg = 3 + ;; and.l d7,reg = 3 + ;; or.l #x01AFFFFF,reg = 8 + ((PLUS-FIXNUM) 17) + ;; move.l reg,reg = 3 + ;; muls.l reg,reg = 49 + ;; and.l d7,reg = 3 + ;; or.l #x01AFFFFF,reg = 8 + ((MULTIPLY-FIXNUM) 63) + ;; move.l reg,reg = 3 + ;; sub.l reg,reg = 3 + ;; and.l d7,reg = 3 + ;; or.l #x01AFFFFF,reg = 8 + ((MINUS-FIXNUM) 17) + (else (error "rtl:expression-cost - unknown fixnum operator" expression)))) + ((FIXNUM-1-ARG) + (case (rtl:fixnum-1-arg-operator expression) + ;; move.l reg,reg = 3 + ;; addq.l #1,reg = 3 + ;; and.l d7,reg = 3 + ;; or.l #x01AFFFFF,reg = 8 + ((ONE-PLUS-FIXNUM) 17) + ;; move.l reg,reg = 3 + ;; subq.l #1,reg = 3 + ;; and.l d7,reg = 3 + ;; or.l #x01AFFFFF,reg = 8 + ((MINUS-ONE-PLUS-FIXNUM) 17) + (else (error "rtl:expression-cost - unknown fixnum operator" expression)))) (else (error "Unknown expression type" expression)))) (define (rtl:machine-register? rtl-register) @@ -129,6 +163,7 @@ MIT in each case. |# (define-integrable a6 14) (define-integrable a7 15) (define number-of-machine-registers 16) +(define number-of-temporary-registers 50) (define-integrable regnum:dynamic-link a4) (define-integrable regnum:free-pointer a5)