target-xtensa: add extui unit test
authorMax Filippov <jcmvbkbc@gmail.com>
Sun, 16 Dec 2012 20:32:27 +0000 (00:32 +0400)
committerMax Filippov <jcmvbkbc@gmail.com>
Mon, 29 Jul 2013 14:24:26 +0000 (18:24 +0400)
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
tests/tcg/xtensa/Makefile
tests/tcg/xtensa/test_extui.S [new file with mode: 0644]

index 002fd87..9e50d8d 100644 (file)
@@ -26,6 +26,7 @@ TESTCASES += test_bi.tst
 TESTCASES += test_break.tst
 TESTCASES += test_bz.tst
 TESTCASES += test_clamps.tst
+TESTCASES += test_extui.tst
 TESTCASES += test_fail.tst
 TESTCASES += test_interrupt.tst
 TESTCASES += test_loop.tst
diff --git a/tests/tcg/xtensa/test_extui.S b/tests/tcg/xtensa/test_extui.S
new file mode 100644 (file)
index 0000000..5d55451
--- /dev/null
@@ -0,0 +1,26 @@
+.include "macros.inc"
+
+test_suite extui
+
+.macro test_extui v, shiftimm, maskimm
+    .if     \shiftimm + \maskimm <= 32
+    movi    a2, \v
+    extui   a3, a2, \shiftimm, \maskimm
+    movi    a4, ((\v) >> (\shiftimm)) & ((1 << (\maskimm)) - 1)
+    assert  eq, a3, a4
+    .endif
+.endm
+
+test extui
+    .set    shiftimm, 0
+    .rept   32
+    .set    maskimm, 1
+    .rept   16
+    test_extui 0xc8df1370, shiftimm, maskimm
+    .set    maskimm, maskimm + 1
+    .endr
+    .set    shiftimm, shiftimm + 1
+    .endr
+test_end
+
+test_suite_end