]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test cases for SMMLS, SMLALD, SMLSLD (ARM and Thumb). Pertains to
authorJulian Seward <jseward@acm.org>
Sun, 29 Sep 2013 19:49:43 +0000 (19:49 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 29 Sep 2013 19:49:43 +0000 (19:49 +0000)
323036, 323175, 323177.  (vasily.golubev@gmail.com)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13584

none/tests/arm/v6intARM.c
none/tests/arm/v6intARM.stdout.exp
none/tests/arm/v6intThumb.c
none/tests/arm/v6intThumb.stdout.exp

index 3a4e375655c83073738fa2c085fe70f374fe17eb..56675a965d4ef2c1f31df2499486da6928384bf6 100644 (file)
@@ -604,6 +604,50 @@ int main(int argc, char **argv)
        TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
        TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
 
+       printf("SMLALD\n");
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+        TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+
+       printf("SMLSLD\n");
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+
        printf("CLZ\n");
        TESTCARRY
        TESTINST2("clz  r0, r1", 0, r0, r1, c);
@@ -1210,5 +1254,240 @@ int main(int argc, char **argv)
         TESTINST4("smmlar  r0, r1, r2, r3", 
                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
 
+        printf("----------------- SMMLS{R} ----------------- \n");
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
        return 0;
 }
index b5d18e642b754697457e530a607a737404c48d88..995624174e456ae522fb002280bfef51dce64089 100644 (file)
@@ -590,6 +590,48 @@ smlals r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x000000
 smlals r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
 smlals r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000     
 smlals r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000     
+SMLALD
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000     
+smlald  r0, r1, r2, r3 :: rd 0xfff50907 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000     
+smlaldx r0, r1, r2, r3 :: rd 0xfff53f07 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, carryin 0, cpsr 0x00000000     
+SMLSLD
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000     
+smlsld  r0, r1, r2, r3 :: rd 0xfff508f9 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000     
+smlsldx r0, r1, r2, r3 :: rd 0xfff53f05 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, carryin 0, cpsr 0x00000000     
 CLZ
 clz  r0, r1 :: rd 0x00000020 rm 0x00000000, carryin 0, cpsr 0x00000000     
 clz  r0, r1 :: rd 0x0000001f rm 0x00000001, carryin 0, cpsr 0x00000000     
@@ -970,3 +1012,120 @@ smmlar  r0, r1, r2, r3 :: rd 0xefc98236 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d
 smmlar  r0, r1, r2, r3 :: rd 0xff441be8 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000     
 smmlar  r0, r1, r2, r3 :: rd 0xec17ff2c rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000     
 smmlar  r0, r1, r2, r3 :: rd 0xfd3dedd0 rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000     
+----------------- SMMLS{R} ----------------- 
+smmls  r0, r1, r2, r3 :: rd 0xc0007fff rm 0x80008000, rn 0x80008000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xffff8001 rm 0x7fff7fff, rn 0x00010001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x0000001e rm 0x80008000, rn 0xffffffff rs 0x0000001f, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xfffffef3 rm 0x00640064, rn 0x00030003 rs 0x00000020, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x000000fe rm 0xffffffff, rn 0xfffc0001 rs 0x000000ff, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x0000011a rm 0xfff70fff, rn 0x00030003 rs 0x00000100, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x518cb59f rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xa6a814d1 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x2e134aaf rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x7ee1ef7b rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xd5f175ca rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x147766ee rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xa5646d3d rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x6f706697 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xd035ebc7 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xf3934af1 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xa528b268 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x47a78335 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xb2fa4004 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xeb6d9047 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x3f59ab6e rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xc1719b21 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x77f1e0c5 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xba32aa50 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x8bcdd6c2 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x7dfac4bc rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x406a8f39 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x933a9f64 rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x87e66cb0 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xc4225cd1 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x3f4b33cf rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x9f37f1a2 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x7d044141 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xe8fe3a43 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x241d07d0 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x4b589386 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x2738b442 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x8fc29a3e rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xa990452b rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x5706df53 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x65232ab8 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xf65fefbc rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xb87d4782 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x29df6ca2 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x787201ea rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x6a2f40b0 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x87cd12f6 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x7c9e10e8 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xe5ae2bef rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x2cec46e5 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xf965a3bf rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x713901cb rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x8037ba39 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x4a5cf844 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0x4430437e rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xef3222ec rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000     
+smmls  r0, r1, r2, r3 :: rd 0xe6e1844d rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xc0008000 rm 0x80008000, rn 0x80008000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xffff8001 rm 0x7fff7fff, rn 0x00010001 rs 0x00000001, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x0000001f rm 0x80008000, rn 0xffffffff rs 0x0000001f, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xfffffef4 rm 0x00640064, rn 0x00030003 rs 0x00000020, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x000000ff rm 0xffffffff, rn 0xfffc0001 rs 0x000000ff, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x0000011b rm 0xfff70fff, rn 0x00030003 rs 0x00000100, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x518cb59f rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xa6a814d1 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x2e134aaf rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x7ee1ef7b rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xd5f175cb rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x147766ef rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xa5646d3e rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x6f706697 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xd035ebc8 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xf3934af1 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xa528b268 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x47a78335 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xb2fa4005 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xeb6d9048 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x3f59ab6f rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xc1719b21 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x77f1e0c5 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xba32aa50 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x8bcdd6c2 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x7dfac4bc rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x406a8f3a rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x933a9f65 rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x87e66cb1 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xc4225cd1 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x3f4b33d0 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x9f37f1a3 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x7d044141 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xe8fe3a43 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x241d07d0 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x4b589387 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x2738b442 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x8fc29a3e rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xa990452b rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x5706df53 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x65232ab9 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xf65fefbc rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xb87d4783 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x29df6ca3 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x787201eb rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x6a2f40b1 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x87cd12f7 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x7c9e10e9 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xe5ae2bf0 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x2cec46e5 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xf965a3bf rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x713901cb rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x8037ba39 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x4a5cf844 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0x4430437e rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xef3222ec rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000     
+smmlsr  r0, r1, r2, r3 :: rd 0xe6e1844e rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000     
index 8ec3fdbd84a6669d004e84d21e48fea3ed386162..1015e0d53f5316c45e9a2a22a06c0272f3934ef3 100644 (file)
@@ -714,6 +714,52 @@ static int old_main(void)
        TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
        TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
 #endif
+
+       printf("SMLALD\n");
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+        TESTINST4_2OUT("smlald  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+
+       printf("SMLSLD\n");
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+        TESTINST4_2OUT("smlsld  r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+       TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+        TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0, r1, r2, r3, 0);
+
        printf("CLZ\n");
        TESTCARRY
        TESTINST2("clz  r0, r1", 0, r0, r1, cv);
@@ -6185,5 +6231,240 @@ int main ( void )
         TESTINST4("smmlar  r0, r1, r2, r3", 
                   0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
 
+        printf("----------------- SMMLS{R} ----------------- \n");
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+        TESTINST4("smmls  r0, r1, r2, r3", 
+                  0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x80008000, 0x80008000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00000000, 0x00000000, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7fff7fff, 0x00010001, 0x00000001, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x80008000, 0xffffffff, 0x0000001f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x00640064, 0x00030003, 0x00000020, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xffffffff, 0xfffc0001, 0x000000ff, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xfff70fff, 0x00030003, 0x00000100, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x35232047, 0x146275d8, 0xaae3433f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x32fa0095, 0x36f26261, 0x89d2ef86, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x8ed8287c, 0x02c90120, 0xd4b64d54, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc53aaba9, 0x29300837, 0x0b02c58a, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x216158cb, 0x57a50a01, 0xb0d20777, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xf87b961e, 0x1d66879f, 0xf2b64835, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd65db979, 0xc61b323b, 0xae930a1a, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xeaa652c7, 0x137741f4, 0x3dba1164, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe1bb8606, 0x58293969, 0x81616d13, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x0849a0c2, 0x0872f25a, 0x40b094e2, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x17913309, 0xf1e03d7e, 0x91edc21d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5388b5cd, 0x86582032, 0x6034078d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x181c436b, 0x5de41558, 0xccfa1c7e, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x23ba1b46, 0x4437983c, 0x48d06549, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xa9085781, 0xc6b4ac58, 0xb2aead21, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xd7ce1909, 0x3e435701, 0x85fbf196, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xb4e16b6e, 0x6e13680a, 0x89436f88, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x44858efc, 0x9002bc30, 0x390d2c2f, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xbea121ab, 0x953ff6ec, 0x80657c40, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xec0c2f30, 0x5736ed46, 0x231348c0, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc1553709, 0x0112b30a, 0x69ec0212, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x74bd0223, 0x03fa9bb5, 0x899d9192, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x299da970, 0xe8108f1b, 0xf5818cfb, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xcd90d604, 0xaa5e9444, 0x8217b7df, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xe60743c3, 0x7acb4de3, 0x73c29060, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xde99ac2f, 0x0be36f70, 0xeda5110c, r0, r1, r2, r3, 0);
+        TESTINST4("smmlsr  r0, r1, r2, r3", 
+                  0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0);
+
    return 0;
 }
index 6f97a4c0453e15523dbb9d61c0b7a37ac1794d35..306176bc554effed2d2e08236abd2092a0b85009 100644 (file)
@@ -17342,6 +17342,48 @@ smull  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x000000
 smull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
 smull  r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ  
 smull  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+SMLALD
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlald  r0, r1, r2, r3 :: rd 0xfff50907 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlaldx r0, r1, r2, r3 :: rd 0xfff53f07 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+SMLSLD
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsld  r0, r1, r2, r3 :: rd 0xfff508f9 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000001, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0xffffffff, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ  
+smlsldx r0, r1, r2, r3 :: rd 0xfff53f05 rd2 0xff8fff3f, rm 0xfffff6ff rs 0xfff9ffff, c:v-in 0, cpsr 0xc0000000 NZ  
 CLZ
 clz  r0, r1 :: rd 0x00000020 rm 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
 clz  r0, r1 :: rd 0x0000001f rm 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
@@ -17640,3 +17682,120 @@ smmlar  r0, r1, r2, r3 :: rd 0xefc98236 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d
 smmlar  r0, r1, r2, r3 :: rd 0xff441be8 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, c:v-in 0, cpsr 0xc0000000 NZ  
 smmlar  r0, r1, r2, r3 :: rd 0xec17ff2c rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, c:v-in 0, cpsr 0xc0000000 NZ  
 smmlar  r0, r1, r2, r3 :: rd 0xfd3dedd0 rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, c:v-in 0, cpsr 0xc0000000 NZ  
+----------------- SMMLS{R} ----------------- 
+smmls  r0, r1, r2, r3 :: rd 0xc0007fff rm 0x80008000, rn 0x80008000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xffff8001 rm 0x7fff7fff, rn 0x00010001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x0000001e rm 0x80008000, rn 0xffffffff rs 0x0000001f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xfffffef3 rm 0x00640064, rn 0x00030003 rs 0x00000020, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x000000fe rm 0xffffffff, rn 0xfffc0001 rs 0x000000ff, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x0000011a rm 0xfff70fff, rn 0x00030003 rs 0x00000100, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x518cb59f rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xa6a814d1 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x2e134aaf rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x7ee1ef7b rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xd5f175ca rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x147766ee rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xa5646d3d rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x6f706697 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xd035ebc7 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xf3934af1 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xa528b268 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x47a78335 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xb2fa4004 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xeb6d9047 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x3f59ab6e rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xc1719b21 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x77f1e0c5 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xba32aa50 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x8bcdd6c2 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x7dfac4bc rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x406a8f39 rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x933a9f64 rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x87e66cb0 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xc4225cd1 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x3f4b33cf rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x9f37f1a2 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x7d044141 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xe8fe3a43 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x241d07d0 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x4b589386 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x2738b442 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x8fc29a3e rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xa990452b rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x5706df53 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x65232ab8 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xf65fefbc rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xb87d4782 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x29df6ca2 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x787201ea rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x6a2f40b0 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x87cd12f6 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x7c9e10e8 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xe5ae2bef rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x2cec46e5 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xf965a3bf rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x713901cb rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x8037ba39 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x4a5cf844 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0x4430437e rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xef3222ec rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, c:v-in 0, cpsr 0xc0000000 NZ  
+smmls  r0, r1, r2, r3 :: rd 0xe6e1844d rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xc0008000 rm 0x80008000, rn 0x80008000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x00000000 rm 0x7fff7fff, rn 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xffff8001 rm 0x7fff7fff, rn 0x00010001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x0000001f rm 0x80008000, rn 0xffffffff rs 0x0000001f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xfffffef4 rm 0x00640064, rn 0x00030003 rs 0x00000020, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x000000ff rm 0xffffffff, rn 0xfffc0001 rs 0x000000ff, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x0000011b rm 0xfff70fff, rn 0x00030003 rs 0x00000100, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x518cb59f rm 0xb8035b5b, rn 0xce0ce1ed rs 0x5f986e68, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xa6a814d1 rm 0x35232047, rn 0x146275d8 rs 0xaae3433f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x2e134aaf rm 0xe7aa57b4, rn 0x1584bd74 rs 0x2c07a5b4, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x7ee1ef7b rm 0x32fa0095, rn 0x36f26261 rs 0x89d2ef86, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xd5f175cb rm 0x8ed8287c, rn 0x02c90120 rs 0xd4b64d54, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x147766ef rm 0xc53aaba9, rn 0x29300837 rs 0x0b02c58a, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xa5646d3e rm 0x216158cb, rn 0x57a50a01 rs 0xb0d20777, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x6f706697 rm 0x3e2e1bd7, rn 0x3cd6cd94 rs 0x7e376198, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xd035ebc8 rm 0xd5fe2dc4, rn 0xdd914bf7 rs 0xd5dc5407, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xf3934af1 rm 0xf87b961e, rn 0x1d66879f rs 0xf2b64835, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xa528b268 rm 0xd65db979, rn 0xc61b323b rs 0xae930a1a, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x47a78335 rm 0x5ef1f1a8, rn 0xbf73f0a5 rs 0x2fb714c9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xb2fa4005 rm 0x1ffe53d9, rn 0x815bb75b rs 0xa3268abe, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xeb6d9048 rm 0xed2cbf78, rn 0xc6ffabb6 rs 0xef9e9fd9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x3f59ab6f rm 0xeaa652c7, rn 0x137741f4 rs 0x3dba1164, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xc1719b21 rm 0x3ada0280, rn 0x71fbde8b rs 0xdba5bd25, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x77f1e0c5 rm 0xda4ba05b, rn 0x90f9833d rs 0x884c0ad8, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xba32aa50 rm 0xc00b821a, rn 0x7fa1d5a6 rs 0x9a4ff1b8, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x8bcdd6c2 rm 0xe1bb8606, rn 0x58293969 rs 0x81616d13, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x7dfac4bc rm 0x51f31d95, rn 0xa3cfd624 rs 0x6077fb1f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x406a8f3a rm 0x0849a0c2, rn 0x0872f25a rs 0x40b094e2, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x933a9f65 rm 0x17913309, rn 0xf1e03d7e rs 0x91edc21d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x87e66cb1 rm 0x5388b5cd, rn 0x86582032 rs 0x6034078d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xc4225cd1 rm 0x181c436b, rn 0x5de41558 rs 0xccfa1c7e, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x3f4b33d0 rm 0x23ba1b46, rn 0x4437983c rs 0x48d06549, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x9f37f1a3 rm 0xa9085781, rn 0xc6b4ac58 rs 0xb2aead21, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x7d044141 rm 0xc2bdf597, rn 0xdde1e6a4 rs 0x852e3a72, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xe8fe3a43 rm 0x157b0dea, rn 0xf0d5ff94 rs 0xe7b87e39, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x241d07d0 rm 0x3edad6b6, rn 0x82aceb7a rs 0x0557c6fc, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x4b589387 rm 0x6cc9bfa8, rn 0x7f808c15 rs 0x81874a02, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x2738b442 rm 0x6b1422c7, rn 0x33921b00 rs 0x3ccad3f7, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x8fc29a3e rm 0xd7ce1909, rn 0x3e435701 rs 0x85fbf196, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xa990452b rm 0xb4e16b6e, rn 0x6e13680a rs 0x89436f88, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x5706df53 rm 0x44858efc, rn 0x9002bc30 rs 0x390d2c2f, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x65232ab9 rm 0xbea121ab, rn 0x953ff6ec rs 0x80657c40, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xf65fefbc rm 0x6ffed89f, rn 0x3e8c49b7 rs 0x11bd07d1, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xb87d4783 rm 0x7795635d, rn 0x5e6e32dd rs 0xe4999bf2, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x29df6ca3 rm 0xec0c2f30, rn 0x5736ed46 rs 0x231348c0, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x787201eb rm 0x4f9ddd1b, rn 0x95bca5d8 rs 0x5765b203, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x6a2f40b1 rm 0xc1553709, rn 0x0112b30a rs 0x69ec0212, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x87cd12f7 rm 0x74bd0223, rn 0x03fa9bb5 rs 0x899d9192, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x7c9e10e9 rm 0xf52e9fbf, rn 0xb4c510a7 rs 0x7fcbe5a9, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xe5ae2bf0 rm 0x64a365ef, rn 0x2dd01366 rs 0xf7b0b13e, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x2cec46e5 rm 0x5e4b1cbf, rn 0x44de5ca9 rs 0x464a21cc, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xf965a3bf rm 0x299da970, rn 0xe8108f1b rs 0xf5818cfb, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x713901cb rm 0xcd90d604, rn 0xaa5e9444 rs 0x8217b7df, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x8037ba39 rm 0xe60743c3, rn 0x7acb4de3 rs 0x73c29060, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x4a5cf844 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d3d, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0x4430437e rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xef3222ec rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, c:v-in 0, cpsr 0xc0000000 NZ  
+smmlsr  r0, r1, r2, r3 :: rd 0xe6e1844e rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, c:v-in 0, cpsr 0xc0000000 NZ