ARM64: initial backend import
[oota-llvm.git] / test / MC / ARM64 / directive_loh.s
1 # RUN: not llvm-mc -triple arm64-apple-darwin < %s 2> %t | FileCheck %s
2 # RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
3
4 .globl _fct1
5 _fct1:
6   L1:
7   L2:
8   L3:
9   L4:
10   ret lr;
11
12 # Known LOHs with:
13 # - Regular syntax.
14 # - Alternative syntax.
15
16 # CHECK: .loh AdrpAdrp L1, L2
17 # CHECK: .loh AdrpAdrp L1, L2
18 .loh AdrpAdrp L1, L2
19 .loh 1 L1, L2
20
21 # CHECK: .loh AdrpLdr L1, L2
22 # CHECK: .loh AdrpLdr L1, L2
23 .loh AdrpLdr L1, L2
24 .loh 2 L1, L2
25
26 # CHECK: .loh AdrpAddLdr L1, L2, L3
27 # CHECK: .loh AdrpAddLdr L1, L2, L3
28 .loh AdrpAddLdr L1, L2, L3
29 .loh 3 L1, L2, L3
30
31 # CHECK: .loh AdrpLdrGotLdr L1, L2, L3
32 # CHECK: .loh AdrpLdrGotLdr L1, L2, L3
33 .loh AdrpLdrGotLdr L1, L2, L3
34 .loh 4 L1, L2, L3
35
36 # CHECK: .loh AdrpAddStr L1, L2, L3
37 # CHECK: .loh AdrpAddStr L1, L2, L3
38 .loh AdrpAddStr L1, L2, L3
39 .loh 5 L1, L2, L3
40
41 # CHECK: .loh AdrpLdrGotStr L1, L2, L3
42 # CHECK: .loh AdrpLdrGotStr L1, L2, L3
43 .loh AdrpLdrGotStr L1, L2, L3
44 .loh 6 L1, L2, L3
45
46 # CHECK: .loh AdrpAdd L1, L2
47 # CHECK: .loh AdrpAdd L1, L2
48 .loh AdrpAdd L1, L2
49 .loh 7 L1, L2
50
51 # CHECK: .loh AdrpLdrGot L1, L2
52 # CHECK: .loh AdrpLdrGot L1, L2
53 .loh AdrpLdrGot L1, L2
54 .loh 8 L1, L2
55
56 # End Known LOHs.
57
58 ### Errors Check ####
59
60 # Unknown textual identifier.
61 # CHECK-ERRORS: error: invalid identifier in directive
62 # CHECK-ERRORS-NEXT: .loh Unknown
63 # CHECK-ERRORS-NEXT:      ^
64 .loh Unknown
65 # Unknown numeric identifier.
66 # CHECK-ERRORS: error: invalid numeric identifier in directive
67 # CHECK-ERRORS-NEXT: .loh 153, L1
68 # CHECK-ERRORS-NEXT:      ^
69 .loh 153, L1
70
71 # Too much arguments.
72 # CHECK-ERRORS: error: unexpected token in '.loh' directive
73 # CHECK-ERRORS-NEXT: .loh AdrpAdrp L1, L2, L3
74 # CHECK-ERRORS-NEXT:                     ^
75 .loh AdrpAdrp L1, L2, L3
76
77 # Too much arguments with alternative syntax.
78 # CHECK-ERRORS: error: unexpected token in '.loh' directive
79 # CHECK-ERRORS-NEXT: .loh 1 L1, L2, L3
80 # CHECK-ERRORS-NEXT:              ^
81 .loh 1 L1, L2, L3
82
83 # Too few argumets.
84 # CHECK-ERRORS: error: unexpected token in '.loh' directive
85 # CHECK-ERRORS-NEXT: .loh AdrpAdrp L1
86 # CHECK-ERRORS-NEXT:                 ^
87 .loh AdrpAdrp L1
88
89 # Too few argumets with alternative syntax.
90 # CHECK-ERRORS: error: unexpected token in '.loh' directive
91 # CHECK-ERRORS-NEXT: .loh 1 L1
92 # CHECK-ERRORS-NEXT:          ^
93 .loh 1 L1