brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 956632a Raw
134 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 --no-print-imm-hex -d --macho %t | FileCheck %s6 7.text8.align 29_before_far:10 .space 104857611 12.align 213_before_near:14  .quad 015 16.globl _main17# CHECK-LABEL: _main:18_main:19## Out of range, before20L1:  adrp  x0, _before_far@PAGE21L2:  ldr   x0, [x0, _before_far@PAGEOFF]22# CHECK-NEXT: adrp x023# CHECK-NEXT: ldr x024 25## In range, before26L3:  adrp  x1, _before_near@PAGE27L4:  ldr   x1, [x1, _before_near@PAGEOFF]28# CHECK-NEXT: nop29# CHECK-NEXT: ldr x1, #-2030 31## Registers don't match (invalid input)32L5:  adrp  x2, _before_near@PAGE33L6:  ldr   x3, [x3, _before_near@PAGEOFF]34# CHECK-NEXT: adrp x235# CHECK-NEXT: ldr x336 37## Not an adrp instruction38L9:  udf   039L10: ldr   x5, [x5, _after_near@PAGEOFF]40# CHECK-NEXT: udf41# CHECK-NEXT: ldr x542 43## Not an ldr with an immediate offset44L11: adrp  x6, _after_near@PAGE45L12: ldr   x6, 046# CHECK-NEXT: adrp x647# CHECK-NEXT: ldr x6, #048 49## Byte load, unsupported50L15: adrp  x8, _after_near@PAGE51L16: ldr   b8, [x8, _after_near@PAGEOFF]52# CHECK-NEXT: adrp x853# CHECK-NEXT: ldr b854 55## Halfword load, unsupported56L17: adrp  x9, _after_near@PAGE57L18: ldr   h9, [x9, _after_near@PAGEOFF]58# CHECK-NEXT: adrp x959# CHECK-NEXT: ldr h960 61## Word load62L19: adrp  x10, _after_near@PAGE63L20: ldr   w10, [x10, _after_near@PAGEOFF]64# CHECK-NEXT: nop65# CHECK-NEXT: ldr w10, _after_near66 67## With addend68L21: adrp  x11, _after_near@PAGE + 869L22: ldr   x11, [x11, _after_near@PAGEOFF + 8]70# CHECK-NEXT: nop71# CHECK-NEXT: ldr x1172 73## Signed 32-bit read from 16-bit value, unsupported74L23: adrp  x12, _after_near@PAGE75L24: ldrsb w12, [x12, _after_near@PAGEOFF]76# CHECK-NEXT: adrp x1277# CHECK-NEXT: ldrsb w1278 79## 64-bit load from signed 32-bit value80L25: adrp  x13, _after_near@PAGE81L26: ldrsw x13, [x13, _after_near@PAGEOFF]82# CHECK-NEXT: nop83# CHECK-NEXT: ldrsw x13, _after_near84 85## Single precision FP read86L27: adrp  x14, _after_near@PAGE87L28: ldr   s0, [x14, _after_near@PAGEOFF]88# CHECK-NEXT: nop89# CHECK-NEXT: ldr s0, _after_near90 91## Double precision FP read92L29: adrp  x15, _after_near@PAGE93L30: ldr   d0, [x15, _after_near@PAGEOFF]94# CHECK-NEXT: nop95# CHECK-NEXT: ldr d0, _after_near96 97## Quad precision FP read98L31: adrp  x16, _after_near@PAGE99L32: ldr   q0, [x16, _after_near@PAGEOFF]100# CHECK-NEXT: nop101# CHECK-NEXT: ldr q0, _after_near102 103## Out of range, after104L33: adrp  x17, _after_far@PAGE105L34: ldr   x17, [x17, _after_far@PAGEOFF]106# CHECK-NEXT: adrp x17107# CHECK-NEXT: ldr x17108 109.data110.align 4111_after_near:112  .quad 0113  .quad 0114.space 1048576115 116_after_far:117  .quad 0118 119.loh AdrpLdr L1, L2120.loh AdrpLdr L3, L4121.loh AdrpLdr L5, L6122.loh AdrpLdr L9, L10123.loh AdrpLdr L11, L12124.loh AdrpLdr L15, L16125.loh AdrpLdr L17, L18126.loh AdrpLdr L19, L20127.loh AdrpLdr L21, L22128.loh AdrpLdr L23, L24129.loh AdrpLdr L25, L26130.loh AdrpLdr L27, L28131.loh AdrpLdr L29, L30132.loh AdrpLdr L31, L32133.loh AdrpLdr L33, L34134