[llvm] 157ac42 - [llvm-objdump] Support PLT decoding for aarch64_be

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 8 08:50:34 PST 2021


Author: Fangrui Song
Date: 2021-02-08T08:50:26-08:00
New Revision: 157ac423e004961341f26c1567087b8b53770a3d

URL: https://github.com/llvm/llvm-project/commit/157ac423e004961341f26c1567087b8b53770a3d
DIFF: https://github.com/llvm/llvm-project/commit/157ac423e004961341f26c1567087b8b53770a3d.diff

LOG: [llvm-objdump] Support PLT decoding for aarch64_be

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D96211

Added: 
    

Modified: 
    llvm/lib/Object/ELFObjectFile.cpp
    llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp
index 91871a6255dc..faf614a1a97a 100644
--- a/llvm/lib/Object/ELFObjectFile.cpp
+++ b/llvm/lib/Object/ELFObjectFile.cpp
@@ -581,6 +581,7 @@ ELFObjectFileBase::getPltAddresses() const {
       JumpSlotReloc = ELF::R_X86_64_JUMP_SLOT;
       break;
     case Triple::aarch64:
+    case Triple::aarch64_be:
       JumpSlotReloc = ELF::R_AARCH64_JUMP_SLOT;
       break;
     default:

diff  --git a/llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test b/llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test
index 915b1c0dec17..6252c630a05a 100644
--- a/llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test
+++ b/llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test
@@ -6,8 +6,9 @@
 # CHECK: bl {{.*}} <__cfi_slowpath at plt>
 
 # RUN: yaml2obj %s -o %t.aarch64
-# RUN: llvm-objdump -d --mattr=+bti %t.aarch64 | \
-# RUN:   FileCheck --check-prefix=CHECK-BTI %s
+# RUN: llvm-objdump -d --mattr=+bti %t.aarch64 | FileCheck --check-prefix=CHECK-BTI %s
+# RUN: yaml2obj -DENDIAN=MSB %s -o %t.aarch64_be
+# RUN: llvm-objdump -d --mattr=+bti %t.aarch64_be | FileCheck --check-prefix=CHECK-BTI %s
 # CHECK-BTI: bl {{.*}} <f1 at plt>
 # CHECK-BTI: bl {{.*}} <f2 at plt>
 # CHECK-BTI: Disassembly of section .plt:
@@ -34,7 +35,7 @@
 --- !ELF
 FileHeader:
   Class:   ELFCLASS64
-  Data:    ELFDATA2LSB
+  Data:    ELFDATA2[[ENDIAN=LSB]]
   Type:    ET_EXEC
   Machine: EM_AARCH64
 Sections:
@@ -62,6 +63,7 @@ Sections:
     Content: 5F2403D5F07BBFA910010090110A40F91042009120021FD61F2003D51F2003D55F2403D510010090110E40F9106200919F2103D520021FD65F2403D510010090111240F9108200919F2103D520021FD6
   - Name:    .got.plt
     Type:    SHT_PROGBITS
+## The content is in little-endian, but it does not affect aarch64_be PLT decoding.
     Content: '000000000000000000000000000000000000000000000000100021000000000010002100000000001000210000000000'
 Symbols:
   - Name:    f1


        


More information about the llvm-commits mailing list