1#include "macros.inc"
2
3test_suite quo
4
5
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
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
144 rsr a2, epc1
145 movi a3, 1b
146 assert eq, a2, a3
147test_end
148
149#endif
150
151test_suite_end
152