69 lines
1.4 KiB
Plaintext
69 lines
1.4 KiB
Plaintext
mod setup;
|
|
use setup::*;
|
|
|
|
#[test]
|
|
fn mov() {
|
|
let c = &mut TestCtx::new("mov");
|
|
|
|
for dst in regs() {
|
|
for src in regs() {
|
|
eq(c, format!("mov {dst}, {src}"), |c| c.mov(dst, src));
|
|
}
|
|
}
|
|
|
|
for dst in regs() {
|
|
for src in mems() {
|
|
eq(c, format!("mov {dst}, {src}"), |c| c.mov(dst, src));
|
|
}
|
|
}
|
|
|
|
for dst in regs() {
|
|
for src in imms() {
|
|
eq(c, format!("mov {dst}, {src}"), |c| c.mov(dst, src));
|
|
}
|
|
}
|
|
|
|
for dst in mems() {
|
|
for src in regs() {
|
|
eq(c, format!("mov {dst}, {src}"), |c| c.mov(dst, src));
|
|
}
|
|
}
|
|
|
|
for dst in mems() {
|
|
for src in imms() {
|
|
eq(c, format!("mov {dst}, {src}"), |c| c.mov(dst, src));
|
|
}
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn add_sub() {
|
|
let c = &mut TestCtx::new("add_sub");
|
|
|
|
// add
|
|
for dst in regs() {
|
|
for src in imms() {
|
|
eq(c, format!("add {dst}, {src}"), |c| c.add(dst, src))
|
|
}
|
|
}
|
|
|
|
for dst in regs() {
|
|
for src in regs() {
|
|
eq(c, format!("add {dst}, {src}"), |c| c.add(dst, src))
|
|
}
|
|
}
|
|
|
|
for dst in mems() {
|
|
for src in imms() {
|
|
eq(c, format!("add {dst}, {src}"), |c| c.add(dst, src))
|
|
}
|
|
}
|
|
|
|
// sub
|
|
for dst in regs() {
|
|
for src in imms() {
|
|
eq(c, format!("sub {dst}, {src}"), |c| c.sub(dst, src))
|
|
}
|
|
}
|
|
}
|