2021-06-24 09:01:49 -05:00
|
|
|
error: invalid register class `foo`: unknown register class
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:14:20
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{}", in(foo) foo);
|
|
|
|
| ^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: invalid register `foo`: unknown register
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:16:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("foo") foo);
|
|
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: invalid asm template modifier for this register class
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:18:15
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{:z}", in(reg) foo);
|
|
|
|
| ^^^^ ----------- argument
|
|
|
|
| |
|
|
|
|
| template modifier
|
|
|
|
|
|
|
|
|
= note: the `reg` register class supports the following template modifiers: `w`, `x`
|
|
|
|
|
|
|
|
error: invalid asm template modifier for this register class
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:20:15
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{:r}", in(vreg) foo);
|
|
|
|
| ^^^^ ------------ argument
|
|
|
|
| |
|
|
|
|
| template modifier
|
|
|
|
|
|
|
|
|
= note: the `vreg` register class supports the following template modifiers: `b`, `h`, `s`, `d`, `q`, `v`
|
|
|
|
|
|
|
|
error: invalid asm template modifier for this register class
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:22:15
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{:r}", in(vreg_low16) foo);
|
|
|
|
| ^^^^ ------------------ argument
|
|
|
|
| |
|
|
|
|
| template modifier
|
|
|
|
|
|
|
|
|
= note: the `vreg_low16` register class supports the following template modifiers: `b`, `h`, `s`, `d`, `q`, `v`
|
|
|
|
|
|
|
|
error: asm template modifiers are not allowed for `const` arguments
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:24:15
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{:a}", const 0);
|
|
|
|
| ^^^^ ------- argument
|
|
|
|
| |
|
|
|
|
| template modifier
|
|
|
|
|
|
|
|
error: asm template modifiers are not allowed for `sym` arguments
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:26:15
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{:a}", sym main);
|
|
|
|
| ^^^^ -------- argument
|
|
|
|
| |
|
|
|
|
| template modifier
|
|
|
|
|
|
|
|
error: invalid register `x29`: the frame pointer cannot be used as an operand for inline asm
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:28:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("x29") foo);
|
|
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:30:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("sp") foo);
|
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: invalid register `xzr`: the zero register cannot be used as an operand for inline asm
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:32:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("xzr") foo);
|
|
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: invalid register `x19`: x19 is used internally by LLVM and cannot be used as an operand for inline asm
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:34:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("x19") foo);
|
|
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: register class `preg` can only be used as a clobber, not as an input or output
|
2021-12-10 18:11:10 -06:00
|
|
|
--> $DIR/bad-reg.rs:37:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("p0") foo);
|
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: register class `preg` can only be used as a clobber, not as an input or output
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:41:20
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{}", in(preg) foo);
|
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: register class `preg` can only be used as a clobber, not as an input or output
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:44:20
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("{}", out(preg) _);
|
|
|
|
| ^^^^^^^^^^^
|
|
|
|
|
2023-11-28 04:25:22 -06:00
|
|
|
error: register `w0` conflicts with register `x0`
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:50:32
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("x0") foo, in("w0") bar);
|
2023-11-28 04:25:22 -06:00
|
|
|
| ------------ ^^^^^^^^^^^^ register `w0`
|
2021-06-24 09:01:49 -05:00
|
|
|
| |
|
|
|
|
| register `x0`
|
|
|
|
|
|
|
|
error: register `x0` conflicts with register `x0`
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:52:32
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("x0") foo, out("x0") bar);
|
|
|
|
| ------------ ^^^^^^^^^^^^^ register `x0`
|
|
|
|
| |
|
|
|
|
| register `x0`
|
|
|
|
|
|
|
|
|
help: use `lateout` instead of `out` to avoid conflict
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:52:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("x0") foo, out("x0") bar);
|
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
2023-11-28 04:25:22 -06:00
|
|
|
error: register `q0` conflicts with register `v0`
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:55:32
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("v0") foo, in("q0") bar);
|
2023-11-28 04:25:22 -06:00
|
|
|
| ------------ ^^^^^^^^^^^^ register `q0`
|
2021-06-24 09:01:49 -05:00
|
|
|
| |
|
|
|
|
| register `v0`
|
|
|
|
|
2023-11-28 04:25:22 -06:00
|
|
|
error: register `q0` conflicts with register `v0`
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:57:32
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("v0") foo, out("q0") bar);
|
2023-11-28 04:25:22 -06:00
|
|
|
| ------------ ^^^^^^^^^^^^^ register `q0`
|
2021-06-24 09:01:49 -05:00
|
|
|
| |
|
|
|
|
| register `v0`
|
|
|
|
|
|
|
|
|
help: use `lateout` instead of `out` to avoid conflict
|
2022-05-27 04:18:11 -05:00
|
|
|
--> $DIR/bad-reg.rs:57:18
|
2021-06-24 09:01:49 -05:00
|
|
|
|
|
|
|
|
LL | asm!("", in("v0") foo, out("q0") bar);
|
|
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
2022-05-27 04:18:11 -05:00
|
|
|
error: type `i32` cannot be used with this register class
|
|
|
|
--> $DIR/bad-reg.rs:37:27
|
|
|
|
|
|
|
|
|
LL | asm!("", in("p0") foo);
|
|
|
|
| ^^^
|
|
|
|
|
|
|
|
|
= note: register class `preg` supports these types:
|
|
|
|
|
|
|
|
error: type `i32` cannot be used with this register class
|
|
|
|
--> $DIR/bad-reg.rs:41:29
|
|
|
|
|
|
|
|
|
LL | asm!("{}", in(preg) foo);
|
|
|
|
| ^^^
|
|
|
|
|
|
|
|
|
= note: register class `preg` supports these types:
|
|
|
|
|
|
|
|
error: aborting due to 20 previous errors
|
2021-06-24 09:01:49 -05:00
|
|
|
|