#include "PIC16TargetAsmInfo.h"
#include "PIC16TargetMachine.h"
+#include "llvm/GlobalValue.h"
using namespace llvm;
: TargetAsmInfo(TM) {
CommentString = ";";
Data8bitsDirective = " db ";
- Data16bitsDirective = " db ";
- Data32bitsDirective = " db ";
- DataSectionStartSuffix = " IDATA ";
- UDataSectionStartSuffix = " UDATA ";
- TextSectionStartSuffix = " CODE ";
- RomDataSectionStartSuffix = " ROMDATA ";
+ Data16bitsDirective = " dw ";
+ Data32bitsDirective = " dl ";
+ RomData8bitsDirective = " dw ";
+ RomData16bitsDirective = " rom_di ";
+ RomData32bitsDirective = " rom_dl ";
ZeroDirective = NULL;
+ AsciiDirective = " dt ";
+ AscizDirective = NULL;
+ BSSSection_ = getNamedSection("udata.# UDATA",
+ SectionFlags::Writeable | SectionFlags::BSS);
+ ReadOnlySection = getNamedSection("romdata.# ROMDATA", SectionFlags::None);
+ 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;
+}
+