[PATCH] D83644: [AArch64][ELF] Support FDE references more than +/-2GB range for AArch64 large code model

weiwei via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 13 09:31:40 PDT 2020


wwei updated this revision to Diff 277461.
wwei added a comment.

update test case


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83644/new/

https://reviews.llvm.org/D83644

Files:
  llvm/lib/MC/MCObjectFileInfo.cpp
  llvm/test/MC/ELF/cfi-large-model.s


Index: llvm/test/MC/ELF/cfi-large-model.s
===================================================================
--- llvm/test/MC/ELF/cfi-large-model.s
+++ llvm/test/MC/ELF/cfi-large-model.s
@@ -1,10 +1,14 @@
+// REQUIRES: aarch64-registered-target
 // REQUIRES: powerpc-registered-target
 // REQUIRES: x86-registered-target
 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -large-code-model %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
-
+// RUN: llvm-mc -filetype=obj -triple aarch64 -large-code-model %s \
+// RUN:   -o - | llvm-readobj -S --sd | FileCheck --check-prefix=CHECK-ARM64 %s
+// RUN: llvm-mc -filetype=obj -triple aarch64_be -large-code-model %s \
+// RUN:   -o - | llvm-readobj -S --sd | FileCheck --check-prefix=CHECK-ARM64-BE %s
 
 // CHECK-X86:      Section {
 // CHECK-X86:        Index:
@@ -48,6 +52,48 @@
 // CHECK-PPC-NEXT:   )
 // CHECK-PPC-NEXT: }
 
+// CHECK-ARM64: Section {
+// CHECK-ARM64:  Index:
+// CHECK-ARM64:  Name: .eh_frame
+// CHECK-ARM64-NEXT:   Type: SHT_PROGBITS
+// CHECK-ARM64-NEXT:   Flags [
+// CHECK-ARM64-NEXT:     SHF_ALLOC
+// CHECK-ARM64-NEXT:   ]
+// CHECK-ARM64-NEXT:   Address: 0x0
+// CHECK-ARM64-NEXT:   Offset: 0x40
+// CHECK-ARM64-NEXT:   Size: 48
+// CHECK-ARM64-NEXT:   Link: 0
+// CHECK-ARM64-NEXT:   Info: 0
+// CHECK-ARM64-NEXT:   AddressAlignment: 8
+// CHECK-ARM64-NEXT:   EntrySize: 0
+// CHECK-ARM64-NEXT:   SectionData (
+// CHECK-ARM64-NEXT:     0000: 10000000 00000000 017A5200 017C1E01  |.........zR..|..|
+// CHECK-ARM64-NEXT:     0010: 1C0C1F00 18000000 18000000 00000000  |................|
+// CHECK-ARM64-NEXT:     0020: 00000000 00000000 00000000 00000000  |................|
+// CHECK-ARM64-NEXT:   )
+// CHECK-ARM64-NEXT: }
+
+// CHECK-ARM64-BE: Section {
+// CHECK-ARM64-BE:  Index:
+// CHECK-ARM64-BE:  Name: .eh_frame
+// CHECK-ARM64-BE-NEXT:   Type: SHT_PROGBITS
+// CHECK-ARM64-BE-NEXT:   Flags [
+// CHECK-ARM64-BE-NEXT:     SHF_ALLOC
+// CHECK-ARM64-BE-NEXT:   ]
+// CHECK-ARM64-BE-NEXT:   Address: 0x0
+// CHECK-ARM64-BE-NEXT:   Offset: 0x40
+// CHECK-ARM64-BE-NEXT:   Size: 48
+// CHECK-ARM64-BE-NEXT:   Link: 0
+// CHECK-ARM64-BE-NEXT:   Info: 0
+// CHECK-ARM64-BE-NEXT:   AddressAlignment: 8
+// CHECK-ARM64-BE-NEXT:   EntrySize: 0
+// CHECK-ARM64-BE-NEXT:   SectionData (
+// CHECK-ARM64-BE-NEXT:     0000: 00000010 00000000 017A5200 017C1E01  |.........zR..|..|
+// CHECK-ARM64-BE-NEXT:     0010: 1C0C1F00 00000018 00000018 00000000  |................|
+// CHECK-ARM64-BE-NEXT:     0020: 00000000 00000000 00000000 00000000  |................|
+// CHECK-ARM64-BE-NEXT:   )
+// CHECK-ARM64-BE-NEXT: }
+
 f:
     .cfi_startproc
     .cfi_endproc
Index: llvm/lib/MC/MCObjectFileInfo.cpp
===================================================================
--- llvm/lib/MC/MCObjectFileInfo.cpp
+++ llvm/lib/MC/MCObjectFileInfo.cpp
@@ -315,6 +315,8 @@
                            ? dwarf::DW_EH_PE_sdata4
                            : dwarf::DW_EH_PE_sdata8;
     break;
+  case Triple::aarch64:
+  case Triple::aarch64_be:
   case Triple::ppc64:
   case Triple::ppc64le:
   case Triple::x86_64:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83644.277461.patch
Type: text/x-patch
Size: 3290 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200713/db6d3146/attachment.bin>


More information about the llvm-commits mailing list