From: Petar Jovanovic Date: Wed, 26 Nov 2014 23:50:31 +0000 (+0000) Subject: mips64: add test cases for Cavium BBIT032 and BBIT132 X-Git-Tag: svn/VALGRIND_3_11_0~794 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65c74e8e8a72538971df1e7baf7b0144ba7d7778;p=thirdparty%2Fvalgrind.git mips64: add test cases for Cavium BBIT032 and BBIT132 This is a follow up to VEX r3028. This change adds two test cases for Cavium instructions BBIT032 and BBIT132. Issue tracked in BZ #339288. Patch by Maran Pakkirisamy. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14792 --- diff --git a/none/tests/mips64/cvm_bbit.c b/none/tests/mips64/cvm_bbit.c index 3281886b7a..b1966b9111 100644 --- a/none/tests/mips64/cvm_bbit.c +++ b/none/tests/mips64/cvm_bbit.c @@ -33,6 +33,44 @@ int main() printf("TEST bbit0: %s\n", t1 == 0x08 ? "PASS" : "FAIL"); printf("TEST bbit1: %s\n", t2 == 0xF7 ? "PASS" : "FAIL"); + long int lt1 = 0; + long int lt2 = 0; + long int lt3 = 0xff00000000; + long int lt4 = 0x100000000; + /* Take 0x100000000 and loop until 35th bit is set + by incrementing 0x100000000 at a time. */ + __asm__ volatile( + ".set noreorder" "\n\t" + "move $t0, $zero" "\n\t" + "move $t1, %1" "\n\t" + "label4:" "\n\t" + "dadd $t0, $t0, $t1" "\n\t" + "bbit032 $t0, 0x3, label4" "\n\t" + "nop" "\n\t" + "move %0, $t0" "\n\t" + ".set reorder" "\n\t" + : "=r" (lt1) + : "r" (lt4) + : "t0", "t1"); + /* Take 0xff00000000 and loop until 35th bit is cleared + by decrementing 0x100000000 at a time. */ + __asm__ volatile( + ".set noreorder" "\n\t" + "move $t0, %1" "\n\t" + "move $t1, %2" "\n\t" + "label3:" "\n\t" + "dadd $t0, $t0, $t1" "\n\t" + "bbit132 $t0, 0x3, label3" "\n\t" + "nop" "\n\t" + "move %0, $t0" "\n\t" + ".set reorder" "\n\t" + : "=r" (lt2) + : "r" (lt3), "r" (-lt4) + : "t0", "t1"); + + printf("TEST bbit032: %s\n", lt1 == 0x0800000000 ? "PASS" : "FAIL"); + printf("TEST bbit132: %s\n", lt2 == 0xF700000000 ? "PASS" : "FAIL"); + #endif return 0; } diff --git a/none/tests/mips64/cvm_bbit.stdout.exp b/none/tests/mips64/cvm_bbit.stdout.exp index 71e197107a..d04102fbea 100644 --- a/none/tests/mips64/cvm_bbit.stdout.exp +++ b/none/tests/mips64/cvm_bbit.stdout.exp @@ -1,2 +1,4 @@ TEST bbit0: PASS TEST bbit1: PASS +TEST bbit032: PASS +TEST bbit132: PASS