Fix bug in the open-coder for HEAP-AVAILABLE? with type checking
authorTaylor R. Campbell <net/mumble/campbell>
Sun, 21 Jan 2007 11:29:15 +0000 (11:29 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Sun, 21 Jan 2007 11:29:15 +0000 (11:29 +0000)
turned on.  It was passing the FINISH continuation on to
OPEN-CODE:WITH-CHECKS, but that would call FINISH with an RTL
expression, whereas the callers of the open-coder want an RTL
predicate CFG.  Now, like other predicate open-coders,
HEAP-AVAILABLE?'s wraps the expression in a true test.

v7/src/compiler/rtlgen/opncod.scm

index 269f9586c6f07e60dba9112ef6198e838a37b891..c864d6433cec427252273d9ee80e8124c758446c 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: opncod.scm,v 4.77 2007/01/05 21:19:23 cph Exp $
+$Id: opncod.scm,v 4.78 2007/01/21 11:29:15 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -865,7 +865,8 @@ USA.
             (rtl:make-address->fixnum (rtl:make-address locative))
             (rtl:make-address->fixnum
              (rtl:make-fetch register:memory-top))))))
-       finish
+       (lambda (expression)
+         (finish (rtl:make-true-test expression)))
        'HEAP-AVAILABLE?
        expressions)))
    '(0)