Annotation of qemu/tests/xtensa/test_shift.S, revision 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.