Author: tstellar Date: Mon May 7 19:41:18 2018 New Revision: 331714 URL: http://llvm.org/viewvc/llvm-project?rev=331714&view=rev Log: Merging r328400:
------------------------------------------------------------------------ r328400 | echristo | 2018-03-23 17:07:38 -0700 (Fri, 23 Mar 2018) | 6 lines 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 based on one by Olexa Bilaniuk! ------------------------------------------------------------------------ Modified: llvm/branches/release_60/lib/MC/MCObjectFileInfo.cpp llvm/branches/release_60/test/MC/ELF/cfi-large-model.s Modified: llvm/branches/release_60/lib/MC/MCObjectFileInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_60/lib/MC/MCObjectFileInfo.cpp?rev=331714&r1=331713&r2=331714&view=diff ============================================================================== --- llvm/branches/release_60/lib/MC/MCObjectFileInfo.cpp (original) +++ llvm/branches/release_60/lib/MC/MCObjectFileInfo.cpp Mon May 7 19:41:18 2018 @@ -289,6 +289,8 @@ void MCObjectFileInfo::initELFMCObjectFi case Triple::mips64el: FDECFIEncoding = dwarf::DW_EH_PE_sdata8; break; + case Triple::ppc64: + case Triple::ppc64le: case Triple::x86_64: FDECFIEncoding = dwarf::DW_EH_PE_pcrel | (Large ? dwarf::DW_EH_PE_sdata8 : dwarf::DW_EH_PE_sdata4); Modified: llvm/branches/release_60/test/MC/ELF/cfi-large-model.s URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_60/test/MC/ELF/cfi-large-model.s?rev=331714&r1=331713&r2=331714&view=diff ============================================================================== --- llvm/branches/release_60/test/MC/ELF/cfi-large-model.s (original) +++ llvm/branches/release_60/test/MC/ELF/cfi-large-model.s Mon May 7 19:41:18 2018 @@ -1,26 +1,49 @@ // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -large-code-model %s \ -// RUN: -o - | llvm-readobj -s -sd | FileCheck %s +// RUN: -o - | llvm-readobj -s -sd | FileCheck --check-prefix=CHECK-X86 %s +// RUN: llvm-mc -filetype=obj -triple powerpc64le-linux-gnu -large-code-model %s \ +// RUN: -o - | llvm-readobj -s -sd | FileCheck --check-prefix=CHECK-PPC %s -// CHECK: Section { -// CHECK: Index: -// CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_X86_64_UNWIND -// 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 017A5200 01781001 |.........zR..x..| -// CHECK-NEXT: 0010: 1C0C0708 90010000 1C000000 1C000000 |................| -// CHECK-NEXT: 0020: 00000000 00000000 00000000 00000000 |................| -// CHECK-NEXT: 0030: 00000000 00000000 |........| -// CHECK-NEXT: ) +// CHECK-X86: Section { +// CHECK-X86: Index: +// CHECK-X86: Name: .eh_frame +// CHECK-X86-NEXT: Type: SHT_X86_64_UNWIND +// CHECK-X86-NEXT: Flags [ +// CHECK-X86-NEXT: SHF_ALLOC +// CHECK-X86-NEXT: ] +// CHECK-X86-NEXT: Address: 0x0 +// CHECK-X86-NEXT: Offset: 0x40 +// CHECK-X86-NEXT: Size: 56 +// CHECK-X86-NEXT: Link: 0 +// CHECK-X86-NEXT: Info: 0 +// CHECK-X86-NEXT: AddressAlignment: 8 +// CHECK-X86-NEXT: EntrySize: 0 +// CHECK-X86-NEXT: SectionData ( +// CHECK-X86-NEXT: 0000: 14000000 00000000 017A5200 01781001 |.........zR..x..| +// CHECK-X86-NEXT: 0010: 1C0C0708 90010000 1C000000 1C000000 |................| +// CHECK-X86-NEXT: 0020: 00000000 00000000 00000000 00000000 |................| +// CHECK-X86-NEXT: 0030: 00000000 00000000 |........| +// CHECK-X86-NEXT: ) + +// CHECK-PPC: Section { +// CHECK-PPC: Index: +// CHECK-PPC: Name: .eh_frame +// CHECK-PPC-NEXT: Type: SHT_PROGBITS +// CHECK-PPC-NEXT: Flags [ +// CHECK-PPC-NEXT: SHF_ALLOC +// CHECK-PPC-NEXT: ] +// CHECK-PPC-NEXT: Address: 0x0 +// CHECK-PPC-NEXT: Offset: 0x40 +// CHECK-PPC-NEXT: Size: 48 +// CHECK-PPC-NEXT: Link: 0 +// CHECK-PPC-NEXT: Info: 0 +// CHECK-PPC-NEXT: AddressAlignment: 8 +// CHECK-PPC-NEXT: EntrySize: 0 +// CHECK-PPC-NEXT: SectionData ( +// CHECK-PPC-NEXT: 0000: 10000000 00000000 017A5200 04784101 |.........zR..xA.| +// CHECK-PPC-NEXT: 0010: 1C0C0100 18000000 18000000 00000000 |................| +// CHECK-PPC-NEXT: 0020: 00000000 00000000 00000000 00000000 |................| +// CHECK-PPC-NEXT: ) +// CHECK-PPC-NEXT: } f: .cfi_startproc _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits