1.include "macros.inc" 2 3test_suite quo 4 5test quou_pp 6 movi a2, 0x5a5a137f 7 mov a3, a2 8 movi a4, 0x137f5a5a 9 movi a6, 0x4 10 quou a5, a2, a4 11 assert eq, a5, a6 12 quou a2, a2, a4 13 assert eq, a2, a6 14 quou a4, a3, a4 15 assert eq, a4, a6 16test_end 17 18test quou_np 19 movi a2, 0xa5a5137f 20 mov a3, a2 21 movi a4, 0x137f5a5a 22 movi a6, 0x8 23 quou a5, a2, a4 24 assert eq, a5, a6 25 quou a2, a2, a4 26 assert eq, a2, a6 27 quou a4, a3, a4 28 assert eq, a4, a6 29test_end 30 31test quou_pn 32 movi a2, 0x5a5a137f 33 mov a3, a2 34 movi a4, 0xf7315a5a 35 movi a6, 0 36 quou a5, a2, a4 37 assert eq, a5, a6 38 quou a2, a2, a4 39 assert eq, a2, a6 40 quou a4, a3, a4 41 assert eq, a4, a6 42test_end 43 44test quou_nn 45 movi a2, 0xf7315a5a 46 mov a3, a2 47 movi a4, 0xa5a5137f 48 movi a6, 0x1 49 quou a5, a2, a4 50 assert eq, a5, a6 51 quou a2, a2, a4 52 assert eq, a2, a6 53 quou a4, a3, a4 54 assert eq, a4, a6 55test_end 56 57test quou_exc 58 set_vector kernel, 2f 59 movi a2, 0xf7315a5a 60 movi a4, 0x00000000 611: 62 quou 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 quos_pp 73 movi a2, 0x5a5a137f 74 mov a3, a2 75 movi a4, 0x137f5a5a 76 movi a6, 0x4 77 quos a5, a2, a4 78 assert eq, a5, a6 79 quos a2, a2, a4 80 assert eq, a2, a6 81 quos a4, a3, a4 82 assert eq, a4, a6 83test_end 84 85test quos_np 86 movi a2, 0xa5a5137f 87 mov a3, a2 88 movi a4, 0x137f5a5a 89 movi a6, 0xfffffffc 90 quos a5, a2, a4 91 assert eq, a5, a6 92 quos a2, a2, a4 93 assert eq, a2, a6 94 quos a4, a3, a4 95 assert eq, a4, a6 96test_end 97 98test quos_pn 99 movi a2, 0x5a5a137f 100 mov a3, a2 101 movi a4, 0xf7315a5a 102 movi a6, 0xfffffff6 103 quos a5, a2, a4 104 assert eq, a5, a6 105 quos a2, a2, a4 106 assert eq, a2, a6 107 quos a4, a3, a4 108 assert eq, a4, a6 109test_end 110 111test quos_nn 112 movi a2, 0xf7315a5a 113 mov a3, a2 114 movi a4, 0xa5a5137f 115 movi a6, 0 116 quos a5, a2, a4 117 assert eq, a5, a6 118 quos a2, a2, a4 119 assert eq, a2, a6 120 quos a4, a3, a4 121 assert eq, a4, a6 122test_end 123 124test quos_over 125 movi a2, 0x80000000 126 movi a4, 0xffffffff 127 movi a6, 0x80000000 128 quos a5, a2, a4 129 assert eq, a5, a6 130test_end 131 132test quos_exc 133 set_vector kernel, 2f 134 movi a2, 0xf7315a5a 135 movi a4, 0x00000000 1361: 137 quos 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