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