| #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 |