67 lines · plain
1@@ Check that PC-relative memory addressing is annotated2 3@ RUN: llvm-mc %s -triple=thumbv8a --mattr=+fullfp16 -filetype=obj | \4@ RUN: llvm-objdump -d --no-show-raw-insn --triple=thumbv8a --mattr=+fullfp16 - | \5@ RUN: FileCheck %s6 7.text8foo:9@ CHECK: 00000000 <foo>:10 .short 0x010211foo2:12@ CHECK: 00000002 <foo2>:13 .short 0x030414 15_start:16@@ Check AddrMode5 instructions, with positive and negative immediates17 .balign 418 vldr d0, foo19 vldr s0, bar20@ CHECK: 4: vldr d0, [pc, #-8] @ 0x0 <foo>21@ CHECK-NEXT: 8: vldr s0, [pc, #56] @ 0x44 <bar>22 23@@ Same instructions, but the addresses are not 4-byte aligned24 nop25 vldr d0, foo26 vldr s0, bar27@ CHECK: e: vldr d0, [pc, #-16] @ 0x0 <foo>28@ CHECK-NEXT: 12: vldr s0, [pc, #48] @ 0x44 <bar>29 30@@ Check that AddrMode5 instructions which do not use PC-relative addressing are not annotated31 vldr d0, [r1, #8]32@ CHECK: 16: vldr d0, [r1, #8]{{$}}33 34@@ Check AddrMode5FP16 instructions, with positive and negative immediates35 .balign 436 vldr.16 s0, foo37 vldr.16 s0, foo238 vldr.16 s1, bar39 vldr.16 s1, bar240@ CHECK: 1c: vldr.16 s0, [pc, #-32] @ 0x0 <foo>41@ CHECK-NEXT: 20: vldr.16 s0, [pc, #-34] @ 0x2 <foo2>42@ CHECK-NEXT: 24: vldr.16 s1, [pc, #28] @ 0x44 <bar>43@ CHECK-NEXT: 28: vldr.16 s1, [pc, #26] @ 0x46 <bar2>44 45@@ Same instructions, but the addresses are not 4-byte aligned46 nop47 vldr.16 s0, foo48 vldr.16 s0, foo249 vldr.16 s1, bar50 vldr.16 s1, bar251@ CHECK: 2e: vldr.16 s0, [pc, #-48] @ 0x0 <foo>52@ CHECK-NEXT: 32: vldr.16 s0, [pc, #-50] @ 0x2 <foo2>53@ CHECK-NEXT: 36: vldr.16 s1, [pc, #12] @ 0x44 <bar>54@ CHECK-NEXT: 3a: vldr.16 s1, [pc, #10] @ 0x46 <bar2>55 56@@ Check that AddrMode5FP16 instructions which do not use PC-relative addressing are not annotated57 vldr.16 s0, [r1, #8]58@ CHECK: 3e: vldr.16 s0, [r1, #8]{{$}}59 60 .balign 461bar:62@ CHECK: 00000044 <bar>:63 .short 0x010264bar2:65@ CHECK: 00000046 <bar2>:66 .short 0x030467