]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/valgrind/src/valgrind-3.6.0-svn/none/tests/arm/v6intThumb.c
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / none / tests / arm / v6intThumb.c
index a1961e8b0bec107ba4327223f2f3a9b4e2b9602d..99215f2e0efdddbf92063cc7cd9799507899ecfe 100644 (file)
@@ -1683,6 +1683,36 @@ int main ( void )
    TESTINST2("bic.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
    TESTCARRYEND
 
+   printf("(T3) ORN{S}.W Rd, Rn, #constT [allegedly]\n");
+   TESTCARRY
+   TESTINST2("orns.w r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #255       ", 0,          r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0         ", 1,          r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #1         ", 0,          r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0         ", -1,         r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #-1        ", 0,          r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0x80000000", 0,          r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0         ", 0x80000000, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
+   TESTINST2("orns.w r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0xffffffff", 0x31415927, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0xee00ee00", 0x31415927, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #255       ", 0,          r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0         ", 1,          r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #1         ", 0,          r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0         ", -1,         r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #-1        ", 0,          r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0x80000000", 0,          r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0         ", 0x80000000, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0x80000000", 0x80000000, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0x80000000", 0x7fffffff, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0xff000000", 0x80000000, r1, r2, cv);
+   TESTINST2("orn.w  r1, r2, #0x0dd00000", 0x7fffffff, r1, r2, cv);
+   TESTCARRYEND
+
    printf("ADD{S}.W Rd, Rn, Rm, {shift}\n");
    TESTCARRY
    TESTINST3("adds.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
@@ -4845,6 +4875,322 @@ int main ( void )
    TESTINST3("bic.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
    TESTCARRYEND
 
+   printf("ORN{S}.W Rd, Rn, Rm, {shift}\n");
+   TESTCARRY
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x31415927, 0x27181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x31415927, 0x97181728, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 1,          0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          1,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", -1,         0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          -1,         r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0,          0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0,          r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x7fffffff, 0x80000000, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x80000000, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orns.w r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsl #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, lsr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #0 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #1 ", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #15", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTINST3("orn.w  r1, r2, r3, asr #31", 0x7fffffff, 0x7fffffff, r1, r2, r3, cv);
+   TESTCARRYEND
+
    printf("(T?) LSL{S}.W Rd, Rn, Rm\n");
    TESTCARRY
    TESTINST3("lsls.w r1, r2, r3", 0x31415927, 0x00000000, r1, r2, r3, cv);
@@ -5396,6 +5742,113 @@ int main ( void )
    TESTINST1("mvn.w   r9, 0x00000043", r9, cv);
    TESTCARRYEND
 
+   printf("(T1) RBIT Rd, Rm\n");
+       TESTINST2("rbit r0, r1", 0x00000000, r0, r1, 0);
+       TESTINST2("rbit r0, r1", 0xFFFFFFFF, r0, r1, 0);
+       TESTINST2("rbit r0, r1", 0x80000000, r0, r1, 0);
+       TESTINST2("rbit r0, r1", 0x00000001, r0, r1, 0);
+       TESTINST2("rbit r0, r1", 0x31415927, r0, r1, 0);
+       TESTINST2("rbit r0, r1", 0x14141562, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xabe8391f, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x9028aa80, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xead1fc6d, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x35c98c55, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x534af1eb, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x45511b08, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x90077f71, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xde8ca84b, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xe37a0dda, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xe5b83d4b, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0xbb6d14ec, r0, r1, 0);
+   TESTINST2("rbit r0, r1", 0x68983cc9, r0, r1, 0);
+
+       printf("(T1) REV Rd, Rm ------------\n");
+       TESTINST2("rev r0, r1", 0x00000000, r0, r1, 0);
+       TESTINST2("rev r0, r1", 0xFFFFFFFF, r0, r1, 0);
+       TESTINST2("rev r0, r1", 0x80000000, r0, r1, 0);
+       TESTINST2("rev r0, r1", 0x00000001, r0, r1, 0);
+       TESTINST2("rev r0, r1", 0x31415927, r0, r1, 0);
+       TESTINST2("rev r0, r1", 0x14141562, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xabe8391f, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x9028aa80, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xead1fc6d, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x35c98c55, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x534af1eb, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x45511b08, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x90077f71, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xde8ca84b, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xe37a0dda, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xe5b83d4b, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0xbb6d14ec, r0, r1, 0);
+   TESTINST2("rev r0, r1", 0x68983cc9, r0, r1, 0);
+
+       printf("(T2) REV Rd, Rm ------------\n");
+       TESTINST2("rev r8, r9", 0x00000000, r8, r9, 0);
+       TESTINST2("rev r8, r9", 0xFFFFFFFF, r8, r9, 0);
+       TESTINST2("rev r8, r9", 0x80000000, r8, r9, 0);
+       TESTINST2("rev r8, r9", 0x00000001, r8, r9, 0);
+       TESTINST2("rev r8, r9", 0x31415927, r8, r9, 0);
+       TESTINST2("rev r8, r9", 0x14141562, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xabe8391f, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x9028aa80, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xead1fc6d, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x35c98c55, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x534af1eb, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x45511b08, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x90077f71, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xde8ca84b, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xe37a0dda, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xe5b83d4b, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0xbb6d14ec, r8, r9, 0);
+   TESTINST2("rev r8, r9", 0x68983cc9, r8, r9, 0);
+
+       printf("(T1) REV16 Rd, Rm ------------\n");
+       TESTINST2("rev16 r0, r1", 0x00000000, r0, r1, 0);
+       TESTINST2("rev16 r0, r1", 0xFFFFFFFF, r0, r1, 0);
+       TESTINST2("rev16 r0, r1", 0x80000000, r0, r1, 0);
+       TESTINST2("rev16 r0, r1", 0x00000001, r0, r1, 0);
+       TESTINST2("rev16 r0, r1", 0x31415927, r0, r1, 0);
+       TESTINST2("rev16 r0, r1", 0x14141562, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xabe8391f, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x9028aa80, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xead1fc6d, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x35c98c55, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x534af1eb, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x45511b08, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x90077f71, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xde8ca84b, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xe37a0dda, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xe5b83d4b, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0xbb6d14ec, r0, r1, 0);
+   TESTINST2("rev16 r0, r1", 0x68983cc9, r0, r1, 0);
+
+       printf("(T2) REV16 Rd, Rm ------------\n");
+       TESTINST2("rev16 r8, r9", 0x00000000, r8, r9, 0);
+       TESTINST2("rev16 r8, r9", 0xFFFFFFFF, r8, r9, 0);
+       TESTINST2("rev16 r8, r9", 0x80000000, r8, r9, 0);
+       TESTINST2("rev16 r8, r9", 0x00000001, r8, r9, 0);
+       TESTINST2("rev16 r8, r9", 0x31415927, r8, r9, 0);
+       TESTINST2("rev16 r8, r9", 0x14141562, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xabe8391f, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x9028aa80, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xead1fc6d, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x35c98c55, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x534af1eb, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x45511b08, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x90077f71, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xde8ca84b, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xe37a0dda, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xe5b83d4b, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0xbb6d14ec, r8, r9, 0);
+   TESTINST2("rev16 r8, r9", 0x68983cc9, r8, r9, 0);
+
+       printf("------------ NOP (begin) ------------\n");
+        printf("nop\n");
+        __asm__ __volatile__("nop" ::: "memory","cc");
+        printf("nop.w\n");
+        __asm__ __volatile__("nop.w" ::: "memory","cc");
+       printf("------------ NOP (end) ------------\n");
+
    // plus whatever stuff we can throw in from the old ARM test program
    old_main();