1#include "macros.inc" 2 3test_suite rem 4 5test remu_pp 6 movi a2, 0x5a5a137f 7 mov a3, a2 8 movi a4, 0x137f5a5a 9 movi a6, 0x0c5caa17 10 remu a5, a2, a4 11 assert eq, a5, a6 12 remu a2, a2, a4 13 assert eq, a2, a6 14 remu a4, a3, a4 15 assert eq, a4, a6 16test_end 17 18test remu_np 19 movi a2, 0xa5a5137f 20 mov a3, a2 21 movi a4, 0x137f5a5a 22 movi a6, 0x9aa40af 23 remu a5, a2, a4 24 assert eq, a5, a6 25 remu a2, a2, a4 26 assert eq, a2, a6 27 remu a4, a3, a4 28 assert eq, a4, a6 29test_end 30 31test remu_pn 32 movi a2, 0x5a5a137f 33 mov a3, a2 34 movi a4, 0xf7315a5a 35 movi a6, 0x5a5a137f 36 remu a5, a2, a4 37 assert eq, a5, a6 38 remu a2, a2, a4 39 assert eq, a2, a6 40 remu a4, a3, a4 41 assert eq, a4, a6 42test_end 43 44test remu_nn 45 movi a2, 0xf7315a5a 46 mov a3, a2 47 movi a4, 0xa5a5137f 48 movi a6, 0x518c46db 49 remu a5, a2, a4 50 assert eq, a5, a6 51 remu a2, a2, a4 52 assert eq, a2, a6 53 remu a4, a3, a4 54 assert eq, a4, a6 55test_end 56 57test remu_exc 58 set_vector kernel, 2f 59 movi a2, 0xf7315a5a 60 movi a4, 0x00000000 611: 62 remu a5, a2, a4 63 test_fail 642: 65 rsr a2, exccause 66 assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ 67 rsr a2, epc1 68 movi a3, 1b 69 assert eq, a2, a3 70test_end 71 72test rems_pp 73 movi a2, 0x5a5a137f 74 mov a3, a2 75 movi a4, 0x137f5a5a 76 movi a6, 0x0c5caa17 77 rems a5, a2, a4 78 assert eq, a5, a6 79 rems a2, a2, a4 80 assert eq, a2, a6 81 rems a4, a3, a4 82 assert eq, a4, a6 83test_end 84 85test rems_np 86 movi a2, 0xa5a5137f 87 mov a3, a2 88 movi a4, 0x137f5a5a 89 movi a6, 0xf3a27ce7 90 rems a5, a2, a4 91 assert eq, a5, a6 92 rems a2, a2, a4 93 assert eq, a2, a6 94 rems a4, a3, a4 95 assert eq, a4, a6 96test_end 97 98test rems_pn 99 movi a2, 0x5a5a137f 100 mov a3, a2 101 movi a4, 0xf7315a5a 102 movi a6, 0x02479b03 103 rems a5, a2, a4 104 assert eq, a5, a6 105 rems a2, a2, a4 106 assert eq, a2, a6 107 rems a4, a3, a4 108 assert eq, a4, a6 109test_end 110 111test rems_nn 112 movi a2, 0xf7315a5a 113 mov a3, a2 114 movi a4, 0xa5a5137f 115 movi a6, 0xf7315a5a 116 rems a5, a2, a4 117 assert eq, a5, a6 118 rems a2, a2, a4 119 assert eq, a2, a6 120 rems a4, a3, a4 121 assert eq, a4, a6 122test_end 123 124test rems_over 125 movi a2, 0x80000000 126 movi a4, 0xffffffff 127 movi a6, 0 128 rems a5, a2, a4 129 assert eq, a5, a6 130test_end 131 132test rems_exc 133 set_vector kernel, 2f 134 movi a2, 0xf7315a5a 135 movi a4, 0x00000000 1361: 137 rems a5, a2, a4 138 test_fail 1392: 140 rsr a2, exccause 141 assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ 142 rsr a2, epc1 143 movi a3, 1b 144 assert eq, a2, a3 145test_end 146 147test_suite_end 148