@@ -9,6 +9,7 @@ TESTS += test_clz.tst
TESTS += test_dvstep.tst
TESTS += test_fadd.tst
TESTS += test_fmul.tst
+TESTS += test_ftoi.tst
QEMU_OPTS += -M tricore_testboard -nographic -kernel
@@ -8,6 +8,7 @@ TESTS += test_bmerge.tst
TESTS += test_clz.tst
TESTS += test_dvstep.tst
TESTS += test_fadd.tst
+TESTS += test_fmul.tst
QEMU_OPTS += -M tricore_testboard -nographic -kernel
@@ -70,6 +70,13 @@ test_ ## num: \
insn DREG_CALC_RESULT, DREG_RS1; \
)
+#define TEST_D_D_PSW(insn, num, result, psw, rs1) \
+ TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw, \
+ LI(DREG_RS1, rs1); \
+ rstv; \
+ insn DREG_CORRECT_RESULT, DREG_RS1; \
+ )
+
#define TEST_D_DD_PSW(insn, num, result, psw, rs1, rs2) \
TEST_CASE_PSW(num, DREG_CALC_RESULT, result, psw, \
LI(DREG_RS1, rs1); \
new file mode 100644
@@ -0,0 +1,10 @@
+#include "macros.h"
+.text
+.global _start
+_start:
+ TEST_D_D_PSW(ftoi, 1, 0x0, 0x84000b80, 0x05f6e605)
+ TEST_D_D_PSW(ftoi, 2, 0x0, 0x04000b80, 0x00012200)
+ TEST_D_D_PSW(ftoi, 3, 0x0, 0xc4000b80, 0xffffffff)
+
+ TEST_PASSFAIL
+