[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