master
s 151 lines 2.8 KB
Raw
1 #include "macros.inc"
2
3 test_suite quo
4
5 #if XCHAL_HAVE_DIV32
6
7 test 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
18 test_end
19
20 test 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
31 test_end
32
33 test 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
44 test_end
45
46 test 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
57 test_end
58
59 test quou_exc
60 set_vector kernel, 2f
61 movi a2, 0xf7315a5a
62 movi a4, 0x00000000
63 1:
64 quou a5, a2, a4
65 test_fail
66 2:
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
72 test_end
73
74 test 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
85 test_end
86
87 test 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
98 test_end
99
100 test 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
111 test_end
112
113 test 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
124 test_end
125
126 test quos_over
127 movi a2, 0x80000000
128 movi a4, 0xffffffff
129 movi a6, 0x80000000
130 quos a5, a2, a4
131 assert eq, a5, a6
132 test_end
133
134 test quos_exc
135 set_vector kernel, 2f
136 movi a2, 0xf7315a5a
137 movi a4, 0x00000000
138 1:
139 quos a5, a2, a4
140 test_fail
141 2:
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
147 test_end
148
149 #endif
150
151 test_suite_end