On 12/15/2009 10:26 PM, Jamie Lokier wrote:
But that said, I'm not sure if this line from earlier breaks the test:

             index = ((code>>  3)&  7) | REX_X(s);

When is REX_X(s) not zero, and does it break the index != 4 test?

When %r12 (4+8=12) is used as an index. That's a valid statement, so it's okay to test index != 4 (when REX_X(s) is not zero it is always eight, and you'd get index == 12):

   0:   8b 04 65 11 22 33 44            mov    0x44332211(,%riz,2),%eax
   7:   42 8b 04 65 11 22 33 44         mov    0x44332211(,%r12,2),%eax

(BTW %eiz/%riz are not accepted by my GAS, only produced by the disassembler).

Paolo



Reply via email to