]> git.lizzy.rs Git - rust.git/blob - src/test/ui/asm/x86_64/bad-reg.stderr
Auto merge of #98471 - wesleywiser:update_measureme, r=Mark-Simulacrum
[rust.git] / src / test / ui / asm / x86_64 / bad-reg.stderr
1 error: invalid register class `foo`: unknown register class
2   --> $DIR/bad-reg.rs:14:20
3    |
4 LL |         asm!("{}", in(foo) foo);
5    |                    ^^^^^^^^^^^
6
7 error: invalid register `foo`: unknown register
8   --> $DIR/bad-reg.rs:16:18
9    |
10 LL |         asm!("", in("foo") foo);
11    |                  ^^^^^^^^^^^^^
12
13 error: invalid asm template modifier for this register class
14   --> $DIR/bad-reg.rs:18:15
15    |
16 LL |         asm!("{:z}", in(reg) foo);
17    |               ^^^^   ----------- argument
18    |               |
19    |               template modifier
20    |
21    = note: the `reg` register class supports the following template modifiers: `l`, `x`, `e`, `r`
22
23 error: invalid asm template modifier for this register class
24   --> $DIR/bad-reg.rs:20:15
25    |
26 LL |         asm!("{:r}", in(xmm_reg) foo);
27    |               ^^^^   --------------- argument
28    |               |
29    |               template modifier
30    |
31    = note: the `xmm_reg` register class supports the following template modifiers: `x`, `y`, `z`
32
33 error: asm template modifiers are not allowed for `const` arguments
34   --> $DIR/bad-reg.rs:22:15
35    |
36 LL |         asm!("{:a}", const 0);
37    |               ^^^^   ------- argument
38    |               |
39    |               template modifier
40
41 error: asm template modifiers are not allowed for `sym` arguments
42   --> $DIR/bad-reg.rs:24:15
43    |
44 LL |         asm!("{:a}", sym main);
45    |               ^^^^   -------- argument
46    |               |
47    |               template modifier
48
49 error: invalid register `ebp`: the frame pointer cannot be used as an operand for inline asm
50   --> $DIR/bad-reg.rs:26:18
51    |
52 LL |         asm!("", in("ebp") foo);
53    |                  ^^^^^^^^^^^^^
54
55 error: invalid register `rsp`: the stack pointer cannot be used as an operand for inline asm
56   --> $DIR/bad-reg.rs:28:18
57    |
58 LL |         asm!("", in("rsp") foo);
59    |                  ^^^^^^^^^^^^^
60
61 error: invalid register `ip`: the instruction pointer cannot be used as an operand for inline asm
62   --> $DIR/bad-reg.rs:30:18
63    |
64 LL |         asm!("", in("ip") foo);
65    |                  ^^^^^^^^^^^^
66
67 error: register class `x87_reg` can only be used as a clobber, not as an input or output
68   --> $DIR/bad-reg.rs:33:18
69    |
70 LL |         asm!("", in("st(2)") foo);
71    |                  ^^^^^^^^^^^^^^^
72
73 error: register class `mmx_reg` can only be used as a clobber, not as an input or output
74   --> $DIR/bad-reg.rs:36:18
75    |
76 LL |         asm!("", in("mm0") foo);
77    |                  ^^^^^^^^^^^^^
78
79 error: register class `kreg0` can only be used as a clobber, not as an input or output
80   --> $DIR/bad-reg.rs:39:18
81    |
82 LL |         asm!("", in("k0") foo);
83    |                  ^^^^^^^^^^^^
84
85 error: register class `x87_reg` can only be used as a clobber, not as an input or output
86   --> $DIR/bad-reg.rs:44:20
87    |
88 LL |         asm!("{}", in(x87_reg) foo);
89    |                    ^^^^^^^^^^^^^^^
90
91 error: register class `mmx_reg` can only be used as a clobber, not as an input or output
92   --> $DIR/bad-reg.rs:47:20
93    |
94 LL |         asm!("{}", in(mmx_reg) foo);
95    |                    ^^^^^^^^^^^^^^^
96
97 error: register class `x87_reg` can only be used as a clobber, not as an input or output
98   --> $DIR/bad-reg.rs:50:20
99    |
100 LL |         asm!("{}", out(x87_reg) _);
101    |                    ^^^^^^^^^^^^^^
102
103 error: register class `mmx_reg` can only be used as a clobber, not as an input or output
104   --> $DIR/bad-reg.rs:52:20
105    |
106 LL |         asm!("{}", out(mmx_reg) _);
107    |                    ^^^^^^^^^^^^^^
108
109 error: register `al` conflicts with register `ax`
110   --> $DIR/bad-reg.rs:58:33
111    |
112 LL |         asm!("", in("eax") foo, in("al") bar);
113    |                  -------------  ^^^^^^^^^^^^ register `al`
114    |                  |
115    |                  register `ax`
116
117 error: register `ax` conflicts with register `ax`
118   --> $DIR/bad-reg.rs:61:33
119    |
120 LL |         asm!("", in("rax") foo, out("rax") bar);
121    |                  -------------  ^^^^^^^^^^^^^^ register `ax`
122    |                  |
123    |                  register `ax`
124    |
125 help: use `lateout` instead of `out` to avoid conflict
126   --> $DIR/bad-reg.rs:61:18
127    |
128 LL |         asm!("", in("rax") foo, out("rax") bar);
129    |                  ^^^^^^^^^^^^^
130
131 error: register `ymm0` conflicts with register `xmm0`
132   --> $DIR/bad-reg.rs:66:34
133    |
134 LL |         asm!("", in("xmm0") foo, in("ymm0") bar);
135    |                  --------------  ^^^^^^^^^^^^^^ register `ymm0`
136    |                  |
137    |                  register `xmm0`
138
139 error: register `ymm0` conflicts with register `xmm0`
140   --> $DIR/bad-reg.rs:68:34
141    |
142 LL |         asm!("", in("xmm0") foo, out("ymm0") bar);
143    |                  --------------  ^^^^^^^^^^^^^^^ register `ymm0`
144    |                  |
145    |                  register `xmm0`
146    |
147 help: use `lateout` instead of `out` to avoid conflict
148   --> $DIR/bad-reg.rs:68:18
149    |
150 LL |         asm!("", in("xmm0") foo, out("ymm0") bar);
151    |                  ^^^^^^^^^^^^^^
152
153 error: type `i32` cannot be used with this register class
154   --> $DIR/bad-reg.rs:33:30
155    |
156 LL |         asm!("", in("st(2)") foo);
157    |                              ^^^
158    |
159    = note: register class `x87_reg` supports these types: 
160
161 error: type `i32` cannot be used with this register class
162   --> $DIR/bad-reg.rs:36:28
163    |
164 LL |         asm!("", in("mm0") foo);
165    |                            ^^^
166    |
167    = note: register class `mmx_reg` supports these types: 
168
169 error: type `i32` cannot be used with this register class
170   --> $DIR/bad-reg.rs:39:27
171    |
172 LL |         asm!("", in("k0") foo);
173    |                           ^^^
174    |
175    = note: register class `kreg0` supports these types: 
176
177 error: type `i32` cannot be used with this register class
178   --> $DIR/bad-reg.rs:44:32
179    |
180 LL |         asm!("{}", in(x87_reg) foo);
181    |                                ^^^
182    |
183    = note: register class `x87_reg` supports these types: 
184
185 error: type `i32` cannot be used with this register class
186   --> $DIR/bad-reg.rs:47:32
187    |
188 LL |         asm!("{}", in(mmx_reg) foo);
189    |                                ^^^
190    |
191    = note: register class `mmx_reg` supports these types: 
192
193 error: type `i32` cannot be used with this register class
194   --> $DIR/bad-reg.rs:58:42
195    |
196 LL |         asm!("", in("eax") foo, in("al") bar);
197    |                                          ^^^
198    |
199    = note: register class `reg_byte` supports these types: i8
200
201 error: type `i32` cannot be used with this register class
202   --> $DIR/bad-reg.rs:63:27
203    |
204 LL |         asm!("", in("al") foo, lateout("al") bar);
205    |                           ^^^
206    |
207    = note: register class `reg_byte` supports these types: i8
208
209 error: type `i32` cannot be used with this register class
210   --> $DIR/bad-reg.rs:63:46
211    |
212 LL |         asm!("", in("al") foo, lateout("al") bar);
213    |                                              ^^^
214    |
215    = note: register class `reg_byte` supports these types: i8
216
217 error: aborting due to 28 previous errors
218