root / tests / xtensa / test_rem.S @ 7d890b40
History | View | Annotate | Download (2.8 kB)
1 |
.include "macros.inc" |
---|---|
2 |
|
3 |
test_suite rem |
4 |
|
5 |
test 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 |
16 |
test_end |
17 |
|
18 |
test 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 |
29 |
test_end |
30 |
|
31 |
test 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 |
42 |
test_end |
43 |
|
44 |
test 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 |
55 |
test_end |
56 |
|
57 |
test remu_exc |
58 |
set_vector kernel, 2f |
59 |
movi a2, 0xf7315a5a |
60 |
movi a4, 0x00000000 |
61 |
1: |
62 |
remu a5, a2, a4 |
63 |
test_fail |
64 |
2: |
65 |
rsr a2, exccause |
66 |
assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ |
67 |
rsr a2, epc1 |
68 |
movi a3, 1b |
69 |
assert eq, a2, a3 |
70 |
test_end |
71 |
|
72 |
test 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 |
83 |
test_end |
84 |
|
85 |
test 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 |
96 |
test_end |
97 |
|
98 |
test 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 |
109 |
test_end |
110 |
|
111 |
test 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 |
122 |
test_end |
123 |
|
124 |
test rems_over |
125 |
movi a2, 0x80000000 |
126 |
movi a4, 0xffffffff |
127 |
movi a6, 0 |
128 |
rems a5, a2, a4 |
129 |
assert eq, a5, a6 |
130 |
test_end |
131 |
|
132 |
test rems_exc |
133 |
set_vector kernel, 2f |
134 |
movi a2, 0xf7315a5a |
135 |
movi a4, 0x00000000 |
136 |
1: |
137 |
rems a5, a2, a4 |
138 |
test_fail |
139 |
2: |
140 |
rsr a2, exccause |
141 |
assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */ |
142 |
rsr a2, epc1 |
143 |
movi a3, 1b |
144 |
assert eq, a2, a3 |
145 |
test_end |
146 |
|
147 |
test_suite_end |