From: William Harold Newman <william.newman@ai...> - 2001-02-08 13:26:36
On Tue, Feb 06, 2001 at 02:11:06PM +0100, Martin Atzmueller wrote:
> I've tested current SBCL for BUG 39, and it seems not to be present.
> I looked at the code in src/compiler/x86/float.lisp and it seems that
> this bug in CMUCL was introduced by some earlier "optimizations" that
> have not found their way into SBCL.
> The test code is attached, and it should probably be included into the
OK, thank you.
> While looking at the float-vop code, I found that CMUCL differentiates
> between x86 CPU flavors, such that different code can be generated
> for the Athlon and Ppro, for example.
> SBCL seems to have lost the ability to test for a "backend-feature"
> (I couldn't find a "backend-featurep" that CMUCL uses for that.)
> Has this been moved to some other place??
Features are set in target-features.lisp-expr at build time and
eventually end up in CL:*FEATURES* in the target SBCL. Once SBCL is
built and running normally, it no longer makes a distinction between
backend features and native features: its compiler is hardwired to
produce code for itself.
Earlier, when you're cross-compiling to build the system and
*FEATURES* is still being used to hold the features of the
cross-compilation host, what CMU CL calls "backend features" (which
more or less correspond to what SBCL calls target features) are kept
in *SHEBANG-FEATURES* (so named because these features correspond to
*FEATURES*, but control the expansion of #!+ and #!- readmacros
instead of #+ and #- readmacros).
If you add code into SBCL itself, where it will be built at
cross-compilation time, generally you should use #!+ and #!- tests in
code in the same places where CMU CL uses #+ and #- tests.
William Harold Newman <william.newman@...>
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C