summaryrefslogtreecommitdiffstats
path: root/lib/Target/CellSPU/SPUTargetAsmInfo.cpp
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2009-01-26 22:33:37 +0000
committerScott Michel <scottm@aero.org>2009-01-26 22:33:37 +0000
commit9de57a9ed2d401332eea0c02cdf0b6e66502be58 (patch)
tree13b6f61c41e0ffac99434845ab8c1f3995d64ba3 /lib/Target/CellSPU/SPUTargetAsmInfo.cpp
parent210de72cd7b139378f48dafbdac3d3379dd93c56 (diff)
downloadexternal_llvm-9de57a9ed2d401332eea0c02cdf0b6e66502be58.zip
external_llvm-9de57a9ed2d401332eea0c02cdf0b6e66502be58.tar.gz
external_llvm-9de57a9ed2d401332eea0c02cdf0b6e66502be58.tar.bz2
CellSPU:
- Update DWARF debugging support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63059 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU/SPUTargetAsmInfo.cpp')
-rw-r--r--lib/Target/CellSPU/SPUTargetAsmInfo.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/Target/CellSPU/SPUTargetAsmInfo.cpp b/lib/Target/CellSPU/SPUTargetAsmInfo.cpp
index 7275255..ff88ed8 100644
--- a/lib/Target/CellSPU/SPUTargetAsmInfo.cpp
+++ b/lib/Target/CellSPU/SPUTargetAsmInfo.cpp
@@ -15,8 +15,10 @@
#include "SPUTargetMachine.h"
#include "llvm/Function.h"
#include "llvm/Support/Compiler.h"
+#include "llvm/Support/Dwarf.h"
using namespace llvm;
+using namespace llvm::dwarf;
SPULinuxTargetAsmInfo::SPULinuxTargetAsmInfo(const SPUTargetMachine &TM) :
SPUTargetAsmInfo<ELFTargetAsmInfo>(TM) {
@@ -27,12 +29,34 @@ SPULinuxTargetAsmInfo::SPULinuxTargetAsmInfo(const SPUTargetMachine &TM) :
// This corresponds to what the gcc SPU compiler emits, for consistency.
CStringSection = ".rodata.str";
+ // Has leb128, .loc and .file
+ HasLEB128 = true;
+ HasDotLocAndDotFile = true;
+
// BSS section needs to be emitted as ".section"
BSSSection = "\t.section\t.bss";
BSSSection_ = getUnnamedSection("\t.section\t.bss",
SectionFlags::Writeable | SectionFlags::BSS,
true);
+ SupportsDebugInformation = true;
+ NeedsSet = true;
+ SupportsMacInfoSection = false;
+ DwarfAbbrevSection = "\t.section .debug_abbrev,\"\",@progbits";
+ DwarfInfoSection = "\t.section .debug_info,\"\",@progbits";
+ DwarfLineSection = "\t.section .debug_line,\"\",@progbits";
+ DwarfFrameSection = "\t.section .debug_frame,\"\",@progbits";
+ DwarfPubNamesSection = "\t.section .debug_pubnames,\"\",@progbits";
+ DwarfPubTypesSection = "\t.section .debug_pubtypes,\"\",progbits";
+ DwarfStrSection = "\t.section .debug_str,\"MS\",@progbits,1";
+ DwarfLocSection = "\t.section .debug_loc,\"\",@progbits";
+ DwarfARangesSection = "\t.section .debug_aranges,\"\",@progbits";
+ DwarfRangesSection = "\t.section .debug_ranges,\"\",@progbits";
+ DwarfMacInfoSection = "\t.section .debug_macinfo,\"\",progbits";
+
+ // Exception handling is not supported on CellSPU (think about it: you only
+ // have 256K for code+data. Would you support exception handling?)
+ SupportsExceptionHandling = false;
}
/// PreferredEHDataFormat - This hook allows the target to select data