[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
Evan Cheng
evan.cheng at apple.com
Wed Jan 25 18:47:12 PST 2006
No, it's correct. Some assemblers prefer 'd' for double-word, some
'l' for long-word. This just works around some inconsistency in the
Apple assembler.
Evan
On Jan 25, 2006, at 6:38 PM, Reid Spencer wrote:
> Evan,
>
> I don't know anything about this stuff, but looking at the pattern, it
> seems a mistake may have been made? Consider these:
>
> On Wed, 2006-01-25 at 20:27 -0600, Evan Cheng wrote:
>> void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr
>> *MI) {
>> ++EmittedInsts;
>> + // This works around some Darwin assembler bugs.
>> + if (forDarwin) {
>> + switch (MI->getOpcode()) {
>> + case X86::REP_MOVSB:
>> + O << "rep/movsb (%esi),(%edi)\n";
>> + return;
>
> REP_MOVSB = rep/movsb
>
>> + case X86::REP_MOVSD:
>> + O << "rep/movsl (%esi),(%edi)\n";
>> + return;
>
> REP_MOVSD != rep/movsl
>
> is this a mistake?
>
>> + case X86::REP_MOVSW:
>> + O << "rep/movsw (%esi),(%edi)\n";
>> + return;
>> + case X86::REP_STOSB:
>> + O << "rep/stosb\n";
>> + return;
>> + case X86::REP_STOSD:
>> + O << "rep/stosl\n";
>> + return;
>
> and this one?
>
>> + case X86::REP_STOSW:
>> + O << "rep/stosw\n";
>> + return;
>> + default:
>> + break;
>> + }
>> + }
>
> Reid.
More information about the llvm-commits
mailing list