|
From: <sv...@va...> - 2010-10-06 20:47:36
|
Author: sewardj
Date: 2010-10-06 21:47:22 +0100 (Wed, 06 Oct 2010)
New Revision: 2062
Log:
NEON front end: fix bugs in VMIN, VZIP, VRSHL.
(Dmitry Zhurikhin, zh...@is...), no bug number.
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
===================================================================
--- trunk/priv/guest_arm_toIR.c 2010-10-06 20:34:53 UTC (rev 2061)
+++ trunk/priv/guest_arm_toIR.c 2010-10-06 20:47:22 UTC (rev 2062)
@@ -3883,7 +3883,7 @@
binop(op,
mkexpr(arg_m),
unop(Iop_64to8,
- binop(op_sub,
+ binop(op_add,
mkexpr(arg_n),
mkexpr(imm_val)))),
binop(Q ? Iop_AndV128 : Iop_And64,
@@ -4125,9 +4125,9 @@
}
} else {
switch (size) {
- case 0: op = Q ? Iop_Min8Sx16 : Iop_Min8Sx8; break;
- case 1: op = Q ? Iop_Min16Sx8 : Iop_Min16Sx4; break;
- case 2: op = Q ? Iop_Min32Sx4 : Iop_Min32Sx2; break;
+ case 0: op = Q ? Iop_Min8Ux16 : Iop_Min8Ux8; break;
+ case 1: op = Q ? Iop_Min16Ux8 : Iop_Min16Ux4; break;
+ case 2: op = Q ? Iop_Min32Ux4 : Iop_Min32Ux2; break;
case 3: return False;
default: vassert(0);
}
@@ -7286,7 +7286,7 @@
}
switch (size) {
case 0:
- op_lo = Q ? Iop_InterleaveLO8x16 : Iop_InterleaveHI8x8;
+ op_lo = Q ? Iop_InterleaveHI8x16 : Iop_InterleaveHI8x8;
op_hi = Q ? Iop_InterleaveLO8x16 : Iop_InterleaveLO8x8;
break;
case 1:
|