mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Add assembly test for the cmse unstable features
verifies that the correct return instructions are emitted. Co-authored-by: Tamme Dittrich <tamme@tweedegolf.com>
This commit is contained in:
parent
a33dcb3607
commit
a41c209ef3
26
tests/assembly/cmse.rs
Normal file
26
tests/assembly/cmse.rs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//@ assembly-output: emit-asm
|
||||||
|
//@ compile-flags: --target thumbv8m.main-none-eabi --crate-type lib -Copt-level=1
|
||||||
|
//@ needs-llvm-components: arm
|
||||||
|
#![crate_type = "lib"]
|
||||||
|
#![feature(abi_c_cmse_nonsecure_call, cmse_nonsecure_entry, no_core, lang_items)]
|
||||||
|
#![no_core]
|
||||||
|
#[lang = "sized"]
|
||||||
|
pub trait Sized {}
|
||||||
|
#[lang = "copy"]
|
||||||
|
pub trait Copy {}
|
||||||
|
|
||||||
|
// CHECK-LABEL: __acle_se_entry_point
|
||||||
|
// CHECK: bxns
|
||||||
|
#[no_mangle]
|
||||||
|
pub extern "C-cmse-nonsecure-entry" fn entry_point() -> i64 {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
// CHECK-LABEL: call_nonsecure
|
||||||
|
// CHECK: blxns
|
||||||
|
#[no_mangle]
|
||||||
|
pub fn call_nonsecure(
|
||||||
|
f: unsafe extern "C-cmse-nonsecure-call" fn(u32, u32, u32, u32) -> u64,
|
||||||
|
) -> u64 {
|
||||||
|
unsafe { f(0, 1, 2, 3) }
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user