From aaa3cbba3350a30f1c592f1c61706888200ba55c Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Sun, 1 Nov 2009 22:48:59 -0500 Subject: [PATCH] Enable open-coding of most non-flonum primitives on x86-64. --- src/compiler/machines/x86-64/machin.scm | 47 ++++++------------------- 1 file changed, 11 insertions(+), 36 deletions(-) diff --git a/src/compiler/machines/x86-64/machin.scm b/src/compiler/machines/x86-64/machin.scm index 700dc6c19..f4a30ce61 100644 --- a/src/compiler/machines/x86-64/machin.scm +++ b/src/compiler/machines/x86-64/machin.scm @@ -438,44 +438,19 @@ USA. (rtl:cons-pointer-datum expression))))) (else false)))) - -;;; Disable all open-coding for now. (define compiler:open-code-floating-point-arithmetic? false) (define compiler:primitives-with-no-open-coding - '(%RECORD %RECORD-LENGTH %RECORD-REF %RECORD-SET! %RECORD? &* &+ &- - &/ &< &= &> -1+ 1+ BIT-STRING-LENGTH BIT-STRING? CAR CDR - CHAR->INTEGER CHAR? CONS DIVIDE-FIXNUM EQ? EQUAL-FIXNUM? - FIXNUM-AND FIXNUM-ANDC FIXNUM-LSH FIXNUM-NOT FIXNUM-OR - FIXNUM-QUOTIENT FIXNUM-REMAINDER FIXNUM-XOR FIXNUM? - FLOATING-VECTOR-CONS FLOATING-VECTOR-LENGTH - FLOATING-VECTOR-REF FLOATING-VECTOR-SET! FLONUM-ABS - FLONUM-ACOS FLONUM-ADD FLONUM-ASIN FLONUM-ATAN FLONUM-ATAN2 - FLONUM-CEILING FLONUM-COS FLONUM-DIVIDE FLONUM-EQUAL? - FLONUM-EXP FLONUM-FLOOR FLONUM-GREATER? FLONUM-LESS? - FLONUM-LOG FLONUM-MULTIPLY FLONUM-NEGATE FLONUM-NEGATIVE? - FLONUM-POSITIVE? FLONUM-ROUND FLONUM-SIN FLONUM-SQRT - FLONUM-SUBTRACT FLONUM-TAN FLONUM-TRUNCATE FLONUM-ZERO? - FLONUM? GCD-FIXNUM GET-INTERRUPT-ENABLES - GREATER-THAN-FIXNUM? HEAP-AVAILABLE? INDEX-FIXNUM? - INTEGER->CHAR INTEGER-ADD INTEGER-ADD-1 INTEGER-EQUAL? - INTEGER-GREATER? INTEGER-LESS? INTEGER-MULTIPLY - INTEGER-NEGATIVE? INTEGER-POSITIVE? INTEGER-QUOTIENT - INTEGER-REMAINDER INTEGER-SUBTRACT INTEGER-SUBTRACT-1 - INTEGER-ZERO? LESS-THAN-FIXNUM? MINUS-FIXNUM - MINUS-ONE-PLUS-FIXNUM MULTIPLY-FIXNUM NEGATIVE-FIXNUM? - NEGATIVE? NULL? OBJECT-TYPE OBJECT-TYPE? ONE-PLUS-FIXNUM - PAIR? PLUS-FIXNUM POSITIVE-FIXNUM? POSITIVE? - PRIMITIVE-GET-FREE PRIMITIVE-INCREMENT-FREE - PRIMITIVE-OBJECT-REF PRIMITIVE-OBJECT-SET! - PRIMITIVE-OBJECT-SET-TYPE PRIMITIVE-OBJECT-TYPE QUOTIENT - REMAINDER SET-CAR! SET-CDR! SET-STRING-LENGTH! - STRING-ALLOCATE STRING-LENGTH STRING-REF STRING-SET! - STRING? SYSTEM-HUNK3-CXR0 SYSTEM-HUNK3-CXR1 - SYSTEM-HUNK3-CXR2 SYSTEM-PAIR-CAR SYSTEM-PAIR-CDR - SYSTEM-PAIR-CONS SYSTEM-VECTOR-REF SYSTEM-VECTOR-SIZE - VECTOR VECTOR-8B-REF VECTOR-8B-SET! VECTOR-CONS - VECTOR-LENGTH VECTOR-REF VECTOR-SET! VECTOR? ZERO-FIXNUM? - ZERO?)) \ No newline at end of file + '(DIVIDE-FIXNUM + &/ + FLOATING-VECTOR-CONS FLOATING-VECTOR-LENGTH + FLOATING-VECTOR-REF FLOATING-VECTOR-SET! FLONUM-ABS + FLONUM-ACOS FLONUM-ADD FLONUM-ASIN FLONUM-ATAN FLONUM-ATAN2 + FLONUM-CEILING FLONUM-COS FLONUM-DIVIDE FLONUM-EQUAL? + FLONUM-EXP FLONUM-FLOOR FLONUM-GREATER? FLONUM-LESS? + FLONUM-LOG FLONUM-MULTIPLY FLONUM-NEGATE FLONUM-NEGATIVE? + FLONUM-POSITIVE? FLONUM-ROUND FLONUM-SIN FLONUM-SQRT + FLONUM-SUBTRACT FLONUM-TAN FLONUM-TRUNCATE FLONUM-ZERO? + FLONUM? GCD-FIXNUM STRING-ALLOCATE VECTOR-CONS)) \ No newline at end of file -- 2.25.1