aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
diff options
context:
space:
mode:
authorSanjiv Gupta <sanjiv.gupta@microchip.com>2009-01-30 04:25:10 +0000
committerSanjiv Gupta <sanjiv.gupta@microchip.com>2009-01-30 04:25:10 +0000
commitdc2943d9f6c2f65a39d9d71c12f09f7c49d59839 (patch)
tree63c0d229e09fd5c3a9e90677ac7cd1b4a091eefc /lib/Target/PIC16/PIC16TargetAsmInfo.cpp
parent24ecb1b093539263f59298177088231004d72ed9 (diff)
downloadexternal_llvm-dc2943d9f6c2f65a39d9d71c12f09f7c49d59839.zip
external_llvm-dc2943d9f6c2f65a39d9d71c12f09f7c49d59839.tar.gz
external_llvm-dc2943d9f6c2f65a39d9d71c12f09f7c49d59839.tar.bz2
Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63377 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16TargetAsmInfo.cpp')
-rw-r--r--lib/Target/PIC16/PIC16TargetAsmInfo.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/lib/Target/PIC16/PIC16TargetAsmInfo.cpp b/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
index 8e2392e..b86576b 100644
--- a/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
+++ b/lib/Target/PIC16/PIC16TargetAsmInfo.cpp
@@ -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 ";
+ RomData8bitsDirective = " rom_dl ";
ZeroDirective = NULL;
AsciiDirective = " dt ";
AscizDirective = NULL;
@@ -33,3 +36,28 @@ PIC16TargetAsmInfo(const PIC16TargetMachine &TM)
DataSection = getNamedSection("idata.# IDATA", SectionFlags::Writeable);
SwitchToSectionDirective = "";
}
+
+const char *PIC16TargetAsmInfo::getData8bitsDirective(unsigned AddrSpace)
+ const {
+ if (AddrSpace == PIC16ISD::ROM_SPACE)
+ return RomData8bitsDirective;
+ else
+ return Data8bitsDirective;
+ }
+
+const char *PIC16TargetAsmInfo::getData16bitsDirective(unsigned AddrSpace)
+ const {
+ if (AddrSpace == PIC16ISD::ROM_SPACE)
+ return RomData16bitsDirective;
+ else
+ return Data16bitsDirective;
+ }
+
+const char *PIC16TargetAsmInfo::getData32bitsDirective(unsigned AddrSpace)
+ const {
+ if (AddrSpace == PIC16ISD::ROM_SPACE)
+ return RomData32bitsDirective;
+ else
+ return Data32bitsDirective;
+ }
+