.include "macros.inc" | |
test_suite sar | |
.macro test_sar prefix, imm | |
\prefix\()_set \imm | |
\prefix\()_ver \imm | |
.endm | |
.macro tests_sar prefix | |
test_sar \prefix, 0 | |
test_sar \prefix, 1 | |
test_sar \prefix, 2 | |
test_sar \prefix, 3 | |
test_sar \prefix, 0x1f | |
test_sar \prefix, 0x20 | |
test_sar \prefix, 0x3f | |
test_sar \prefix, 0x40 | |
test_sar \prefix, 0xfffffffe | |
.endm | |
.macro sar_set imm | |
movi a2, \imm | |
wsr a2, sar | |
.endm | |
.macro sar_ver imm | |
rsr a3, sar | |
movi a2, \imm & 0x3f | |
assert eq, a2, a3 | |
.endm | |
test sar | |
tests_sar sar | |
test_end | |
.macro ssr_set imm | |
movi a2, \imm | |
ssr a2 | |
.endm | |
.macro ssr_ver imm | |
rsr a3, sar | |
movi a2, \imm & 0x1f | |
assert eq, a2, a3 | |
.endm | |
test ssr | |
tests_sar ssr | |
test_end | |
.macro ssl_set imm | |
movi a2, \imm | |
ssl a2 | |
.endm | |
.macro ssl_ver imm | |
rsr a3, sar | |
movi a2, 32 - (\imm & 0x1f) | |
assert eq, a2, a3 | |
.endm | |
test ssl | |
tests_sar ssl | |
test_end | |
.macro ssa8l_set imm | |
movi a2, \imm | |
ssa8l a2 | |
.endm | |
.macro ssa8l_ver imm | |
rsr a3, sar | |
movi a2, (\imm & 0x3) << 3 | |
assert eq, a2, a3 | |
.endm | |
test ssa8l | |
tests_sar ssa8l | |
test_end | |
.macro ssa8b_set imm | |
movi a2, \imm | |
ssa8b a2 | |
.endm | |
.macro ssa8b_ver imm | |
rsr a3, sar | |
movi a2, 32 - ((\imm & 0x3) << 3) | |
assert eq, a2, a3 | |
.endm | |
test ssa8b | |
tests_sar ssa8b | |
test_end | |
.macro ssai_set imm | |
ssai \imm & 0x1f | |
.endm | |
.macro ssai_ver imm | |
rsr a3, sar | |
movi a2, \imm & 0x1f | |
assert eq, a2, a3 | |
.endm | |
test ssai | |
tests_sar ssai | |
test_end | |
test_suite_end |