Enable open-coding of most non-flonum primitives on x86-64.
authorTaylor R Campbell <campbell@mumble.net>
Mon, 2 Nov 2009 03:48:59 +0000 (22:48 -0500)
committerTaylor R Campbell <campbell@mumble.net>
Mon, 2 Nov 2009 03:48:59 +0000 (22:48 -0500)
src/compiler/machines/x86-64/machin.scm

index 700dc6c1918331d947928d106b47bcf1ce2bb875..f4a30ce612fd357fc69d0e808b22a2deb63c1ca0 100644 (file)
@@ -438,44 +438,19 @@ USA.
              (rtl:cons-pointer-datum expression)))))
       (else
        false))))
-\f
-;;; 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