Commit [2230ea] Maximize Restore History

1.0.29.54: Inline unboxed constants on x86[-64]

* New build-time feature: inline-constants, which specifies that SB!C
and SB!VM implement a protocol described in base-target-features.lisp-expr.
Backends implementing that feature are able to load constants from code
components, in a section that follows the actual executable code.

* Implement the protocol on x86 and x86-64, and use it for float constants,
and, on x86-64 only, mid-sized (> 2^(29-32), but still machine-sized)
integers.

* Use the new feature in integer and float arithmetic VOPs.

* Adjust a few test cases to take newly consing situations into account.

* Clean-up:
- New build-time feature: float-eql-vops, which disable rewriting EQL
of single and double floats in terms of foo-float*-bits.
- Fix a typo (unused variable lookup) in TWO-ARG-+/-

Paul Khuong Paul Khuong 2009-06-28

changed src/code/numbers.lisp
changed src/compiler/generic/vm-macs.lisp
changed src/compiler/generic/vm-tran.lisp
changed src/compiler/x86-64/arith.lisp
changed src/compiler/x86-64/float.lisp
changed src/compiler/x86-64/insts.lisp
changed src/compiler/x86-64/vm.lisp
changed src/compiler/x86/float.lisp
changed src/compiler/x86/insts.lisp
changed src/compiler/x86/vm.lisp
changed src/compiler/codegen.lisp
changed src/compiler/early-c.lisp
changed src/compiler/main.lisp
changed tests/arith.pure.lisp
changed tests/compiler.impure.lisp
changed tests/dynamic-extent.impure.lisp
changed tests/float.pure.lisp
changed NEWS
changed base-target-features.lisp-expr
changed make-config.sh
changed package-data-list.lisp-expr
changed version.lisp-expr
src/code/numbers.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-macs.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/arith.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/float.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/insts.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/vm.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/float.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/insts.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/vm.lisp Diff Switch to side-by-side view
Loading...
src/compiler/codegen.lisp Diff Switch to side-by-side view
Loading...
src/compiler/early-c.lisp Diff Switch to side-by-side view
Loading...
src/compiler/main.lisp Diff Switch to side-by-side view
Loading...
tests/arith.pure.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.impure.lisp Diff Switch to side-by-side view
Loading...
tests/dynamic-extent.impure.lisp Diff Switch to side-by-side view
Loading...
tests/float.pure.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...
base-target-features.lisp-expr Diff Switch to side-by-side view
Loading...
make-config.sh Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...