diff options
Diffstat (limited to 'qemu/tests/tcg/xtensa/test_mac16.S')
-rw-r--r-- | qemu/tests/tcg/xtensa/test_mac16.S | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/qemu/tests/tcg/xtensa/test_mac16.S b/qemu/tests/tcg/xtensa/test_mac16.S deleted file mode 100644 index 512025d84..000000000 --- a/qemu/tests/tcg/xtensa/test_mac16.S +++ /dev/null @@ -1,243 +0,0 @@ -#include "macros.inc" - -test_suite mac16 - -#define ext16(v) (((v) & 0xffff) | (((v) & 0x8000) * 0x1ffffffe)) -#define mul16(a, b) ((ext16(a) * ext16(b))) - -.macro assert_acc_value v - rsr a4, ACCLO - movi a5, (\v) & 0xffffffff - assert eq, a4, a5 - rsr a4, ACCHI - movi a5, (\v) >> 32 - sext a5, a5, 7 - assert eq, a4, a5 -.endm - -.macro init_reg sr, reg, val - .if (\sr) - movi a4, \val - wsr a4, \reg - .else - movi \reg, \val - .endif -.endm - -.macro test_mulxx mulop, comb, s, t, a, b - init_reg \comb & 2, \s, \a - init_reg \comb & 1, \t, \b - - \mulop\().ll \s, \t - assert_acc_value mul16(\a, \b) - - \mulop\().lh \s, \t - assert_acc_value mul16(\a, (\b >> 16)) - - \mulop\().hl \s, \t - assert_acc_value mul16((\a >> 16), \b) - - \mulop\().hh \s, \t - assert_acc_value mul16((\a >> 16), (\b >> 16)) -.endm - -test mul_aa - test_mulxx mul.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f -test_end - -test mul_ad - test_mulxx mul.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f -test_end - -test mul_da - test_mulxx mul.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f -test_end - -test mul_dd - test_mulxx mul.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f -test_end - - -.macro init_acc iv - movi a4, (\iv) & 0xffffffff - wsr a4, ACCLO - movi a4, (\iv) >> 32 - wsr a4, ACCHI -.endm - -.macro test_mulxxx mulop, comb, s, t, a, b, iv, op - init_reg \comb & 2, \s, \a - init_reg \comb & 1, \t, \b - - init_acc \iv - \mulop\().ll \s, \t - assert_acc_value (\iv \op mul16(\a, \b)) - - init_acc \iv - \mulop\().lh \s, \t - assert_acc_value (\iv \op mul16(\a, (\b >> 16))) - - init_acc \iv - \mulop\().hl \s, \t - assert_acc_value (\iv \op mul16((\a >> 16), \b)) - - init_acc \iv - \mulop\().hh \s, \t - assert_acc_value (\iv \op mul16((\a >> 16), (\b >> 16))) -.endm - - -test mula_aa - test_mulxxx mula.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, + -test_end - -test mula_ad - test_mulxxx mula.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, + -test_end - -test mula_da - test_mulxxx mula.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + -test_end - -test mula_dd - test_mulxxx mula.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + -test_end - - -test muls_aa - test_mulxxx muls.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, - -test_end - -test muls_ad - test_mulxxx muls.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, - -test_end - -test muls_da - test_mulxxx muls.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, - -test_end - -test muls_dd - test_mulxxx muls.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, - -test_end - -test ldinc - movi a2, 1f - 4 - ldinc m0, a2 - movi a3, 1f - assert eq, a2, a3 - rsr a3, m0 - movi a4, 0x55aa137f - assert eq, a3, a4 - ldinc m1, a2 - movi a3, 1f + 4 - assert eq, a2, a3 - rsr a3, m1 - movi a4, 0x12345678 - assert eq, a3, a4 - -.data -1: .word 0x55aa137f, 0x12345678, 0x137fa5a5 -.text -test_end - -test lddec - movi a2, 1f - lddec m2, a2 - movi a3, 1f - 4 - assert eq, a2, a3 - rsr a3, m2 - movi a4, 0x12345678 - assert eq, a3, a4 - lddec m3, a2 - movi a3, 1f - 8 - assert eq, a2, a3 - rsr a3, m3 - movi a4, 0x55aa137f - assert eq, a3, a4 -.data - .word 0x55aa137f, 0x12345678 -1: -.text -test_end - - -.macro test_mulxxx_ld mulop, ldop, comb, w, x, s, t, a, b, iv, op - init_reg \comb & 2, \s, \a - init_reg \comb & 1, \t, \b - - init_acc \iv - \mulop\().ll.\ldop \w, \x, \s, \t - assert_acc_value (\iv \op mul16(\a, \b)) - - init_acc \iv - \mulop\().lh.\ldop \w, \x, \s, \t - assert_acc_value (\iv \op mul16(\a, (\b >> 16))) - - init_acc \iv - \mulop\().hl.\ldop \w, \x, \s, \t - assert_acc_value (\iv \op mul16((\a >> 16), \b)) - - init_acc \iv - \mulop\().hh.\ldop \w, \x, \s, \t - assert_acc_value (\iv \op mul16((\a >> 16), (\b >> 16))) -.endm - -test mula_da_ldinc - movi a2, 1f - 4 - test_mulxxx_ld mula.da, ldinc, 2, m1, a2, m1, a3, \ - 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + - movi a3, 1f + 12 - assert eq, a2, a3 - rsr a2, m1 - movi a3, 0x12345678 - assert eq, a2, a3 -.data -1: .word 0xf7315a5a, 0xf7315a5a, 0xf7315a5a, 0x12345678 -.text -test_end - -test mula_dd_ldinc - movi a2, 1f - 4 - test_mulxxx_ld mula.dd, ldinc, 3, m2, a2, m1, m2, \ - 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + - movi a3, 1f + 12 - assert eq, a2, a3 - rsr a2, m2 - movi a3, 0x12345678 - assert eq, a2, a3 -.data -1: .word 0xa5a5137f, 0xa5a5137f, 0xa5a5137f, 0x12345678 -.text -test_end - -test mula_da_lddec - movi a2, 1f - test_mulxxx_ld mula.da, lddec, 2, m1, a2, m1, a3, \ - 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + - movi a3, 1f - 16 - assert eq, a2, a3 - rsr a2, m1 - movi a3, 0x12345678 - assert eq, a2, a3 -.data - .word 0x12345678, 0xf7315a5a, 0xf7315a5a, 0xf7315a5a -1: -.text -test_end - -test mula_dd_lddec - movi a2, 1f - test_mulxxx_ld mula.dd, lddec, 3, m2, a2, m1, m2, \ - 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, + - movi a3, 1f - 16 - assert eq, a2, a3 - rsr a2, m2 - movi a3, 0x12345678 - assert eq, a2, a3 -.data - .word 0x12345678, 0xa5a5137f, 0xa5a5137f, 0xa5a5137f -1: -.text -test_end - -test_suite_end |