remove arm tests from the old test suite
This commit is contained in:
parent
9e2c2b6447
commit
d34c51f74a
81
src/arm.rs
81
src/arm.rs
|
@ -180,84 +180,3 @@ pub unsafe extern "aapcs" fn __aeabi_memclr4(dest: *mut u8, n: usize) {
|
||||||
pub unsafe extern "aapcs" fn __aeabi_memclr8(dest: *mut u8, n: usize) {
|
pub unsafe extern "aapcs" fn __aeabi_memclr8(dest: *mut u8, n: usize) {
|
||||||
memset(dest, 0, n);
|
memset(dest, 0, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use quickcheck::TestResult;
|
|
||||||
use qc::{U32, U64};
|
|
||||||
|
|
||||||
quickcheck!{
|
|
||||||
fn uldivmod(n: U64, d: U64) -> TestResult {
|
|
||||||
let (n, d) = (n.0, d.0);
|
|
||||||
if d == 0 {
|
|
||||||
TestResult::discard()
|
|
||||||
} else {
|
|
||||||
let q: u64;
|
|
||||||
let r: u64;
|
|
||||||
unsafe {
|
|
||||||
// The inline asm is a bit tricky here, LLVM will allocate
|
|
||||||
// both r0 and r1 when we specify a 64-bit value for {r0}.
|
|
||||||
asm!("bl __aeabi_uldivmod"
|
|
||||||
: "={r0}" (q), "={r2}" (r)
|
|
||||||
: "{r0}" (n), "{r2}" (d)
|
|
||||||
: "r12", "lr", "flags");
|
|
||||||
}
|
|
||||||
TestResult::from_bool(q == n / d && r == n % d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn uidivmod(n: U32, d: U32) -> TestResult {
|
|
||||||
let (n, d) = (n.0, d.0);
|
|
||||||
if d == 0 {
|
|
||||||
TestResult::discard()
|
|
||||||
} else {
|
|
||||||
let q: u32;
|
|
||||||
let r: u32;
|
|
||||||
unsafe {
|
|
||||||
asm!("bl __aeabi_uidivmod"
|
|
||||||
: "={r0}" (q), "={r1}" (r)
|
|
||||||
: "{r0}" (n), "{r1}" (d)
|
|
||||||
: "r2", "r3", "r12", "lr", "flags");
|
|
||||||
}
|
|
||||||
TestResult::from_bool(q == n / d && r == n % d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn ldivmod(n: U64, d: U64) -> TestResult {
|
|
||||||
let (n, d) = (n.0 as i64, d.0 as i64);
|
|
||||||
if d == 0 {
|
|
||||||
TestResult::discard()
|
|
||||||
} else {
|
|
||||||
let q: i64;
|
|
||||||
let r: i64;
|
|
||||||
unsafe {
|
|
||||||
// The inline asm is a bit tricky here, LLVM will allocate
|
|
||||||
// both r0 and r1 when we specify a 64-bit value for {r0}.
|
|
||||||
asm!("bl __aeabi_ldivmod"
|
|
||||||
: "={r0}" (q), "={r2}" (r)
|
|
||||||
: "{r0}" (n), "{r2}" (d)
|
|
||||||
: "r12", "lr", "flags");
|
|
||||||
}
|
|
||||||
TestResult::from_bool(q == n / d && r == n % d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn idivmod(n: U32, d: U32) -> TestResult {
|
|
||||||
let (n, d) = (n.0 as i32, d.0 as i32);
|
|
||||||
if d == 0 || (n == i32::min_value() && d == -1) {
|
|
||||||
TestResult::discard()
|
|
||||||
} else {
|
|
||||||
let q: i32;
|
|
||||||
let r: i32;
|
|
||||||
unsafe {
|
|
||||||
asm!("bl __aeabi_idivmod"
|
|
||||||
: "={r0}" (q), "={r1}" (r)
|
|
||||||
: "{r0}" (n), "{r1}" (d)
|
|
||||||
: "r2", "r3", "r12", "lr", "flags");
|
|
||||||
}
|
|
||||||
TestResult::from_bool(q == n / d && r == n % d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue