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
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
142 rsr a2, epc1
143 movi a3, 1b
144 assert eq, a2, a3
145test_end
146
147test_suite_end
148