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>
---
tests/tcg/xtensa/test_b.S | 40 ++++++++++++++++++++++++++++++++--------
1 file changed, 32 insertions(+), 8 deletions(-)
diff --git a/tests/tcg/xtensa/test_b.S b/tests/tcg/xtensa/test_b.S
index 8e81f956df84..713a454c535b 100644
--- a/tests/tcg/xtensa/test_b.S
+++ b/tests/tcg/xtensa/test_b.S
@@ -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
--
2.11.0