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.

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to