From 157ac423e004961341f26c1567087b8b53770a3d Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Mon, 8 Feb 2021 08:50:25 -0800 Subject: [PATCH] [llvm-objdump] Support PLT decoding for aarch64_be Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D96211 --- llvm/lib/Object/ELFObjectFile.cpp | 1 + llvm/test/tools/llvm-objdump/ELF/AArch64/plt.test | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp index 91871a6..faf614a 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 915b1c0..6252c63 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@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 {{.*}} # CHECK-BTI: bl {{.*}} # 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 -- 2.7.4