Skip to content

Commit

Permalink
add tests on BitwiseOp::Scl/Scr
Browse files Browse the repository at this point in the history
  • Loading branch information
6293 committed Jul 13, 2023
1 parent 0bf3634 commit 51fcc8a
Showing 1 changed file with 196 additions and 2 deletions.
198 changes: 196 additions & 2 deletions tests/asm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,22 @@ fn shl() {
}
}

#[test]
fn shl_st0() {
aluasm_fail! {
put a8[0],1;
put a8[1],3;
shl a8[1],a8[0];
ret;
}
aluasm_succ! {
put a8[0],128;
put a8[1],3;
shl a8[1],a8[0];
ret;
}
}

#[test]
fn shl_overflow() {
aluasm_succ! {
Expand Down Expand Up @@ -704,6 +720,24 @@ fn shl_rreg() {
}
}

#[test]
fn shl_rreg_st0() {
aluasm_fail! {
put r128[0],1;
put a8[1],3;
shl a8[1],r128[0];
ret;
}
aluasm_succ! {
put r128[0],1;
put a16[1],127;
shl a16[1],r128[0];
put a16[1],1;
shl a16[1],r128[0];
ret;
}
}

#[test]
fn shr_u() {
aluasm_succ! {
Expand Down Expand Up @@ -753,6 +787,22 @@ fn shr_u() {
}
}

#[test]
fn shr_u_st0() {
aluasm_fail! {
put a8[0],2;
put a8[1],1;
shr.u a8[1],a8[0];
ret;
}
aluasm_succ! {
put a8[0],3;
put a8[1],1;
shr.u a8[1],a8[0];
ret;
}
}

#[test]
fn shr_s() {
aluasm_succ! {
Expand Down Expand Up @@ -810,6 +860,22 @@ fn shr_r() {
}
}

#[test]
fn shr_r_st0() {
aluasm_fail! {
put r128[0],2;
put a8[1],3;
shr a8[1],r128[0];
ret;
}
aluasm_succ! {
put r128[0],3;
put a8[1],3;
shr a8[1],r128[0];
ret;
}
}

#[test]
fn scl_a() {
aluasm_succ! {
Expand All @@ -836,6 +902,18 @@ fn scl_a() {
eq.n a8[0],a8[2];
ret;
}
aluasm_succ! {
put a8[0],2;
put a8[1],81;
put a8[2],4;
scl a8[1],a8[0];
eq.n a8[0],a8[2];
ret;
}
}

#[test]
fn scl_a_st0() {
aluasm_fail! {
put a8[0],1;
put a8[1],1;
Expand Down Expand Up @@ -876,9 +954,21 @@ fn scl_r() {
eq.n r8192[0],r8192[2];
ret;
}
aluasm_succ! {
put r1024[0],2;
put a16[1],2049;
put r1024[2],4;
scl a16[1],r1024[0];
eq.n r1024[0],r1024[2];
ret;
}
}

#[test]
fn scl_r_st0() {
aluasm_fail! {
put r8192[0],1;
put a16[1],8191;
put r8192[0],5;
put a16[1],1;
scl a16[1],r8192[0];
ret;
}
Expand All @@ -891,3 +981,107 @@ fn scl_r() {
ret;
}
}

#[test]
fn scr_a() {
aluasm_succ! {
put a16[0],10;
put a16[1],1;
put a16[2],5;
scr a16[1],a16[0];
eq.n a16[0],a16[2];
ret;
}
aluasm_succ! {
put a8[0],130;
put a8[1],7;
put a8[2],5;
scr a8[1],a8[0];
eq.n a8[0],a8[2];
ret;
}
aluasm_succ! {
put a8[0],1;
put a8[1],7;
put a8[2],2;
scr a8[1],a8[0];
eq.n a8[0],a8[2];
ret;
}
aluasm_succ! {
put a8[0],4;
put a8[1],81;
put a8[2],2;
scr a8[1],a8[0];
eq.n a8[0],a8[2];
ret;
}
}

#[test]
fn scr_a_st0() {
aluasm_fail! {
put a8[0],128;
put a8[1],1;
scr a8[1],a8[0];
ret;
}
aluasm_succ! {
put a8[0],1;
put a8[1],1;
scr a8[1],a8[0];
ret;
}
}

#[test]
fn scr_r() {
aluasm_succ! {
put r8192[0],10;
put a16[1],1;
put r8192[2],5;
scr a16[1],r8192[0];
eq.n r8192[0],r8192[2];
ret;
}
aluasm_succ! {
put r8192[0],5;
put a16[1],8192;
put r8192[2],5;
scr a8[1],r8192[0];
eq.n r8192[0],r8192[2];
ret;
}
aluasm_succ! {
put r8192[0],1;
put a16[1],8191;
put r8192[2],2;
scr a16[1],r8192[0];
eq.n r8192[0],r8192[2];
ret;
}
aluasm_succ! {
put r1024[0],4;
put a16[1],2049;
put r1024[2],2;
scr a16[1],r1024[0];
eq.n r1024[0],r1024[2];
ret;
}
}

#[test]
fn scr_r_st0() {
aluasm_fail! {
put r8192[0],4;
put a16[1],1;
scr a16[1],r8192[0];
ret;
}
aluasm_succ! {
put r8192[0],1;
put a16[1],1;
scr a16[1],r8192[0];
ret;
}
}

0 comments on commit 51fcc8a

Please sign in to comment.