32 lines
626 B
Rust
32 lines
626 B
Rust
//@ compile-flags: --target armv5te-unknown-linux-gnueabi
|
|
//@ needs-llvm-components: arm
|
|
//@ needs-asm-support
|
|
//@ build-pass
|
|
|
|
#![feature(no_core, lang_items, rustc_attrs)]
|
|
#![no_core]
|
|
#![crate_type = "rlib"]
|
|
|
|
#[rustc_builtin_macro]
|
|
macro_rules! asm {
|
|
() => {};
|
|
}
|
|
#[lang = "sized"]
|
|
trait Sized {}
|
|
|
|
// ARM uses R11 for the frame pointer, make sure R7 is usable.
|
|
#[instruction_set(arm::a32)]
|
|
pub fn arm() {
|
|
unsafe {
|
|
asm!("", out("r7") _);
|
|
}
|
|
}
|
|
|
|
// Thumb uses R7 for the frame pointer, make sure R11 is usable.
|
|
#[instruction_set(arm::t32)]
|
|
pub fn thumb() {
|
|
unsafe {
|
|
asm!("", out("r11") _);
|
|
}
|
|
}
|