Corrections to disassembly of SHLD, SHRD and LEA on x86[-64].
authorLutz Euler <lutz.euler@freenet.de>
Wed, 14 Dec 2011 17:11:53 +0000 (18:11 +0100)
committerLutz Euler <lutz.euler@freenet.de>
Wed, 14 Dec 2011 17:11:53 +0000 (18:11 +0100)
commitb83ac6ca16d5c9ee7aa6f261959035accf697681
treee3d1a190b511cf362410799a822de6c6f40ecde6
parent4d7a5bc91750cf24fe0002c5210891846f53351a
Corrections to disassembly of SHLD, SHRD and LEA on x86[-64].

The double shifts were wrongly matching the bit pattern of some CMOV
variants. Corrected by using another instruction format on x86-64 and
by adding a constraint on the WIDTH field on x86. This made it possible
to enable the variant with an immediate shift count. On x86-64, changed
the maximum immediate shift count from 31 to 63.

Also, on x86-64, one of the printers for LEA was missing a WIDTH field
restriction, thus wrongly matching a "MOV to segment register", too.
src/compiler/x86-64/insts.lisp
src/compiler/x86/insts.lisp