91 lines · plain
1# REQUIRES: aarch642 3# RUN: llvm-mc -filetype=obj -triple=arm64-apple-darwin %s -o %t.o4# RUN: %lld -arch arm64 %t.o -o %t5# RUN: llvm-objdump -d --macho %t | FileCheck %s6 7# CHECK-LABEL: _main:8## Out of range, before9# CHECK-NEXT: adrp x010# CHECK-NEXT: add x0, x011## In range, before12# CHECK-NEXT: adr x113# CHECK-NEXT: nop14## Registers don't match (invalid input)15# CHECK-NEXT: adrp x216# CHECK-NEXT: add x017## Not an adrp instruction (invalid input)18# CHECK-NEXT: nop19# CHECK-NEXT: add x420## In range, after21# CHECK-NEXT: adr x522# CHECK-NEXT: nop23## In range, add's destination register is not the same as its source24# CHECK-NEXT: adr x725# CHECK-NEXT: nop26## Valid, non-adjacent instructions - start27# CHECK-NEXT: adr x828## Out of range, after29# CHECK-NEXT: adrp x930# CHECK-NEXT: add x9, x931## Valid, non-adjacent instructions - end32# CHECK-NEXT: nop33 34.text35.align 236_before_far:37 .space 104857638 39_before_near:40 nop41 42.globl _main43_main:44L1:45 adrp x0, _before_far@PAGE46L2:47 add x0, x0, _before_far@PAGEOFF48L3:49 adrp x1, _before_near@PAGE50L4:51 add x1, x1, _before_near@PAGEOFF52L5:53 adrp x2, _before_near@PAGE54L6:55 add x0, x0, _before_near@PAGEOFF56L9:57 nop58L10:59 add x4, x4, _after_near@PAGEOFF60L11:61 adrp x5, _after_near@PAGE62L12:63 add x5, x5, _after_near@PAGEOFF64L13:65 adrp x6, _after_near@PAGE66L14:67 add x7, x6, _after_near@PAGEOFF68L15:69 adrp x8, _after_near@PAGE70L16:71 adrp x9, _after_far@PAGE72L17:73 add x9, x9, _after_far@PAGEOFF74L18:75 add x8, x8, _after_near@PAGEOFF76 77_after_near:78 .space 104857679 80_after_far:81 nop82 83.loh AdrpAdd L1, L284.loh AdrpAdd L3, L485.loh AdrpAdd L5, L686.loh AdrpAdd L9, L1087.loh AdrpAdd L11, L1288.loh AdrpAdd L13, L1489.loh AdrpAdd L15, L1890.loh AdrpAdd L16, L1791