]> git.proxmox.com Git - qemu.git/blob - tests/xtensa/test_quo.S
vga: optimize ppm_save() divisions
[qemu.git] / tests / 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