#include "macros.inc" test_suite rem test remu_pp movi a2, 0x5a5a137f mov a3, a2 movi a4, 0x137f5a5a movi a6, 0x0c5caa17 remu a5, a2, a4 assert eq, a5, a6 remu a2, a2, a4 assert eq, a2, a6 remu a4, a3, a4 assert eq, a4, a6 test_end test remu_np movi a2, 0xa5a5137f mov a3, a2 movi a4, 0x137f5a5a movi a6, 0x9aa40af remu a5, a2, a4 assert eq, a5, a6 remu a2, a2, a4 assert eq, a2, a6 remu a4, a3, a4 assert eq, a4, a6 test_end test remu_pn movi a2, 0x5a5a137f mov a3, a2 movi a4, 0xf7315a5a movi a6, 0x5a5a137f remu a5, a2, a4 assert eq, a5, a6 remu a2, a2, a4 assert eq, a2, a6 remu a4, a3, a4 assert eq, a4, a6 test_end test remu_nn movi a2, 0xf7315a5a mov a3, a2 movi a4, 0xa5a5137f movi a6, 0x518c46db remu a5, a2, a4 assert eq, a5, a6 remu a2, a2, a4 assert eq, a2, a6 remu a4, a3, a4 assert eq, a4, a6 test_end test remu_exc set_vector kernel, 2f movi a2, 0xf7315a5a movi a4, 0x00000000 1: remu a5, a2, a4 test_fail 2: rsr a2, exccause assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ rsr a2, epc1 movi a3, 1b assert eq, a2, a3 test_end test rems_pp movi a2, 0x5a5a137f mov a3, a2 movi a4, 0x137f5a5a movi a6, 0x0c5caa17 rems a5, a2, a4 assert eq, a5, a6 rems a2, a2, a4 assert eq, a2, a6 rems a4, a3, a4 assert eq, a4, a6 test_end test rems_np movi a2, 0xa5a5137f mov a3, a2 movi a4, 0x137f5a5a movi a6, 0xf3a27ce7 rems a5, a2, a4 assert eq, a5, a6 rems a2, a2, a4 assert eq, a2, a6 rems a4, a3, a4 assert eq, a4, a6 test_end test rems_pn movi a2, 0x5a5a137f mov a3, a2 movi a4, 0xf7315a5a movi a6, 0x02479b03 rems a5, a2, a4 assert eq, a5, a6 rems a2, a2, a4 assert eq, a2, a6 rems a4, a3, a4 assert eq, a4, a6 test_end test rems_nn movi a2, 0xf7315a5a mov a3, a2 movi a4, 0xa5a5137f movi a6, 0xf7315a5a rems a5, a2, a4 assert eq, a5, a6 rems a2, a2, a4 assert eq, a2, a6 rems a4, a3, a4 assert eq, a4, a6 test_end test rems_over movi a2, 0x80000000 movi a4, 0xffffffff movi a6, 0 rems a5, a2, a4 assert eq, a5, a6 test_end test rems_exc set_vector kernel, 2f movi a2, 0xf7315a5a movi a4, 0x00000000 1: rems a5, a2, a4 test_fail 2: rsr a2, exccause assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ rsr a2, epc1 movi a3, 1b assert eq, a2, a3 test_end test_suite_end