From 3e110a82f4c7f4af90d491589c498f56d0d8f6ab Mon Sep 17 00:00:00 2001 From: vhaudiquet Date: Fri, 3 Nov 2023 17:19:00 +0100 Subject: [PATCH] Added MULH test --- tests/mulh.s | 40 ++++++++++++++++++++++++++++++++++++++++ tests/test.sh | 1 + 2 files changed, 41 insertions(+) create mode 100644 tests/mulh.s diff --git a/tests/mulh.s b/tests/mulh.s new file mode 100644 index 0000000..189adf3 --- /dev/null +++ b/tests/mulh.s @@ -0,0 +1,40 @@ +.include "exit_return.s" + +.global _start +_start: + # Set base value of a0 to 'test failed' + addi a0, zero, 1 + + # Multiply 2 * 3 in t0, high bits + addi t0, zero, 3 + addi t1, zero, 2 + mulh t0, t0, t1 + addi t1, zero, 0 + beq t0, t1, mulh_low_ok + exret + +mulh_low_ok: + # Multiply 2<<29 * 8 in t0, high bits + # Result high should be 2 + addi t1, zero, 2 + slli t0, t1, 29 + addi t1, zero, 8 + mulh t0, t0, t1 + addi t1, zero, 2 + beq t0, t1, mulh_high_ok + exret + +mulh_high_ok: + # Multiply 2 << 29 * -8 in t0, high bits + # Result high should be 0xFFFF_FFFE ie -2 signed ? + addi t1, zero, 2 + slli t0, t1, 29 + addi t1, zero, -8 + mulh t0, t0, t1 + addi t1, zero, -2 + beq t0, t1, mulh_neg_ok + exret + +mulh_neg_ok: + addi a0, zero, 0 + exret diff --git a/tests/test.sh b/tests/test.sh index 9c999ac..de8f031 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -29,3 +29,4 @@ test "BLT : Branch Less Than " "../build/tests/blt " 0 test "JAL : Jump And Link " "../build/tests/jal " 0 test "SWLW : Store Word Load Word " "../build/tests/swlw " 0 test "JALR : Jump And Link Register " "../build/tests/jalr " 0 +test "MULH : MULtply High " "../build/tests/mulh " 0