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