# RUN: llvm-objdump -d %p/Inputs/cfi.elf-aarch64 | FileCheck %s # CHECK: Disassembly of section .plt: # CHECK: <__cfi_slowpath@plt>: # CHECK-NEXT: adrp x16, {{.*}} # CHECK: bl {{.*}} <__cfi_slowpath@plt> # RUN: yaml2obj %s -o %t.aarch64 # 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@plt> # CHECK-BTI: bl {{.*}} <f2@plt> # CHECK-BTI: Disassembly of section .plt: # CHECK-BTI: <f1@plt>: # CHECK-BTI-NEXT: bti c # CHECK-BTI-NEXT: adrp x16, {{.*}} # CHECK-BTI: <f2@plt>: # CHECK-BTI-NEXT: bti c # CHECK-BTI-NEXT: adrp x16, {{.*}} # RUN: yaml2obj -D SYM=0 %s -o %tindex # RUN: llvm-objdump -d %tindex 2>&1 | FileCheck %s --check-prefix=INVALID_INDEX -DFILE=%tindex # INVALID_INDEX: warning: '[[FILE]]': PLT entry at 0x210030 references an invalid symbol{{$}} # INVALID_INDEX: Disassembly of section .text: # RUN: yaml2obj -D ST_NAME=0x1234 %s -o %tst_name # RUN: llvm-objdump -d %tst_name 2>&1 | FileCheck %s --check-prefix=INVALID_ST_NAME -DFILE=%tst_name # INVALID_ST_NAME: warning: '[[FILE]]': st_name (0x1234) is past the end of the string table of size 0x7 # INVALID_ST_NAME-NEXT: warning: '[[FILE]]': PLT entry at 0x210030 references an invalid symbol{{$}} # INVALID_ST_NAME: Disassembly of section .text: --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2[[ENDIAN=LSB]] Type: ET_EXEC Machine: EM_AARCH64 Sections: - Name: .rela.plt Type: SHT_RELA Flags: [ SHF_ALLOC ] EntSize: 0x0000000000000018 Info: .got.plt Relocations: - Offset: 0x0000000000230018 Symbol: [[SYM=f1]] Type: R_AARCH64_JUMP_SLOT - Offset: 0x0000000000230020 Symbol: f2 Type: R_AARCH64_JUMP_SLOT - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Address: 0x0000000000210000 Content: 0C00009411000094C0035FD6 - Name: .plt Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Address: 0x0000000000210010 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 StName: [[ST_NAME=<none>]] Type: STT_FUNC Binding: STB_GLOBAL - Name: f2 Type: STT_FUNC Binding: STB_GLOBAL ...