|
From: <sv...@va...> - 2009-11-27 19:38:59
|
Author: sewardj
Date: 2009-11-27 19:29:35 +0000 (Fri, 27 Nov 2009)
New Revision: 1934
Log:
Relax restrictions on incoming register numbers for MUL, MLA, SMULL,
UMULL, SMLAL, UMLAL a bit, in line with ARMv6 and later.
Modified:
branches/ARM/priv/guest_arm_toIR.c
Modified: branches/ARM/priv/guest_arm_toIR.c
===================================================================
--- branches/ARM/priv/guest_arm_toIR.c 2009-11-27 19:02:20 UTC (rev 1933)
+++ branches/ARM/priv/guest_arm_toIR.c 2009-11-27 19:29:35 UTC (rev 1934)
@@ -2679,7 +2679,7 @@
UInt rD = insn_19_16;
UInt rS = insn_11_8;
UInt rM = insn_3_0;
- if (rD == 15 || rM == 15 || rS == 15 || rD == rM) {
+ if (rD == 15 || rM == 15 || rS == 15) {
/* Unpredictable; don't decode; fall through */
} else {
IRTemp argL = newTemp(Ity_I32);
@@ -2720,7 +2720,7 @@
UInt rN = insn_15_12;
UInt rS = insn_11_8;
UInt rM = insn_3_0;
- if (rD == 15 || rM == 15 || rS == 15 || rN == 15 || rD == rM) {
+ if (rD == 15 || rM == 15 || rS == 15 || rN == 15) {
/* Unpredictable; don't decode; fall through */
} else {
IRTemp argL = newTemp(Ity_I32);
@@ -2766,8 +2766,7 @@
UInt rS = insn_11_8;
UInt rM = insn_3_0;
UInt isS = (insn_27_20 >> 2) & 1; /* 22:22 */
- if (rDhi == 15 || rDlo == 15 || rM == 15 || rS == 15
- || rDhi == rDlo || rDhi == rM || rDlo == rM) {
+ if (rDhi == 15 || rDlo == 15 || rM == 15 || rS == 15 || rDhi == rDlo) {
/* Unpredictable; don't decode; fall through */
} else {
IRTemp argL = newTemp(Ity_I32);
@@ -2816,8 +2815,7 @@
UInt rS = insn_11_8;
UInt rM = insn_3_0;
UInt isS = (insn_27_20 >> 2) & 1; /* 22:22 */
- if (rDhi == 15 || rDlo == 15 || rM == 15 || rS == 15
- || rDhi == rDlo || rDhi == rM || rDlo == rM) {
+ if (rDhi == 15 || rDlo == 15 || rM == 15 || rS == 15 || rDhi == rDlo) {
/* Unpredictable; don't decode; fall through */
} else {
IRTemp argL = newTemp(Ity_I32);
|