Fix two bugs in the implementation of index-fixnum type checks.
authorChris Hanson <org/chris-hanson/cph>
Mon, 18 Jun 2007 17:31:05 +0000 (17:31 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 18 Jun 2007 17:31:05 +0000 (17:31 +0000)
v7/src/compiler/machines/C/rules2.scm
v7/src/compiler/rtlgen/opncod.scm

index b46f8ef6711194a1ef63c898ced79a746d3715c1..28279836e2714a5142aba2422b00106361dd3f30 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: rules2.scm,v 1.9 2007/01/05 21:19:20 cph Exp $
+$Id: rules2.scm,v 1.10 2007/06/18 17:31:04 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -77,9 +77,8 @@ USA.
 
 (define-rule predicate
   ;; Branch if virtual register contains a legal index fixnum
-  (PRED-1-ARG INDEX-FIXNUM?
-             (REGISTER (? source)))
-  (let ((source (standard-source! source 'ULONG)))
+  (PRED-1-ARG INDEX-FIXNUM? (REGISTER (? source)))
+  (let ((source (standard-source! source 'SCHEME_OBJECT)))
     (branch-on-expr (c:ecall "INDEX_FIXNUM_P" source))))
 
 (define (eq-test/constant constant source)
index d670bc2714de1982444a94dcb2433c8e767dac53..d6944f60642c6166ef24e679a2b11cd1a39d97db 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: opncod.scm,v 4.80 2007/04/14 22:00:09 riastradh Exp $
+$Id: opncod.scm,v 4.81 2007/06/18 17:31:05 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -479,9 +479,7 @@ USA.
            (make-true-pcfg)
            (make-false-pcfg)))
       (pcfg/prefer-consequent!
-       (rtl:make-pred-1-arg
-       'INDEX-FIXNUM?
-       (rtl:make-object->fixnum expression)))))
+       (rtl:make-pred-1-arg 'INDEX-FIXNUM? expression))))
 \f
 ;;;; Indexed Memory References