|
|
1.1 root 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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.