Optimize (unsigned-byte 32/64) type tests on x86oids.
authorStas Boukarev <stassats@gmail.com>
Sun, 28 Jul 2013 16:41:58 +0000 (20:41 +0400)
committerStas Boukarev <stassats@gmail.com>
Sun, 28 Jul 2013 16:41:58 +0000 (20:41 +0400)
commit49ab16a1ebe3184cebd6a7954a113f934278b715
tree7fd49ad1b28c49e11e7b22a69c5ea0d6baf54706
parent2056118835600a7c4e372c796568ddada5824cf6
Optimize (unsigned-byte 32/64) type tests on x86oids.

Instead of doing
TEST CL, 3
MOV EAX, ECX

do
MOV EAX, ECX
TEST AL, 3

AL has shorter encoding and can save 1 byte with ECX or 4 bytes with
ESI, which doesn't have SIL on x86.

Also revert a part of the previous commit which used untagged
pointers, which can cause problems with the GC.
src/compiler/x86-64/type-vops.lisp
src/compiler/x86/type-vops.lisp