mirror of https://github.com/rust-lang/rust.git
46 lines
2.0 KiB
Rust
46 lines
2.0 KiB
Rust
//@ add-core-stubs
|
|
//@ needs-asm-support
|
|
//@ revisions: loongarch64_lp64d loongarch64_lp64s
|
|
//@[loongarch64_lp64d] compile-flags: --target loongarch64-unknown-linux-gnu
|
|
//@[loongarch64_lp64d] needs-llvm-components: loongarch
|
|
//@[loongarch64_lp64s] compile-flags: --target loongarch64-unknown-none-softfloat
|
|
//@[loongarch64_lp64s] needs-llvm-components: loongarch
|
|
|
|
#![crate_type = "lib"]
|
|
#![feature(no_core)]
|
|
#![no_core]
|
|
|
|
extern crate minicore;
|
|
use minicore::*;
|
|
|
|
fn f() {
|
|
let mut x = 0;
|
|
let mut f = 0.0_f32;
|
|
let mut d = 0.0_f64;
|
|
unsafe {
|
|
// Unsupported registers
|
|
asm!("", out("$r0") _);
|
|
//~^ ERROR constant zero cannot be used as an operand for inline asm
|
|
asm!("", out("$tp") _);
|
|
//~^ ERROR invalid register `$tp`: reserved for TLS
|
|
asm!("", out("$sp") _);
|
|
//~^ ERROR invalid register `$sp`: the stack pointer cannot be used as an operand for inline asm
|
|
asm!("", out("$r21") _);
|
|
//~^ ERROR invalid register `$r21`: reserved by the ABI
|
|
asm!("", out("$fp") _);
|
|
//~^ ERROR invalid register `$fp`: the frame pointer cannot be used as an operand for inline asm
|
|
asm!("", out("$r31") _);
|
|
//~^ ERROR invalid register `$r31`: $r31 is used internally by LLVM and cannot be used as an operand for inline asm
|
|
|
|
asm!("", out("$f0") _); // ok
|
|
asm!("/* {} */", in(freg) f);
|
|
//[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
|
|
asm!("/* {} */", out(freg) _);
|
|
//[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
|
|
asm!("/* {} */", in(freg) d);
|
|
//[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
|
|
asm!("/* {} */", out(freg) d);
|
|
//[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
|
|
}
|
|
}
|