root / tests / tcg / xtensa / test_quo.S @ c09015dd
History | View | Annotate | Download (2.8 kB)
1 |
.include "macros.inc" |
---|---|
2 |
|
3 |
test_suite quo |
4 |
|
5 |
test 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 |
16 |
test_end |
17 |
|
18 |
test 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 |
29 |
test_end |
30 |
|
31 |
test 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 |
42 |
test_end |
43 |
|
44 |
test 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 |
55 |
test_end |
56 |
|
57 |
test quou_exc |
58 |
set_vector kernel, 2f |
59 |
movi a2, 0xf7315a5a |
60 |
movi a4, 0x00000000 |
61 |
1: |
62 |
quou 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 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 |
83 |
test_end |
84 |
|
85 |
test 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 |
96 |
test_end |
97 |
|
98 |
test 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 |
109 |
test_end |
110 |
|
111 |
test 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 |
122 |
test_end |
123 |
|
124 |
test quos_over |
125 |
movi a2, 0x80000000 |
126 |
movi a4, 0xffffffff |
127 |
movi a6, 0x80000000 |
128 |
quos a5, a2, a4 |
129 |
assert eq, a5, a6 |
130 |
test_end |
131 |
|
132 |
test quos_exc |
133 |
set_vector kernel, 2f |
134 |
movi a2, 0xf7315a5a |
135 |
movi a4, 0x00000000 |
136 |
1: |
137 |
quos 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 |