diff options
| author | Devang Patel <dpatel@apple.com> | 2011-02-24 21:04:00 +0000 |
|---|---|---|
| committer | Devang Patel <dpatel@apple.com> | 2011-02-24 21:04:00 +0000 |
| commit | b037383a35660151cc2a8814c0854a6b65039925 (patch) | |
| tree | 917246738524d5a8dd6edd4b8705bab59b2b11e2 /llvm/lib/Target | |
| parent | 502f1b943f54728efdae52362b4b1a46dba57d7b (diff) | |
| download | bcm5719-llvm-b037383a35660151cc2a8814c0854a6b65039925.tar.gz bcm5719-llvm-b037383a35660151cc2a8814c0854a6b65039925.zip | |
Enable DebugInfo support for COFF object files.
Patch by Nathan Jeffords!
llvm-svn: 126425
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86AsmBackend.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86FixupKinds.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86MCAsmInfo.cpp | 3 |
4 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp b/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp index 0886ba8008f..da62ebf39b5 100644 --- a/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp +++ b/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp @@ -124,6 +124,7 @@ public: virtual void EmitCOFFSymbolStorageClass(int StorageClass); virtual void EmitCOFFSymbolType(int Type); virtual void EndCOFFSymbolDef(); + virtual void EmitCOFFSecRel32(MCSymbol const *Symbol); virtual void EmitELFSize(MCSymbol *Symbol, const MCExpr *Value); virtual void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment); @@ -277,6 +278,8 @@ void PTXMCAsmStreamer::EmitCOFFSymbolType (int Type) {} void PTXMCAsmStreamer::EndCOFFSymbolDef() {} +void PTXMCAsmStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol) {} + void PTXMCAsmStreamer::EmitELFSize(MCSymbol *Symbol, const MCExpr *Value) {} void PTXMCAsmStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size, diff --git a/llvm/lib/Target/X86/X86AsmBackend.cpp b/llvm/lib/Target/X86/X86AsmBackend.cpp index da5f5b182ce..6a0b059ca5a 100644 --- a/llvm/lib/Target/X86/X86AsmBackend.cpp +++ b/llvm/lib/Target/X86/X86AsmBackend.cpp @@ -40,6 +40,7 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { case X86::reloc_riprel_4byte_movq_load: case X86::reloc_signed_4byte: case X86::reloc_global_offset_table: + case X86::reloc_coff_secrel32: case FK_Data_4: return 2; case FK_PCRel_8: case FK_Data_8: return 3; @@ -69,7 +70,8 @@ public: { "reloc_riprel_4byte", 0, 4 * 8, MCFixupKindInfo::FKF_IsPCRel }, { "reloc_riprel_4byte_movq_load", 0, 4 * 8, MCFixupKindInfo::FKF_IsPCRel}, { "reloc_signed_4byte", 0, 4 * 8, 0}, - { "reloc_global_offset_table", 0, 4 * 8, 0} + { "reloc_global_offset_table", 0, 4 * 8, 0}, + { "reloc_coff_secrel32", 0, 4 * 8, 0} }; if (Kind < FirstTargetFixupKind) diff --git a/llvm/lib/Target/X86/X86FixupKinds.h b/llvm/lib/Target/X86/X86FixupKinds.h index 17d242ab761..d6cb39ae9a7 100644 --- a/llvm/lib/Target/X86/X86FixupKinds.h +++ b/llvm/lib/Target/X86/X86FixupKinds.h @@ -23,6 +23,8 @@ enum Fixups { reloc_global_offset_table, // 32-bit, relative to the start // of the instruction. Used only // for _GLOBAL_OFFSET_TABLE_. + reloc_coff_secrel32, // PE-COFF section relative 32 + // (only valid for win32 COFF) // Marker LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind diff --git a/llvm/lib/Target/X86/X86MCAsmInfo.cpp b/llvm/lib/Target/X86/X86MCAsmInfo.cpp index 6686214e06f..75bc1ed2bee 100644 --- a/llvm/lib/Target/X86/X86MCAsmInfo.cpp +++ b/llvm/lib/Target/X86/X86MCAsmInfo.cpp @@ -113,4 +113,7 @@ X86MCAsmInfoCOFF::X86MCAsmInfoCOFF(const Triple &Triple) { AssemblerDialect = AsmWriterFlavor; TextAlignFillValue = 0x90; + + // Debug Information + SupportsDebugInformation = true; } |

