[llvm-commits] [llvm] r115021 - in /llvm/trunk: lib/Target/X86/X86MCCodeEmitter.cpp test/MC/AsmParser/X86/x86_instructions.s

Chris Lattner sabre at nondot.org
Tue Sep 28 22:16:37 PDT 2010


On Sep 28, 2010, at 10:15 PM, Eli Friedman wrote:

> On Tue, Sep 28, 2010 at 8:33 PM, Chris Lattner <sabre at nondot.org> wrote:
>> +// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
>> +leal   8(%eax), %esi
>> +// CHECK: leal 8(%eax), %esi
>> +// CHECK: encoding: [0x67,0x8d,0x70,0x08]
>> +leaq   8(%eax), %rsi
>> +// CHECK: leaq 8(%eax), %rsi
>> +// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
> 
> Wow, does anyone actually use constructs like this?  As far as I can
> tell, they're longer than the forms without any prefixes and don't
> have any benefit I can think of.

the lea one is apparently used by people writing inline assembly.  I don't think the compiler should ever generate it, but the assembler has to support the weird things that people do.  I really don't like x86 at this point ;-)

-Chris



More information about the llvm-commits mailing list