Commit [37b93f] Maximize Restore History

Micro-optimize machine code for some register tests on x86[-64].

Replace all occurrences of (INST OR REG REG) with (INST TEST REG REG)
in VOPs and assembly routines. This removes, for the next read of REG,
the dependency on this instruction, allowing more instruction-level
parallelism, so is potentially faster. Moreover, most of the time the
next instruction is a conditional branch, which allows processors that
support macro-op fusion to fuse the TEST (but not the OR) with this
branch instruction, reducing the resources needed to decode and execute
the two instructions, which again is potentially faster.

Lutz Euler Lutz Euler 2012-04-17

changed src/assembly/x86-64/alloc.lisp
changed src/assembly/x86-64/assem-rtns.lisp
changed src/assembly/x86/alloc.lisp
changed src/assembly/x86/assem-rtns.lisp
changed src/compiler/x86-64/arith.lisp
changed src/compiler/x86-64/cell.lisp
changed src/compiler/x86-64/type-vops.lisp
changed src/compiler/x86/arith.lisp
changed src/compiler/x86/cell.lisp
changed src/compiler/x86/type-vops.lisp
src/assembly/x86-64/alloc.lisp Diff Switch to side-by-side view
Loading...
src/assembly/x86-64/assem-rtns.lisp Diff Switch to side-by-side view
Loading...
src/assembly/x86/alloc.lisp Diff Switch to side-by-side view
Loading...
src/assembly/x86/assem-rtns.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/cell.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/type-vops.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/arith.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/cell.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/type-vops.lisp Diff Switch to side-by-side view
Loading...