1#include "macros.inc" 2 3test_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 33test sar 34 tests_sar sar 35test_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 48test ssr 49 tests_sar ssr 50test_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 63test ssl 64 tests_sar ssl 65test_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 78test ssa8l 79 tests_sar ssa8l 80test_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 93test ssa8b 94 tests_sar ssa8b 95test_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 107test ssai 108 tests_sar ssai 109test_end 110 111test_suite_end 112