[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