]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/MC/ARM/eh-directive-movsp-diagnostics.s
Vendor import of llvm RELEASE_350/final tag r216957 (effectively, 3.5.0 release):
[FreeBSD/FreeBSD.git] / test / MC / ARM / eh-directive-movsp-diagnostics.s
1 @ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null 2>&1 %s \
2 @ RUN:  | FileCheck %s
3
4         .syntax unified
5         .thumb
6
7         .global false_start
8         .type false_start,%function
9         .thumb_func
10 false_start:
11         .movsp r7
12
13 @ CHECK: error: .fnstart must precede .movsp directive
14 @ CHECK:        .movsp r7
15 @ CHECK:        ^
16
17         .global beyond_saving
18         .type beyond_saving,%function
19         .thumb_func
20 beyond_saving:
21         .fnstart
22         .setfp r11, sp, #8
23         add r11, sp, #8
24         .movsp r7
25         mov r7, r11
26         .fnend
27
28 @ CHECK: error: unexpected .movsp directive
29 @ CHECK:        .movsp r7
30 @ CHECK:        ^
31
32
33         .global sp_invalid
34         .type sp_invalid,%function
35         .thumb_func
36 sp_invalid:
37         .fnstart
38         .movsp r13
39         mov sp, sp
40         .fnend
41
42 @ CHECK: error: sp and pc are not permitted in .movsp directive
43 @ CHECK:        .movsp r13
44 @ CHECK:               ^
45
46
47         .global pc_invalid
48         .type pc_invalid,%function
49         .thumb_func
50 pc_invalid:
51         .fnstart
52         .movsp r15
53         mov sp, pc
54         .fnend
55
56 @ CHECK: error: sp and pc are not permitted in .movsp directive
57 @ CHECK:        .movsp r15
58 @ CHECK:               ^
59
60
61         .global constant_required
62         .type constant_required,%function
63         .thumb_func
64 constant_required:
65         .fnstart
66         .movsp r11,
67         mov sp, r11
68         .fnend
69
70 @ CHECK: error: expected #constant
71 @ CHECK:        .movsp r11,
72 @ CHECK:                   ^
73
74
75         .global constant_constant
76         .type constant_constant,%function
77         .thumb_func
78 constant_constant:
79         .fnstart
80         .movsp r11, #constant
81         mov sp, r11
82         .fnend
83
84 @ CHECK: error: offset must be an immediate constant
85 @ CHECK:        .movsp r11, #constant
86 @ CHECK:                     ^
87
88
89         .arm
90
91         .global register_required
92         .type register_required,%function
93 register_required:
94         .fnstart
95         .movsp #42
96         mov sp, #42
97         .fnend
98
99 @ CHECK: error: register expected
100 @ CHECK:        .movsp #42
101 @ CHECK:               ^
102