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