Do not consider MMX_MOVD64rr a move instructions. The source register is in GR32...
[oota-llvm.git] / lib / Target / PIC16 / PIC16TargetAsmInfo.cpp
index 8e2392e6f71a1d557e4901bac1c2c08db14d0ceb..d40f2065b828df1308a7a751d574dde3a5782ddf 100644 (file)
@@ -22,8 +22,11 @@ PIC16TargetAsmInfo(const PIC16TargetMachine &TM)
   : TargetAsmInfo(TM) {
   CommentString = ";";
   Data8bitsDirective = " db ";
-  Data16bitsDirective = " db ";
-  Data32bitsDirective = " db ";
+  Data16bitsDirective = " dw ";
+  Data32bitsDirective = " dl ";
+  RomData8bitsDirective = " dw ";
+  RomData16bitsDirective = " rom_di ";
+  RomData32bitsDirective = " rom_dl ";
   ZeroDirective = NULL;
   AsciiDirective = " dt ";
   AscizDirective = NULL;
@@ -33,3 +36,25 @@ PIC16TargetAsmInfo(const PIC16TargetMachine &TM)
   DataSection = getNamedSection("idata.# IDATA", SectionFlags::Writeable);
   SwitchToSectionDirective = "";
 }
+
+const char *PIC16TargetAsmInfo::getRomDirective(unsigned size) const
+{
+  if (size == 8)
+    return RomData8bitsDirective;
+  else if (size == 16)
+    return RomData16bitsDirective;
+  else if (size == 32)
+    return RomData32bitsDirective;
+  else
+    return NULL;
+}
+
+
+const char *PIC16TargetAsmInfo::getASDirective(unsigned size, 
+                                               unsigned AS) const {
+  if (AS == PIC16ISD::ROM_SPACE)
+    return getRomDirective(size);
+  else
+    return NULL;
+}
+