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