Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / xtensa / test_quo.S
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