99 lines · plain
1// RUN: llvm-mc -triple aarch64-elf -filetype=obj %s -o - | llvm-objdump --no-print-imm-hex -d - | FileCheck %s2 3start:4 .space 85end:6 // CHECK-LABEL: <end>:7 8 adds w0, w1, #(end - start)9 adds x0, x1, #(end - start)10 add w0, w1, #(end - start)11 add x0, x1, #(end - start)12 cmp w0, #(end - start)13 cmp x0, #(end - start)14 sub w0, w1, #(end - start)15 sub x0, x1, #(end - start)16 // FIXME: adr x1, #(end - start) // This could be supported, but currently doesn't work17 // CHECK: adds w0, w1, #818 // CHECK: adds x0, x1, #819 // CHECK: add w0, w1, #820 // CHECK: add x0, x1, #821 // CHECK: cmp w0, #822 // CHECK: cmp x0, #823 // CHECK: sub w0, w1, #824 // CHECK: sub x0, x1, #825 // FIXME: adr x1, #826 27 add w0, w1, #(end - start), lsl #1228 cmp w0, #(end - start), lsl #1229 // CHECK: add w0, w1, #8, lsl #1230 // CHECK: cmp w0, #8, lsl #1231 32 add w0, w1, #((end - start) >> 2)33 cmp w0, #((end - start) >> 2)34 // CHECK: add w0, w1, #235 // CHECK: cmp w0, #236 37 add w0, w1, #(end - start + 12)38 cmp w0, #(end - start + 12)39 // CHECK: add w0, w1, #2040 // CHECK: cmp w0, #2041 42 add w0, w1, #(forward - end)43 cmp w0, #(forward - end)44 // CHECK: add w0, w1, #32045 // CHECK: cmp w0, #32046 47// Add some filler so we don't have to modify #(forward - end) if we add more48// instructions above49.Lfiller:50 .space 320 - (.Lfiller - end)51 52forward:53 .space 854 55.Lstart:56 .space 857.Lend:58 add w0, w1, #(.Lend - .Lstart)59 cmp w0, #(.Lend - .Lstart)60 // CHECK: add w0, w1, #861 // CHECK: cmp w0, #862 63.Lprivate1:64 .space 865notprivate:66 .space 867.Lprivate2:68 add w0, w1, #(.Lprivate2 - .Lprivate1)69 cmp w0, #(.Lprivate2 - .Lprivate1)70 // CHECK: add w0, w1, #1671 // CHECK: cmp w0, #1672 73 .type foo, @function74foo:75 // CHECK-LABEL: <foo>:76 77 add w0, w1, #(foo - .Lprivate2)78 cmp w0, #(foo - .Lprivate2)79 // CHECK: add w0, w1, #880 // CHECK: cmp w0, #881 82 ret83 84 .type goo, @function85goo:86 // CHECK-LABEL: <goo>:87 88 add w0, w1, #(goo - foo)89 cmp w0, #(goo - foo)90 // CHECK: add w0, w1, #1291 // CHECK: cmp w0, #1292 93 add w0, w1, #(. - goo)94 cmp w0, #(. - goo)95 // CHECK: add w0, w1, #896 // CHECK: cmp w0, #1297 98 ret99