|
From: <sv...@va...> - 2012-12-12 00:17:54
|
sewardj 2012-12-12 00:17:33 +0000 (Wed, 12 Dec 2012)
New Revision: 13176
Log:
Add test cases for the UMAAL instruction.
Modified files:
trunk/none/tests/arm/v6intARM.c
trunk/none/tests/arm/v6intARM.stdout.exp
trunk/none/tests/arm/v6intThumb.c
trunk/none/tests/arm/v6intThumb.stdout.exp
Modified: trunk/none/tests/arm/v6intARM.c (+16 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.c 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intARM.c 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -939,5 +939,21 @@
TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+ printf("------------ UMAAL ------------\n");
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
+ r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
+ r0, r1, r2, r3, 1);
+
return 0;
}
Modified: trunk/none/tests/arm/v6intThumb.stdout.exp (+12 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.stdout.exp 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intThumb.stdout.exp 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -17473,3 +17473,15 @@
smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, c:v-in 0, cpsr 0xc0000000 NZ
smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, c:v-in 0, cpsr 0xc0000000 NZ
smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, c:v-in 0, cpsr 0xc0000000 NZ
+------------ UMAAL ------------
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0x00000000 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x718fb0c9 rd2 0x01d6d5a9, rm 0x14141356 rs 0x1773250a, c:v-in 0, cpsr 0xc0000000 NZ
+umaal r0, r1, r2, r3 :: rd 0x5b8b1d39 rd2 0x39145db7, rm 0x5773250a rs 0xa7182846, c:v-in 1, cpsr 0xd0000000 NZ V
Modified: trunk/none/tests/arm/v6intThumb.c (+16 -0)
===================================================================
--- trunk/none/tests/arm/v6intThumb.c 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intThumb.c 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -5894,5 +5894,21 @@
TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0, r1, r2, 0);
TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0, r1, r2, 0);
+ printf("------------ UMAAL ------------\n");
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 1, 1, 0, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 0, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 1, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0, r1, r2, r3, 0);
+
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
+ r0, r1, r2, r3, 0);
+ TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
+ r0, r1, r2, r3, 1);
+
return 0;
}
Modified: trunk/none/tests/arm/v6intARM.stdout.exp (+12 -0)
===================================================================
--- trunk/none/tests/arm/v6intARM.stdout.exp 2012-12-11 13:21:27 +00:00 (rev 13175)
+++ trunk/none/tests/arm/v6intARM.stdout.exp 2012-12-12 00:17:33 +00:00 (rev 13176)
@@ -822,3 +822,15 @@
smmulr r0, r1, r2 :: rd 0x0657af1f rm 0x448f3a5f, rn 0x17aecf57, carryin 0, cpsr 0x00000000
smmulr r0, r1, r2 :: rd 0xffe5afbd rm 0x4b0c2337, rn 0xffa63d6c, carryin 0, cpsr 0x00000000
smmulr r0, r1, r2 :: rd 0xffc528bd rm 0xf91d5f56, rn 0x088bc0f9, carryin 0, cpsr 0x00000000
+------------ UMAAL ------------
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000002 rd2 0x00000000, rm 0x00000000 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000001, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000000 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000000 rd2 0x00000000, rm 0x00000001 rs 0x00000000, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0x00000000, rm 0x00000001 rs 0x00000001, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0xfffe0001 rd2 0x00000000, rm 0x0000ffff rs 0x0000ffff, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x00000001 rd2 0xfffffffe, rm 0xffffffff rs 0xffffffff, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x718fb0c9 rd2 0x01d6d5a9, rm 0x14141356 rs 0x1773250a, carryin 0, cpsr 0x00000000
+umaal r0, r1, r2, r3 :: rd 0x5b8b1d39 rd2 0x39145db7, rm 0x5773250a rs 0xa7182846, carryin 1, cpsr 0x20000000 C
|