qcow2: Fix corruption on write_zeroes with MAY_UNMAP
[qemu/ar7.git] / tests / tcg / xtensa / test_quo.S
blob32886b913be6c7c26868ba787459bb714a749364
1 #include "macros.inc"
3 test_suite quo
5 #if XCHAL_HAVE_DIV32
7 test 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
18 test_end
20 test 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
31 test_end
33 test 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
44 test_end
46 test 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
57 test_end
59 test quou_exc
60     set_vector kernel, 2f
61     movi    a2, 0xf7315a5a
62     movi    a4, 0x00000000
64     quou    a5, a2, a4
65     test_fail
67     rsr     a2, exccause
68     assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
69     rsr     a2, epc1
70     movi    a3, 1b
71     assert  eq, a2, a3
72 test_end
74 test 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
85 test_end
87 test 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
98 test_end
100 test 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
111 test_end
113 test 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
124 test_end
126 test quos_over
127     movi    a2, 0x80000000
128     movi    a4, 0xffffffff
129     movi    a6, 0x80000000
130     quos    a5, a2, a4
131     assert  eq, a5, a6
132 test_end
134 test quos_exc
135     set_vector kernel, 2f
136     movi    a2, 0xf7315a5a
137     movi    a4, 0x00000000
139     quos    a5, a2, a4
140     test_fail
142     rsr     a2, exccause
143     assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
144     rsr     a2, epc1
145     movi    a3, 1b
146     assert  eq, a2, a3
147 test_end
149 #endif
151 test_suite_end