Add AArch64 as an experimental target.
[oota-llvm.git] / test / MC / AArch64 / elf-reloc-movw.s
1 // RUN: llvm-mc -arch=aarch64 -filetype=obj %s -o - | \
2 // RUN:   elf-dump | FileCheck -check-prefix=OBJ %s
3
4         movz x0, #:abs_g0:some_label
5         movk x0, #:abs_g0_nc:some_label
6
7         movz x3, #:abs_g1:some_label
8         movk x5, #:abs_g1_nc:some_label
9
10         movz x3, #:abs_g2:some_label
11         movk x5, #:abs_g2_nc:some_label
12
13         movz x7, #:abs_g3:some_label
14         movk x11, #:abs_g3:some_label
15
16         movz x13, #:abs_g0_s:some_label
17         movn x17, #:abs_g0_s:some_label
18
19         movz x19, #:abs_g1_s:some_label
20         movn x19, #:abs_g1_s:some_label
21
22         movz x19, #:abs_g2_s:some_label
23         movn x19, #:abs_g2_s:some_label
24 // OBJ: .rela.text
25
26 // :abs_g0: => R_AARCH64_MOVW_UABS_G0
27 // OBJ: 'r_offset', 0x0000000000000000
28 // OBJ:  'r_sym', 0x00000005
29 // OBJ-NEXT: 'r_type', 0x00000107
30
31 // :abs_g0_nc: => R_AARCH64_MOVW_UABS_G0_NC
32 // OBJ: 'r_offset', 0x0000000000000004
33 // OBJ:  'r_sym', 0x00000005
34 // OBJ-NEXT: 'r_type', 0x00000108
35
36 // :abs_g1: => R_AARCH64_MOVW_UABS_G1
37 // OBJ: 'r_offset', 0x0000000000000008
38 // OBJ:  'r_sym', 0x00000005
39 // OBJ-NEXT: 'r_type', 0x00000109
40
41 // :abs_g1_nc: => R_AARCH64_MOVW_UABS_G1_NC
42 // OBJ: 'r_offset', 0x000000000000000c
43 // OBJ:  'r_sym', 0x00000005
44 // OBJ-NEXT: 'r_type', 0x0000010a
45
46 // :abs_g2: => R_AARCH64_MOVW_UABS_G2
47 // OBJ: 'r_offset', 0x0000000000000010
48 // OBJ:  'r_sym', 0x00000005
49 // OBJ-NEXT: 'r_type', 0x0000010b
50
51 // :abs_g2_nc: => R_AARCH64_MOVW_UABS_G2_NC
52 // OBJ: 'r_offset', 0x0000000000000014
53 // OBJ:  'r_sym', 0x00000005
54 // OBJ-NEXT: 'r_type', 0x0000010c
55
56 // :abs_g3: => R_AARCH64_MOVW_UABS_G3
57 // OBJ: 'r_offset', 0x0000000000000018
58 // OBJ:  'r_sym', 0x00000005
59 // OBJ-NEXT: 'r_type', 0x0000010d
60
61 // :abs_g3: => R_AARCH64_MOVW_UABS_G3
62 // OBJ: 'r_offset', 0x000000000000001c
63 // OBJ:  'r_sym', 0x00000005
64 // OBJ-NEXT: 'r_type', 0x0000010d
65
66 // :abs_g0_s: => R_AARCH64_MOVW_SABS_G0
67 // OBJ: 'r_offset', 0x0000000000000020
68 // OBJ:  'r_sym', 0x00000005
69 // OBJ-NEXT: 'r_type', 0x0000010e
70
71 // :abs_g0_s: => R_AARCH64_MOVW_SABS_G0
72 // OBJ: 'r_offset', 0x0000000000000024
73 // OBJ:  'r_sym', 0x00000005
74 // OBJ-NEXT: 'r_type', 0x0000010e
75
76 // :abs_g1_s: => R_AARCH64_MOVW_SABS_G1
77 // OBJ: 'r_offset', 0x0000000000000028
78 // OBJ:  'r_sym', 0x00000005
79 // OBJ-NEXT: 'r_type', 0x0000010f
80
81 // :abs_g1_s: => R_AARCH64_MOVW_SABS_G1
82 // OBJ: 'r_offset', 0x000000000000002c
83 // OBJ:  'r_sym', 0x00000005
84 // OBJ-NEXT: 'r_type', 0x0000010f
85
86 // :abs_g2_s: => R_AARCH64_MOVW_SABS_G2
87 // OBJ: 'r_offset', 0x0000000000000030
88 // OBJ:  'r_sym', 0x00000005
89 // OBJ-NEXT: 'r_type', 0x00000110
90
91 // :abs_g2_s: => R_AARCH64_MOVW_SABS_G2
92 // OBJ: 'r_offset', 0x0000000000000034
93 // OBJ:  'r_sym', 0x00000005
94 // OBJ-NEXT: 'r_type', 0x00000110
95
96 // OBJ: .symtab
97 // OBJ: Symbol 5
98 // OBJ-NEXT: some_label