|
|
1.1 root 1: .include "macros.inc"
2:
3: test_suite sar
4:
5: .macro test_sar prefix, imm
6: \prefix\()_set \imm
7: \prefix\()_ver \imm
8: .endm
9:
10: .macro tests_sar prefix
11: test_sar \prefix, 0
12: test_sar \prefix, 1
13: test_sar \prefix, 2
14: test_sar \prefix, 3
15: test_sar \prefix, 0x1f
16: test_sar \prefix, 0x20
17: test_sar \prefix, 0x3f
18: test_sar \prefix, 0x40
19: test_sar \prefix, 0xfffffffe
20: .endm
21:
22: .macro sar_set imm
23: movi a2, \imm
24: wsr a2, sar
25: .endm
26:
27: .macro sar_ver imm
28: rsr a3, sar
29: movi a2, \imm & 0x3f
30: assert eq, a2, a3
31: .endm
32:
33: test sar
34: tests_sar sar
35: test_end
36:
37: .macro ssr_set imm
38: movi a2, \imm
39: ssr a2
40: .endm
41:
42: .macro ssr_ver imm
43: rsr a3, sar
44: movi a2, \imm & 0x1f
45: assert eq, a2, a3
46: .endm
47:
48: test ssr
49: tests_sar ssr
50: test_end
51:
52: .macro ssl_set imm
53: movi a2, \imm
54: ssl a2
55: .endm
56:
57: .macro ssl_ver imm
58: rsr a3, sar
59: movi a2, 32 - (\imm & 0x1f)
60: assert eq, a2, a3
61: .endm
62:
63: test ssl
64: tests_sar ssl
65: test_end
66:
67: .macro ssa8l_set imm
68: movi a2, \imm
69: ssa8l a2
70: .endm
71:
72: .macro ssa8l_ver imm
73: rsr a3, sar
74: movi a2, (\imm & 0x3) << 3
75: assert eq, a2, a3
76: .endm
77:
78: test ssa8l
79: tests_sar ssa8l
80: test_end
81:
82: .macro ssa8b_set imm
83: movi a2, \imm
84: ssa8b a2
85: .endm
86:
87: .macro ssa8b_ver imm
88: rsr a3, sar
89: movi a2, 32 - ((\imm & 0x3) << 3)
90: assert eq, a2, a3
91: .endm
92:
93: test ssa8b
94: tests_sar ssa8b
95: test_end
96:
97: .macro ssai_set imm
98: ssai \imm & 0x1f
99: .endm
100:
101: .macro ssai_ver imm
102: rsr a3, sar
103: movi a2, \imm & 0x1f
104: assert eq, a2, a3
105: .endm
106:
107: test ssai
108: tests_sar ssai
109: test_end
110:
111: test_suite_end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.