5 #if (_MIPS_ARCH_OCTEON)
9 ".set noreorder" "\n\t"
10 "move $t0, $zero" "\n\t"
12 "addiu $t0, $t0, 1" "\n\t"
13 "bbit0 $t0, 0x3, label2" "\n\t"
21 ".set noreorder" "\n\t"
24 "addiu $t0, $t0, -1" "\n\t"
25 "bbit1 $t0, 0x3, label1" "\n\t"
33 printf("TEST bbit0: %s\n", t1
== 0x08 ? "PASS" : "FAIL");
34 printf("TEST bbit1: %s\n", t2
== 0xF7 ? "PASS" : "FAIL");
36 long long int lt1
= 0;
37 long long int lt2
= 0;
38 long long int lt3
= 0xff00000000;
39 long long int lt4
= 0x100000000;
40 /* Take 0x100000000 and loop until 35th bit is set
41 by incrementing 0x100000000 at a time. */
43 ".set noreorder" "\n\t"
44 "move $t0, $zero" "\n\t"
47 "dadd $t0, $t0, $t1" "\n\t"
48 "bbit032 $t0, 0x3, label4" "\n\t"
55 /* Take 0xff00000000 and loop until 35th bit is cleared
56 by decrementing 0x100000000 at a time. */
58 ".set noreorder" "\n\t"
62 "dadd $t0, $t0, $t1" "\n\t"
63 "bbit132 $t0, 0x3, label3" "\n\t"
68 : "r" (lt3
), "r" (-lt4
)
71 printf("TEST bbit032: %s\n", lt1
== 0x0800000000 ? "PASS" : "FAIL");
72 printf("TEST bbit132: %s\n", lt2
== 0xF700000000 ? "PASS" : "FAIL");