From: Chris Hanson Date: Mon, 18 Jun 2007 17:31:05 +0000 (+0000) Subject: Fix two bugs in the implementation of index-fixnum type checks. X-Git-Tag: 20090517-FFI~518 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=f871a62ba2bf4f6effe6fe412063ab8a2f7496d2;p=mit-scheme.git Fix two bugs in the implementation of index-fixnum type checks. --- diff --git a/v7/src/compiler/machines/C/rules2.scm b/v7/src/compiler/machines/C/rules2.scm index b46f8ef67..28279836e 100644 --- a/v7/src/compiler/machines/C/rules2.scm +++ b/v7/src/compiler/machines/C/rules2.scm @@ -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) diff --git a/v7/src/compiler/rtlgen/opncod.scm b/v7/src/compiler/rtlgen/opncod.scm index d670bc271..d6944f606 100644 --- a/v7/src/compiler/rtlgen/opncod.scm +++ b/v7/src/compiler/rtlgen/opncod.scm @@ -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)))) ;;;; Indexed Memory References