Author: petarj
Date: Thu Sep 4 01:07:08 2014
New Revision: 14449
Log:
mips64: add tests for Cavium BBIT0 and BBIT1
Follow up to VEX r2942 in which support for Cavium BBIT0/1 instructions
has been added.
Added:
trunk/none/tests/mips64/cvm_bbit.c
trunk/none/tests/mips64/cvm_bbit.stderr.exp
trunk/none/tests/mips64/cvm_bbit.stdout.exp
trunk/none/tests/mips64/cvm_bbit.stdout.exp-non-octeon
trunk/none/tests/mips64/cvm_bbit.vgtest
Modified:
trunk/none/tests/mips64/ (props changed)
trunk/none/tests/mips64/Makefile.am
Modified: trunk/none/tests/mips64/Makefile.am
==============================================================================
--- trunk/none/tests/mips64/Makefile.am (original)
+++ trunk/none/tests/mips64/Makefile.am Thu Sep 4 01:07:08 2014
@@ -10,6 +10,8 @@
branch_and_jump_instructions.stdout.exp \
branch_and_jump_instructions.stderr.exp branch_and_jump_instructions.vgtest \
branches.stdout.exp branches.stderr.exp branches.vgtest \
+ cvm_bbit.stdout.exp cvm_bbit.stdout.exp-non-octeon \
+ cvm_bbit.stderr.exp cvm_bbit.vgtest \
cvm_ins.stdout.exp cvm_ins.stdout.exp-non-octeon \
cvm_ins.stderr.exp cvm_ins.vgtest \
cvm_lx_ins.stdout.exp-LE cvm_lx_ins.stdout.exp-BE \
@@ -63,6 +65,7 @@
arithmetic_instruction \
branch_and_jump_instructions \
branches \
+ cvm_bbit \
cvm_ins \
cvm_lx_ins \
cvm_atomic \
@@ -93,6 +96,7 @@
allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
+cvm_bbit_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON@
cvm_ins_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON@
cvm_lx_ins_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
cvm_atomic_CFLAGS = $(AM_CFLAGS) -g -O0 @FLAG_OCTEON2@
Added: trunk/none/tests/mips64/cvm_bbit.c
==============================================================================
--- trunk/none/tests/mips64/cvm_bbit.c (added)
+++ trunk/none/tests/mips64/cvm_bbit.c Thu Sep 4 01:07:08 2014
@@ -0,0 +1,38 @@
+#include <stdio.h>
+
+int main()
+{
+#if (_MIPS_ARCH_OCTEON)
+ int t1 = 0;
+ int t2 = 0;
+ __asm__ volatile(
+ ".set noreorder" "\n\t"
+ "move $t0, $zero" "\n\t"
+ "label2:" "\n\t"
+ "addiu $t0, $t0, 1" "\n\t"
+ "bbit0 $t0, 0x3, label2" "\n\t"
+ "nop" "\n\t"
+ "move %0, $t0" "\n\t"
+ ".set reorder" "\n\t"
+ : "=r" (t1)
+ :
+ : "t0");
+ __asm__ volatile(
+ ".set noreorder" "\n\t"
+ "li $t0, 0xff" "\n\t"
+ "label1:" "\n\t"
+ "addiu $t0, $t0, -1" "\n\t"
+ "bbit1 $t0, 0x3, label1" "\n\t"
+ "nop" "\n\t"
+ "move %0, $t0" "\n\t"
+ ".set reorder" "\n\t"
+ : "=r" (t2)
+ :
+ : "t0");
+
+ printf("TEST bbit0: %s\n", t1 == 0x08 ? "PASS" : "FAIL");
+ printf("TEST bbit1: %s\n", t2 == 0xF7 ? "PASS" : "FAIL");
+
+#endif
+ return 0;
+}
Added: trunk/none/tests/mips64/cvm_bbit.stderr.exp
==============================================================================
(empty)
Added: trunk/none/tests/mips64/cvm_bbit.stdout.exp
==============================================================================
--- trunk/none/tests/mips64/cvm_bbit.stdout.exp (added)
+++ trunk/none/tests/mips64/cvm_bbit.stdout.exp Thu Sep 4 01:07:08 2014
@@ -0,0 +1,2 @@
+TEST bbit0: PASS
+TEST bbit1: PASS
Added: trunk/none/tests/mips64/cvm_bbit.stdout.exp-non-octeon
==============================================================================
(empty)
Added: trunk/none/tests/mips64/cvm_bbit.vgtest
==============================================================================
--- trunk/none/tests/mips64/cvm_bbit.vgtest (added)
+++ trunk/none/tests/mips64/cvm_bbit.vgtest Thu Sep 4 01:07:08 2014
@@ -0,0 +1,3 @@
+prog: cvm_bbit
+prereq: ../../../tests/mips_features cavium-octeon
+vgopts: -q
|