From: Julian Seward Date: Wed, 11 Jul 2012 13:20:58 +0000 (+0000) Subject: RM: Implement QADD and QSUB (valgrind side fixes). Fixes #286917. X-Git-Tag: svn/VALGRIND_3_8_0~141 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e08776c78316dfdad9a303c750325d4ec5efd734;p=thirdparty%2Fvalgrind.git RM: Implement QADD and QSUB (valgrind side fixes). Fixes #286917. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12727 --- diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 7ac42233ea..af9442a00b 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -3333,6 +3333,8 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce, case Iop_DivU32: case Iop_DivU32E: case Iop_DivS32E: + case Iop_QAdd32S: /* could probably do better */ + case Iop_QSub32S: /* could probably do better */ return mkLazy2(mce, Ity_I32, vatom1, vatom2); case Iop_DivS64: diff --git a/none/tests/arm/v6media.c b/none/tests/arm/v6media.c index 2828a882d7..5b48a21939 100644 --- a/none/tests/arm/v6media.c +++ b/none/tests/arm/v6media.c @@ -4134,8 +4134,121 @@ TESTINST4("usada8 r0, r1, r2, r3", TESTINST4("usada8 r0, r1, r2, r3", 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0, r1, r2, r3, 0); + printf("---------------- QADD ---------------- \n"); + TESTINST3("qadd r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0); + TESTINST3("qadd r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0); + TESTINST3("qadd r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("qadd r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0); +TESTINST3("qadd r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0); - + printf("---------------- QSUB ---------------- \n"); + TESTINST3("qsub r0, r1, r2", 0x00000000, 0x7fffffff, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0x00000001, 0x7fffffff, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0x00000000, 0x00000000, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0xffffffff, 0xffffffff, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0x0009ffff, 0x00180003, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0x00180003, 0x0009ffff, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0x00030018, 0xffff0009, r0, r1, r2, 0); + TESTINST3("qsub r0, r1, r2", 0xffff0009, 0x00030018, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xd83b849b, 0xca5e5605, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x0cdafabe, 0x50865114, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x2738f0ff, 0x6a228b19, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xfaceab39, 0x2973c051, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xa3e6f759, 0x557c7ba2, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x72f33509, 0x9b41bfb1, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xa5ec1aa8, 0x2b62ba5a, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x6ebd04d9, 0x55ea3e4e, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x2eaea305, 0xe79fd570, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x22b65db1, 0xcdb7ed11, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x776c41c7, 0x2eb68500, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xe50dd77c, 0xd6f9a698, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x0be36f70, 0xeda5110c, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xebbff82b, 0xd759eb72, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x50c28082, 0xd9c4b1f4, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x17962e8f, 0xa29eb320, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xc57243b7, 0xcf1e4487, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x7eb226ac, 0xf20fb90f, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xbce0f026, 0xbb151055, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xa5757252, 0x957440d2, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xf4a477c1, 0x728b7771, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x76723a21, 0xf13c20f3, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x74d01105, 0x86398371, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xc1273e2c, 0x03d0fb78, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xdd9b7653, 0xd0d49b7c, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xdde62fd1, 0x76354a58, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xc3fb4a96, 0x9fa45fb7, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xa1a10f56, 0x7572bdec, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x4b7d4fd9, 0xfea59eb6, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x9d0ddffc, 0xf2669090, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x4f82d17c, 0xbc1ff573, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x08215ca2, 0x345f67e6, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xf23595d0, 0x3f39d77e, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xf244c158, 0xfb2db55b, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x256bfdd6, 0x13aebedf, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xc02a0c05, 0x5b013000, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xee2fa46e, 0xed95b542, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x97a7da20, 0x60bb5ee8, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xa231d5e6, 0xd9000a64, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x10e1968a, 0x624f9467, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x0e089270, 0xa8c64d94, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x9e8e0185, 0x6b4f637a, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x3096f12e, 0x11f5f4b9, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xffc134df, 0x0b02eb0c, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xe444dc25, 0xd5eef620, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0); +TESTINST3("qsub r0, r1, r2", 0xf808434e, 0xefeab836, r0, r1, r2, 0); /* TESTINST3("theinsn", 0xf7b0b13e, 0x5e4b1cbf, r0, r1, r2, 0); diff --git a/none/tests/arm/v6media.stdout.exp b/none/tests/arm/v6media.stdout.exp index 3ddf6fd54d..543a3d0844 100644 --- a/none/tests/arm/v6media.stdout.exp +++ b/none/tests/arm/v6media.stdout.exp @@ -3231,3 +3231,117 @@ usada8 r0, r1, r2, r3 :: rd 0x1d133df3 rm 0x868e7c7d, rn 0x5f77532e rs 0x1d133d usada8 r0, r1, r2, r3 :: rd 0x21ba3032 rm 0x4e5e0760, rn 0x8f6d3264 rs 0x21ba2fb3, carryin 0, cpsr 0x00000000 ge[3:0]=0000 usada8 r0, r1, r2, r3 :: rd 0xeda512a7 rm 0xde99ac2f, rn 0x0be36f70 rs 0xeda5110c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 usada8 r0, r1, r2, r3 :: rd 0xf20fb99e rm 0xc57243b7, rn 0xcf1e4487 rs 0xf20fb90f, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +---------------- QADD ---------------- +qadd r0, r1, r2 :: rd 0x7fffffff rm 0x00000000, rn 0x7fffffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x7fffffff rm 0x00000001, rn 0x7fffffff, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xfffffffe rm 0xffffffff, rn 0xffffffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xa299daa0 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x5d614bd2 rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x7fffffff rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x24426b8a rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xf96372fb rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x0e34f4ba rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xd14ed502 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x7fffffff rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x164e7875 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xf06e4ac2 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x7fffffff rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xbc077e14 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xf988807c rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xc319e39d rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x2a873276 rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xba34e1af rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x9490883e rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x70c1dfbb rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x80000000 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x80000000 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x672fef32 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x67ae5b14 rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xfb099476 rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xc4f839a4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xae7011cf rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x541b7a29 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x80000000 rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x1713cd42 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x4a22ee8f rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x8f74708c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x0ba2c6ef rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x3c80c488 rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x316f6d4e rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xed7276b3 rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x391abcb5 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x1b2b3c05 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xdbc559b0 rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xf8633908 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x80000000 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x73312af1 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xb6cee004 rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x09dd64ff rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x428ce5e7 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x0ac41feb rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xba33d245 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xa8fb218b rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x5c3e09b6 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x4ab260a3 rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0x01a9204f rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qadd r0, r1, r2 :: rd 0xe7f2fb84 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +---------------- QSUB ---------------- +qsub r0, r1, r2 :: rd 0x80000001 rm 0x00000000, rn 0x7fffffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000002 rm 0x00000001, rn 0x7fffffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x00000000 rm 0x00000000, rn 0x00000000, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x00000000 rm 0xffffffff, rn 0xffffffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xfff1fffc rm 0x0009ffff, rn 0x00180003, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x000e0004 rm 0x00180003, rn 0x0009ffff, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0004000f rm 0x00030018, rn 0xffff0009, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xfffbfff1 rm 0xffff0009, rn 0x00030018, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0ddd2e96 rm 0xd83b849b, rn 0xca5e5605, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xbc54a9aa rm 0x0cdafabe, rn 0x50865114, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xbd1665e6 rm 0x2738f0ff, rn 0x6a228b19, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xd15aeae8 rm 0xfaceab39, rn 0x2973c051, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0xa3e6f759, rn 0x557c7ba2, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x7fffffff rm 0x72f33509, rn 0x9b41bfb1, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0xa5ec1aa8, rn 0x2b62ba5a, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x18d2c68b rm 0x6ebd04d9, rn 0x55ea3e4e, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x470ecd95 rm 0x2eaea305, rn 0xe79fd570, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x54fe70a0 rm 0x22b65db1, rn 0xcdb7ed11, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x48b5bcc7 rm 0x776c41c7, rn 0x2eb68500, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0e1430e4 rm 0xe50dd77c, rn 0xd6f9a698, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x1e3e5e64 rm 0x0be36f70, rn 0xeda5110c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x14660cb9 rm 0xebbff82b, rn 0xd759eb72, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x76fdce8e rm 0x50c28082, rn 0xd9c4b1f4, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x74f77b6f rm 0x17962e8f, rn 0xa29eb320, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xf653ff30 rm 0xc57243b7, rn 0xcf1e4487, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x7fffffff rm 0x7eb226ac, rn 0xf20fb90f, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x01cbdfd1 rm 0xbce0f026, rn 0xbb151055, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x10013180 rm 0xa5757252, rn 0x957440d2, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x82190050 rm 0xf4a477c1, rn 0x728b7771, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x7fffffff rm 0x76723a21, rn 0xf13c20f3, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x7fffffff rm 0x74d01105, rn 0x86398371, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xbd5642b4 rm 0xc1273e2c, rn 0x03d0fb78, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0cc6dad7 rm 0xdd9b7653, rn 0xd0d49b7c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0xdde62fd1, rn 0x76354a58, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x2456eadf rm 0xc3fb4a96, rn 0x9fa45fb7, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0xa1a10f56, rn 0x7572bdec, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x4cd7b123 rm 0x4b7d4fd9, rn 0xfea59eb6, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xaaa74f6c rm 0x9d0ddffc, rn 0xf2669090, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x7fffffff rm 0x4f82d17c, rn 0xbc1ff573, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xd3c1f4bc rm 0x08215ca2, rn 0x345f67e6, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xb2fbbe52 rm 0xf23595d0, rn 0x3f39d77e, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xf7170bfd rm 0xf244c158, rn 0xfb2db55b, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x11bd3ef7 rm 0x256bfdd6, rn 0x13aebedf, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0xc02a0c05, rn 0x5b013000, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0099ef2c rm 0xee2fa46e, rn 0xed95b542, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0x97a7da20, rn 0x60bb5ee8, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xc931cb82 rm 0xa231d5e6, rn 0xd9000a64, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xae920223 rm 0x10e1968a, rn 0x624f9467, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x654244dc rm 0x0e089270, rn 0xa8c64d94, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x80000000 rm 0x9e8e0185, rn 0x6b4f637a, carryin 0, cpsr 0x08000000 Q ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x1ea0fc75 rm 0x3096f12e, rn 0x11f5f4b9, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xf4be49d3 rm 0xffc134df, rn 0x0b02eb0c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x0e55e605 rm 0xe444dc25, rn 0xd5eef620, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x64da14c9 rm 0x06ea9b2a, rn 0xa2108661, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x2ce06b08 rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x4b65e5cb rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0xf0919e5d rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000 ge[3:0]=0000 +qsub r0, r1, r2 :: rd 0x081d8b18 rm 0xf808434e, rn 0xefeab836, carryin 0, cpsr 0x00000000 ge[3:0]=0000