mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-29 10:32:47 +00:00
Commit back the correct bits of r222760 (was r222538).
I also added a test. Original message: Allow FDE references outside the +/-2GB range supported by PC relative offsets for code models other than small/medium. For JIT application, memory layout is less controlled and can result in truncations otherwise. Patch from Akos Kiss. Differential Revision: http://reviews.llvm.org/D6079 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222897 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4bbcb6a682
commit
8f9f6a612a
@ -272,6 +272,12 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
|
||||
case Triple::mips64:
|
||||
case Triple::mips64el:
|
||||
FDECFIEncoding = dwarf::DW_EH_PE_sdata8;
|
||||
break;
|
||||
case Triple::x86_64:
|
||||
FDECFIEncoding = dwarf::DW_EH_PE_pcrel |
|
||||
((CMModel == CodeModel::Large) ? dwarf::DW_EH_PE_sdata8
|
||||
: dwarf::DW_EH_PE_sdata4);
|
||||
|
||||
break;
|
||||
default:
|
||||
FDECFIEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
|
||||
|
27
test/MC/ELF/cfi-large-model.s
Normal file
27
test/MC/ELF/cfi-large-model.s
Normal file
@ -0,0 +1,27 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -code-model=large %s \
|
||||
// RUN: -o - | llvm-readobj -s -sd | FileCheck %s
|
||||
|
||||
// CHECK: Section {
|
||||
// CHECK: Index:
|
||||
// CHECK: Name: .eh_frame
|
||||
// CHECK-NEXT: Type: SHT_PROGBITS
|
||||
// CHECK-NEXT: Flags [
|
||||
// CHECK-NEXT: SHF_ALLOC
|
||||
// CHECK-NEXT: ]
|
||||
// CHECK-NEXT: Address: 0x0
|
||||
// CHECK-NEXT: Offset: 0x40
|
||||
// CHECK-NEXT: Size: 56
|
||||
// CHECK-NEXT: Link: 0
|
||||
// CHECK-NEXT: Info: 0
|
||||
// CHECK-NEXT: AddressAlignment: 8
|
||||
// CHECK-NEXT: EntrySize: 0
|
||||
// CHECK-NEXT: SectionData (
|
||||
// CHECK-NEXT: 0000: 14000000 00000000 037A5200 01781001 |.........zR..x..|
|
||||
// CHECK-NEXT: 0010: 1C0C0708 90010000 1C000000 1C000000 |................|
|
||||
// CHECK-NEXT: 0020: 00000000 00000000 00000000 00000000 |................|
|
||||
// CHECK-NEXT: 0030: 00000000 00000000 |........|
|
||||
// CHECK-NEXT: )
|
||||
|
||||
f:
|
||||
.cfi_startproc
|
||||
.cfi_endproc
|
Loading…
Reference in New Issue
Block a user