1# REQUIRES: aarch64 2 3# RUN: yaml2obj %s -o %t.o 4# RUN: ld.lld %t.o -o %t.out 5# RUN: llvm-objdump -d --no-show-raw-insn %t.out | FileCheck %s 6 7# Check that the R_AARCH64_JUMP26 writes the branch opcode as well as the 8# immediate. We use this property to overwrite instructions with a branch. 9 10# CHECK: Disassembly of section .text: 11# CHECK-EMPTY: 12# CHECK-NEXT: <foo>: 13# CHECK-NEXT: 210120: b 0x210124 14# CHECK: <bar>: 15# CHECK-NEXT: 210124: b 0x210120 16 17!ELF 18FileHeader: 19 Class: ELFCLASS64 20 Data: ELFDATA2LSB 21 Type: ET_REL 22 Machine: EM_AARCH64 23Sections: 24 - Type: SHT_PROGBITS 25 Name: .text 26 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 27 Content: "0000000000000000" 28 - Type: SHT_RELA 29 Name: .rela.text 30 Link: .symtab 31 Info: .text 32 Relocations: 33 - Symbol: bar 34 Type: R_AARCH64_JUMP26 35 - Offset: 4 36 Symbol: foo 37 Type: R_AARCH64_JUMP26 38 39Symbols: 40 - Type: STT_FUNC 41 Section: .text 42 Name: foo 43 Value: 0 44 - Type: STT_FUNC 45 Section: .text 46 Name: bar 47 Value: 4 48