Annotation of qemu/tests/xtensa/test_shift.S, revision 1.1.1.1

1.1       root        1: .include "macros.inc"
                      2: 
                      3: test_suite shift
                      4: 
                      5: .macro test_shift prefix, dst, src, v, imm
                      6:     \prefix\()_set \dst, \src, \v, \imm
                      7:     \prefix\()_ver \dst, \v, \imm
                      8: .endm
                      9: 
                     10: .macro test_shift_sd prefix, v, imm
                     11:     test_shift \prefix, a3, a2, \v, \imm
                     12:     test_shift \prefix, a2, a2, \v, \imm
                     13: .endm
                     14: 
                     15: .macro tests_imm_shift prefix, v
                     16:     test_shift_sd \prefix, \v, 1
                     17:     test_shift_sd \prefix, \v, 2
                     18:     test_shift_sd \prefix, \v, 7
                     19:     test_shift_sd \prefix, \v, 8
                     20:     test_shift_sd \prefix, \v, 15
                     21:     test_shift_sd \prefix, \v, 16
                     22:     test_shift_sd \prefix, \v, 31
                     23: .endm
                     24: 
                     25: .macro tests_shift prefix, v
                     26:     test_shift_sd \prefix, \v, 0
                     27:     tests_imm_shift \prefix, \v
                     28:     test_shift_sd \prefix, \v, 32
                     29: .endm
                     30: 
                     31: 
                     32: .macro slli_set dst, src, v, imm
                     33:     movi    \src, \v
                     34:     slli    \dst, \src, \imm
                     35: .endm
                     36: 
                     37: .macro slli_ver dst, v, imm
                     38:     mov     a2, \dst
                     39:     movi    a3, ((\v) << (\imm)) & 0xffffffff
                     40:     assert  eq, a2, a3
                     41: .endm
                     42: 
                     43: test slli
                     44:     tests_imm_shift slli, 0xa3c51249
                     45: test_end
                     46: 
                     47: 
                     48: .macro srai_set dst, src, v, imm
                     49:     movi    \src, \v
                     50:     srai    \dst, \src, \imm
                     51: .endm
                     52: 
                     53: .macro srai_ver dst, v, imm
                     54:     mov     a2, \dst
                     55:     .if (\imm)
                     56:     movi    a3, (((\v) >> (\imm)) & 0xffffffff) | \
                     57:                 ~((((\v) & 0x80000000) >> ((\imm) - 1)) - 1)
                     58:     .else
                     59:     movi    a3, \v
                     60:     .endif
                     61:     assert  eq, a2, a3
                     62: .endm
                     63: 
                     64: test srai
                     65:     tests_imm_shift srai, 0x49a3c512
                     66:     tests_imm_shift srai, 0xa3c51249
                     67: test_end
                     68: 
                     69: 
                     70: .macro srli_set dst, src, v, imm
                     71:     movi    \src, \v
                     72:     srli    \dst, \src, \imm
                     73: .endm
                     74: 
                     75: .macro srli_ver dst, v, imm
                     76:     mov     a2, \dst
                     77:     movi    a3, (((\v) >> (\imm)) & 0xffffffff)
                     78:     assert  eq, a2, a3
                     79: .endm
                     80: 
                     81: test srli
                     82:     tests_imm_shift srli, 0x49a3c512
                     83:     tests_imm_shift srli, 0xa3c51249
                     84: test_end
                     85: 
                     86: 
                     87: .macro sll_set dst, src, v, imm
                     88:     movi    a2, \imm
                     89:     ssl     a2
                     90:     movi    \src, \v
                     91:     sll     \dst, \src
                     92: .endm
                     93: 
                     94: .macro sll_sar_set dst, src, v, imm
                     95:     movi    a2, 32 - \imm
                     96:     wsr     a2, sar
                     97:     movi    \src, \v
                     98:     sll     \dst, \src
                     99: .endm
                    100: 
                    101: .macro sll_ver dst, v, imm
                    102:     slli_ver \dst, \v, (\imm) & 0x1f
                    103: .endm
                    104: 
                    105: .macro sll_sar_ver dst, v, imm
                    106:     slli_ver \dst, \v, \imm
                    107: .endm
                    108: 
                    109: test sll
                    110:     tests_shift sll, 0xa3c51249
                    111:     tests_shift sll_sar, 0xa3c51249
                    112: test_end
                    113: 
                    114: 
                    115: .macro srl_set dst, src, v, imm
                    116:     movi    a2, \imm
                    117:     ssr     a2
                    118:     movi    \src, \v
                    119:     srl     \dst, \src
                    120: .endm
                    121: 
                    122: .macro srl_sar_set dst, src, v, imm
                    123:     movi    a2, \imm
                    124:     wsr     a2, sar
                    125:     movi    \src, \v
                    126:     srl     \dst, \src
                    127: .endm
                    128: 
                    129: .macro srl_ver dst, v, imm
                    130:     srli_ver \dst, \v, (\imm) & 0x1f
                    131: .endm
                    132: 
                    133: .macro srl_sar_ver dst, v, imm
                    134:     srli_ver \dst, \v, \imm
                    135: .endm
                    136: 
                    137: test srl
                    138:     tests_shift srl, 0xa3c51249
                    139:     tests_shift srl_sar, 0xa3c51249
                    140:     tests_shift srl, 0x49a3c512
                    141:     tests_shift srl_sar, 0x49a3c512
                    142: test_end
                    143: 
                    144: 
                    145: .macro sra_set dst, src, v, imm
                    146:     movi    a2, \imm
                    147:     ssr     a2
                    148:     movi    \src, \v
                    149:     sra     \dst, \src
                    150: .endm
                    151: 
                    152: .macro sra_sar_set dst, src, v, imm
                    153:     movi    a2, \imm
                    154:     wsr     a2, sar
                    155:     movi    \src, \v
                    156:     sra     \dst, \src
                    157: .endm
                    158: 
                    159: .macro sra_ver dst, v, imm
                    160:     srai_ver \dst, \v, (\imm) & 0x1f
                    161: .endm
                    162: 
                    163: .macro sra_sar_ver dst, v, imm
                    164:     srai_ver \dst, \v, \imm
                    165: .endm
                    166: 
                    167: test sra
                    168:     tests_shift sra, 0xa3c51249
                    169:     tests_shift sra_sar, 0xa3c51249
                    170:     tests_shift sra, 0x49a3c512
                    171:     tests_shift sra_sar, 0x49a3c512
                    172: test_end
                    173: 
                    174: 
                    175: .macro src_set dst, src, v, imm
                    176:     movi    a2, \imm
                    177:     ssr     a2
                    178:     movi    \src, (\v) & 0xffffffff
                    179:     movi    a4, (\v) >> 32
                    180:     src     \dst, a4, \src
                    181: .endm
                    182: 
                    183: .macro src_sar_set dst, src, v, imm
                    184:     movi    a2, \imm
                    185:     wsr     a2, sar
                    186:     movi    \src, (\v) & 0xffffffff
                    187:     movi    a4, (\v) >> 32
                    188:     src     \dst, a4, \src
                    189: .endm
                    190: 
                    191: .macro src_ver dst, v, imm
                    192:     src_sar_ver \dst, \v, (\imm) & 0x1f
                    193: .endm
                    194: 
                    195: .macro src_sar_ver dst, v, imm
                    196:     mov     a2, \dst
                    197:     movi    a3, ((\v) >> (\imm)) & 0xffffffff
                    198:     assert  eq, a2, a3
                    199: .endm
                    200: 
                    201: test src
                    202:     tests_shift src, 0xa3c51249215c3a94
                    203:     tests_shift src_sar, 0xa3c51249215c3a94
                    204: test_end
                    205: 
                    206: test_suite_end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.