Closed
Description
If any of the floating point registers (v0-31) or x30 on AArch64 are used as an out parameter the code doesn't compile. The following code using v0
fails to compile on rustc 1.47.0-nightly (e15510ca3 2020-08-20)
:
#![feature(asm)]
fn main() {
unsafe {
asm!(
"",
out("v0") _
);
}
}
with an error:
error: non-trivial scalar-to-vector conversion, possible invalid constraint for vector type
--> src/main.rs:6:15
|
6 | "",
| ^
If x30 is used instead of v0 another error message is shown:
error: couldn't allocate output register for constraint '{x30}'
--> src/main.rs:6:15
|
6 | "",
| ^
I expect it to be possible to use all these registers as parameters to out.