diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-02-29 22:09:08 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-02-29 22:09:08 +0000 |
| commit | 0e8b146152b1eaab54098ac9ace4af57449cd6a7 (patch) | |
| tree | 4e8eef7c9aa75d08318edd4ad9ff8b93d311eb2c /llvm/lib/Target/X86/X86TargetAsmInfo.cpp | |
| parent | 36748da5a6c614340136c5f5d76c495182b96320 (diff) | |
| download | bcm5719-llvm-0e8b146152b1eaab54098ac9ace4af57449cd6a7.tar.gz bcm5719-llvm-0e8b146152b1eaab54098ac9ace4af57449cd6a7.zip | |
Use enumeration for preffered EH dwarf encoding reason
llvm-svn: 47770
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetAsmInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86TargetAsmInfo.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp index acc13ba1070..68185ede943 100644 --- a/llvm/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetAsmInfo.cpp @@ -313,15 +313,15 @@ bool X86TargetAsmInfo::ExpandInlineAsm(CallInst *CI) const { /// format used for encoding pointers in exception handling data. Reason is /// 0 for data, 1 for code labels, 2 for function pointers. Global is true /// if the symbol can be relocated. -unsigned X86TargetAsmInfo::PreferredEHDataFormat(unsigned Reason, +unsigned X86TargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason, bool Global) const { const X86Subtarget *Subtarget = &X86TM->getSubtarget<X86Subtarget>(); switch (Subtarget->TargetType) { case X86Subtarget::isDarwin: - if (Reason == 2 && Global) + if (Reason == DwarfEncoding::Functions && Global) return (DW_EH_PE_pcrel | DW_EH_PE_indirect | DW_EH_PE_sdata4); - else if (Reason == 1 || !Global) + else if (Reason == DwarfEncoding::CodeLabels || !Global) return DW_EH_PE_pcrel; else return DW_EH_PE_absptr; @@ -343,7 +343,8 @@ unsigned X86TargetAsmInfo::PreferredEHDataFormat(unsigned Reason, // - code model is medium and we're emitting externally visible symbols or // any code symbols if (CM == CodeModel::Small || - (CM == CodeModel::Medium && (Global || Reason))) + (CM == CodeModel::Medium && (Global || + Reason != DwarfEncoding::Data))) Format = DW_EH_PE_sdata4; else Format = DW_EH_PE_sdata8; @@ -356,7 +357,7 @@ unsigned X86TargetAsmInfo::PreferredEHDataFormat(unsigned Reason, } else { if (Subtarget->is64Bit() && (CM == CodeModel::Small || - (CM == CodeModel::Medium && Reason))) + (CM == CodeModel::Medium && Reason != DwarfEncoding::Data))) return DW_EH_PE_udata4; else return DW_EH_PE_absptr; |

