Skip to content

Commit 06cc467

Browse files
author
Alastair Bridgewater
committed
compiler/sparc/arith: Fix SCs for FAST-EQL{,-C}/FIXNUM.
* There's a KLUDGE in build-order.lisp-expr wherein failures when building this file are ignored. * The failures are specifically an SC vs. arg-type mismatch for the FAST-EQL/FIXNUM and FAST-EQL-C/FIXNUM VOPs. * Fix the mismatch by altering the VOP definitions to match what the MIPS backend uses (since it doesn't have the failure). * And remove SPARC from the reader conditional on the KLUDGE.
1 parent c78d726 commit 06cc467

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

build-order.lisp-expr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@
573573
;; x compilation, for now we blithely ignore them and press on to more
574574
;; x pressing problems. Someday, though, it would be nice to figure out
575575
;; x what the problem is and fix it.
576-
#!+(or ppc sparc) :ignore-failure-p)
576+
#!+(or ppc) :ignore-failure-p)
577577
("src/code/cross-modular" :not-target)
578578
("src/compiler/target/subprim")
579579

src/compiler/sparc/arith.lisp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,7 @@
780780
;;;
781781

782782
(define-vop (fast-eql/fixnum fast-conditional)
783-
(:args (x :scs (any-reg descriptor-reg zero))
783+
(:args (x :scs (any-reg zero))
784784
(y :scs (any-reg zero)))
785785
(:arg-types tagged-num tagged-num)
786786
(:note "inline fixnum comparison")
@@ -791,11 +791,13 @@
791791
(inst nop)))
792792
;;;
793793
(define-vop (generic-eql/fixnum fast-eql/fixnum)
794+
(:args (x :scs (any-reg descriptor-reg))
795+
(y :scs (any-reg)))
794796
(:arg-types * tagged-num)
795797
(:variant-cost 7))
796798

797799
(define-vop (fast-eql-c/fixnum fast-conditional/fixnum)
798-
(:args (x :scs (any-reg descriptor-reg zero)))
800+
(:args (x :scs (any-reg zero)))
799801
(:arg-types tagged-num (:constant (signed-byte 11)))
800802
(:info target not-p y)
801803
(:translate eql)
@@ -805,6 +807,7 @@
805807
(inst nop)))
806808
;;;
807809
(define-vop (generic-eql-c/fixnum fast-eql-c/fixnum)
810+
(:args (x :scs (any-reg descriptor-reg)))
808811
(:arg-types * (:constant (signed-byte 11)))
809812
(:variant-cost 6))
810813

0 commit comments

Comments
 (0)