1// RUN: not llvm-mc -triple aarch64--none-eabi -filetype obj < %s -o /dev/null 2>&1 | FileCheck %s
2// RUN: not llvm-mc -triple aarch64-windows -filetype obj < %s -o /dev/null 2>&1 | FileCheck %s
3
4// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
5  adr x0, distant
6
7// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
8  ldr x0, distant
9
10// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
11  ldr x0, unaligned
12
13// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
14  b.eq distant
15
16// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
17  b.eq unaligned
18
19// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
20  ldr x0, [x1, distant-.]
21
22// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 8-byte aligned
23  ldr x0, [x1, unaligned-.]
24
25// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
26  ldr w0, [x1, distant-.]
27
28// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 4-byte aligned
29  ldr w0, [x1, unaligned-.]
30
31// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
32  ldrh w0, [x1, distant-.]
33
34// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 2-byte aligned
35  ldrh w0, [x1, unaligned-.]
36
37// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
38  ldrb w0, [x1, distant-.]
39
40// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
41  ldr q0, [x1, distant-.]
42
43// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 16-byte aligned
44  ldr q0, [x1, unaligned-.]
45
46// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
47  tbz x0, #1, distant
48
49// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
50  tbz x0, #1, unaligned
51
52// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
53  b distant
54
55// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
56  b unaligned
57
58// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
59  movz x0, #:abs_g0:value1
60
61// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
62  movz x0, #:abs_g1:value2
63
64// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
65  movz x0, #:abs_g0_s:value1
66
67// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
68  movz x0, #:abs_g1_s:value2
69
70// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: relocation for a thread-local variable points to an absolute symbol
71  movz x0, #:tprel_g0:value1
72
73
74  .byte 0
75unaligned:
76  .byte 0
77
78  .space 1<<27
79  .balign 8
80distant:
81  .word 0
82value1 = 0x12345678
83value2 = 0x123456789
84