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