tests/tcg/xtensa: fix endianness issues in test_b

Use bbci.l/bbsi.l instead of bbci/bbsi, as they are assembly macros that
accept little-endian bit number and produce correct immediate for both
little and big endian configurations. Choose value loaded into register
for bbc/bbs opcodes based on configuration endianness.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
master
Max Filippov 2019-02-18 06:18:13 -08:00
parent fafd553343
commit 64eef9bf95
1 changed files with 32 additions and 8 deletions

View File

@ -84,12 +84,24 @@ test_end
test bbc
movi a2, 0xfffffffd
movi a3, 0xffffff01
#undef BIT
#if XCHAL_HAVE_BE
#define BIT 0xfffffffe
#else
#define BIT 0xffffff01
#endif
movi a3, BIT
bbc a2, a3, 1f
test_fail
1:
movi a2, 8
movi a3, 0xffffff03
#undef BIT
#if XCHAL_HAVE_BE
#define BIT 0xfffffffc
#else
#define BIT 0xffffff03
#endif
movi a3, BIT
bbc a2, a3, 1f
j 2f
1:
@ -99,11 +111,11 @@ test_end
test bbci
movi a2, 0xfffdffff
bbci a2, 17, 1f
bbci.l a2, 17, 1f
test_fail
1:
movi a2, 0x00020000
bbci a2, 17, 1f
bbci.l a2, 17, 1f
j 2f
1:
test_fail
@ -192,12 +204,24 @@ test_end
test bbs
movi a2, 8
movi a3, 0xffffff03
#undef BIT
#if XCHAL_HAVE_BE
#define BIT 0xfffffffc
#else
#define BIT 0xffffff03
#endif
movi a3, BIT
bbs a2, a3, 1f
test_fail
1:
movi a2, 0xfffffffd
movi a3, 0xffffff01
#undef BIT
#if XCHAL_HAVE_BE
#define BIT 0xfffffffe
#else
#define BIT 0xffffff01
#endif
movi a3, BIT
bbs a2, a3, 1f
j 2f
1:
@ -207,11 +231,11 @@ test_end
test bbsi
movi a2, 0x00020000
bbsi a2, 17, 1f
bbsi.l a2, 17, 1f
test_fail
1:
movi a2, 0xfffdffff
bbsi a2, 17, 1f
bbsi.l a2, 17, 1f
j 2f
1:
test_fail