You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(3) |
2
(2) |
3
(1) |
|
4
(1) |
5
|
6
(4) |
7
(3) |
8
|
9
(1) |
10
(1) |
|
11
(1) |
12
(9) |
13
|
14
(1) |
15
(6) |
16
(4) |
17
(2) |
|
18
|
19
(3) |
20
|
21
(1) |
22
(2) |
23
(2) |
24
(2) |
|
25
|
26
(1) |
27
(1) |
28
(1) |
29
(2) |
30
|
31
|
|
From: Ivo R. <iv...@iv...> - 2015-10-16 18:19:32
|
Dear developers, We found the following comment in VEX/priv/host_ppc_defs.c, lines 107-109: /* Don't waste the reg-allocs's time trawling through zillions of FP registers - they mostly will never be used. We'll tolerate the occasional extra spill instead. */ Is this comment still valid - that is, is the register allocator susceptible for a high number of allocatable registers? I went quickly through the register allocator code in doRegisterAllocation() but could not find anything relevant. Thank you for any insight here, I. |
|
From: <sv...@va...> - 2015-10-16 17:30:03
|
Author: florian
Date: Fri Oct 16 18:29:54 2015
New Revision: 15709
Log:
Link the vbit tester against libvex-<arch>-<os>.a
This allows to remove local copies of certain VEX functions.
VEX r3200 enables this.
Modified:
trunk/memcheck/tests/vbit-test/Makefile.am
trunk/memcheck/tests/vbit-test/util.c
Modified: trunk/memcheck/tests/vbit-test/Makefile.am
==============================================================================
--- trunk/memcheck/tests/vbit-test/Makefile.am (original)
+++ trunk/memcheck/tests/vbit-test/Makefile.am Fri Oct 16 18:29:54 2015
@@ -39,5 +39,5 @@
-I$(top_srcdir)/VEX/pub
vbit_test_CFLAGS = $(AM_CFLAGS_PRI) -std=c99
vbit_test_DEPENDENCIES =
-vbit_test_LDADD =
+vbit_test_LDADD = $(top_srcdir)/VEX/libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
vbit_test_LDFLAGS = $(AM_CFLAGS_PRI) -std=c99 @LIB_UBSAN@
Modified: trunk/memcheck/tests/vbit-test/util.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/util.c (original)
+++ trunk/memcheck/tests/vbit-test/util.c Fri Oct 16 18:29:54 2015
@@ -191,891 +191,16 @@
}
-/* ---------------------------------------------------------------- */
-
-/* The functions below have been imported from VEX/pric/ir_defs.c.
- This is more convenient because
- (1) Don't have to figure out the Makefile machinery to pick up the
- correct VEX library (platform specific)
- (2) Would have to export typeofIRType in VEX
- (3) There is no worry that these functions get out of synch because
- the test harness will iterate over all IROps in libvex_ir.h.
- So if a new one was added there, we would assert here and elsewhere.
-*/
-
-// Taken from VEX/priv/ir_defs.c: function sizeofIRType
unsigned
sizeof_irtype(IRType ty)
{
- switch (ty) {
- case Ity_I8: return 1;
- case Ity_I16: return 2;
- case Ity_I32: return 4;
- case Ity_I64: return 8;
- case Ity_I128: return 16;
- case Ity_F32: return 4;
- case Ity_F64: return 8;
- case Ity_F128: return 16;
- case Ity_D32: return 4;
- case Ity_D64: return 8;
- case Ity_D128: return 16;
- case Ity_V128: return 16;
- case Ity_V256: return 32;
- default:
- panic(__func__);
- }
+ return sizeofIRType(ty);
}
-// Taken from VEX/priv/ir_defs.c: function typeOfPrimop
-// Modified minimally to break dependencies on VEX infrastructure.
void
typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
IRType *t_arg3, IRType *t_arg4)
{
-# define UNARY(_ta1,_td) \
- *t_dst = (_td); *t_arg1 = (_ta1); break
-# define BINARY(_ta1,_ta2,_td) \
- *t_dst = (_td); *t_arg1 = (_ta1); *t_arg2 = (_ta2); break
-# define TERNARY(_ta1,_ta2,_ta3,_td) \
- *t_dst = (_td); *t_arg1 = (_ta1); \
- *t_arg2 = (_ta2); *t_arg3 = (_ta3); break
-# define QUATERNARY(_ta1,_ta2,_ta3,_ta4,_td) \
- *t_dst = (_td); *t_arg1 = (_ta1); \
- *t_arg2 = (_ta2); *t_arg3 = (_ta3); \
- *t_arg4 = (_ta4); break
-# define COMPARISON(_ta) \
- *t_dst = Ity_I1; *t_arg1 = *t_arg2 = (_ta); break;
-# define UNARY_COMPARISON(_ta) \
- *t_dst = Ity_I1; *t_arg1 = (_ta); break;
-
- /* Rounding mode values are always Ity_I32, encoded as per
- IRRoundingMode */
- const IRType ity_RMode = Ity_I32;
-
- *t_dst = Ity_INVALID;
- *t_arg1 = Ity_INVALID;
- *t_arg2 = Ity_INVALID;
- *t_arg3 = Ity_INVALID;
- *t_arg4 = Ity_INVALID;
- switch (op) {
- case Iop_Add8: case Iop_Sub8: case Iop_Mul8:
- case Iop_Or8: case Iop_And8: case Iop_Xor8:
- BINARY(Ity_I8,Ity_I8, Ity_I8);
-
- case Iop_Add16: case Iop_Sub16: case Iop_Mul16:
- case Iop_Or16: case Iop_And16: case Iop_Xor16:
- BINARY(Ity_I16,Ity_I16, Ity_I16);
-
- case Iop_CmpORD32U:
- case Iop_CmpORD32S:
- case Iop_Add32: case Iop_Sub32: case Iop_Mul32:
- case Iop_Or32: case Iop_And32: case Iop_Xor32:
- case Iop_Max32U:
- case Iop_QAdd32S: case Iop_QSub32S:
- case Iop_Add16x2: case Iop_Sub16x2:
- case Iop_QAdd16Sx2: case Iop_QAdd16Ux2:
- case Iop_QSub16Sx2: case Iop_QSub16Ux2:
- case Iop_HAdd16Ux2: case Iop_HAdd16Sx2:
- case Iop_HSub16Ux2: case Iop_HSub16Sx2:
- case Iop_Add8x4: case Iop_Sub8x4:
- case Iop_QAdd8Sx4: case Iop_QAdd8Ux4:
- case Iop_QSub8Sx4: case Iop_QSub8Ux4:
- case Iop_HAdd8Ux4: case Iop_HAdd8Sx4:
- case Iop_HSub8Ux4: case Iop_HSub8Sx4:
- case Iop_Sad8Ux4:
- BINARY(Ity_I32,Ity_I32, Ity_I32);
-
- case Iop_Add64: case Iop_Sub64: case Iop_Mul64:
- case Iop_Or64: case Iop_And64: case Iop_Xor64:
- case Iop_CmpORD64U:
- case Iop_CmpORD64S:
- case Iop_Avg8Ux8: case Iop_Avg16Ux4:
- case Iop_Add8x8: case Iop_Add16x4: case Iop_Add32x2:
- case Iop_Add32Fx2: case Iop_Sub32Fx2:
- case Iop_CmpEQ8x8: case Iop_CmpEQ16x4: case Iop_CmpEQ32x2:
- case Iop_CmpGT8Sx8: case Iop_CmpGT16Sx4: case Iop_CmpGT32Sx2:
- case Iop_CmpGT8Ux8: case Iop_CmpGT16Ux4: case Iop_CmpGT32Ux2:
- case Iop_CmpGT32Fx2: case Iop_CmpEQ32Fx2: case Iop_CmpGE32Fx2:
- case Iop_InterleaveHI8x8: case Iop_InterleaveLO8x8:
- case Iop_InterleaveHI16x4: case Iop_InterleaveLO16x4:
- case Iop_InterleaveHI32x2: case Iop_InterleaveLO32x2:
- case Iop_CatOddLanes8x8: case Iop_CatEvenLanes8x8:
- case Iop_CatOddLanes16x4: case Iop_CatEvenLanes16x4:
- case Iop_InterleaveOddLanes8x8: case Iop_InterleaveEvenLanes8x8:
- case Iop_InterleaveOddLanes16x4: case Iop_InterleaveEvenLanes16x4:
- case Iop_Perm8x8:
- case Iop_Max8Ux8: case Iop_Max16Ux4: case Iop_Max32Ux2:
- case Iop_Max8Sx8: case Iop_Max16Sx4: case Iop_Max32Sx2:
- case Iop_Max32Fx2: case Iop_Min32Fx2:
- case Iop_PwMax32Fx2: case Iop_PwMin32Fx2:
- case Iop_Min8Ux8: case Iop_Min16Ux4: case Iop_Min32Ux2:
- case Iop_Min8Sx8: case Iop_Min16Sx4: case Iop_Min32Sx2:
- case Iop_PwMax8Ux8: case Iop_PwMax16Ux4: case Iop_PwMax32Ux2:
- case Iop_PwMax8Sx8: case Iop_PwMax16Sx4: case Iop_PwMax32Sx2:
- case Iop_PwMin8Ux8: case Iop_PwMin16Ux4: case Iop_PwMin32Ux2:
- case Iop_PwMin8Sx8: case Iop_PwMin16Sx4: case Iop_PwMin32Sx2:
- case Iop_Mul8x8: case Iop_Mul16x4: case Iop_Mul32x2:
- case Iop_Mul32Fx2:
- case Iop_PolynomialMul8x8:
- case Iop_MulHi16Sx4: case Iop_MulHi16Ux4:
- case Iop_QDMulHi16Sx4: case Iop_QDMulHi32Sx2:
- case Iop_QRDMulHi16Sx4: case Iop_QRDMulHi32Sx2:
- case Iop_QAdd8Sx8: case Iop_QAdd16Sx4:
- case Iop_QAdd32Sx2: case Iop_QAdd64Sx1:
- case Iop_QAdd8Ux8: case Iop_QAdd16Ux4:
- case Iop_QAdd32Ux2: case Iop_QAdd64Ux1:
- case Iop_PwAdd8x8: case Iop_PwAdd16x4: case Iop_PwAdd32x2:
- case Iop_PwAdd32Fx2:
- case Iop_QNarrowBin32Sto16Sx4:
- case Iop_QNarrowBin16Sto8Sx8: case Iop_QNarrowBin16Sto8Ux8:
- case Iop_NarrowBin16to8x8: case Iop_NarrowBin32to16x4:
- case Iop_Sub8x8: case Iop_Sub16x4: case Iop_Sub32x2:
- case Iop_QSub8Sx8: case Iop_QSub16Sx4:
- case Iop_QSub32Sx2: case Iop_QSub64Sx1:
- case Iop_QSub8Ux8: case Iop_QSub16Ux4:
- case Iop_QSub32Ux2: case Iop_QSub64Ux1:
- case Iop_Shl8x8: case Iop_Shl16x4: case Iop_Shl32x2:
- case Iop_Shr8x8: case Iop_Shr16x4: case Iop_Shr32x2:
- case Iop_Sar8x8: case Iop_Sar16x4: case Iop_Sar32x2:
- case Iop_Sal8x8: case Iop_Sal16x4: case Iop_Sal32x2: case Iop_Sal64x1:
- case Iop_QShl8x8: case Iop_QShl16x4: case Iop_QShl32x2: case Iop_QShl64x1:
- case Iop_QSal8x8: case Iop_QSal16x4: case Iop_QSal32x2: case Iop_QSal64x1:
- case Iop_RecipStep32Fx2:
- case Iop_RSqrtStep32Fx2:
- BINARY(Ity_I64,Ity_I64, Ity_I64);
-
- case Iop_ShlN32x2: case Iop_ShlN16x4: case Iop_ShlN8x8:
- case Iop_ShrN32x2: case Iop_ShrN16x4: case Iop_ShrN8x8:
- case Iop_SarN32x2: case Iop_SarN16x4: case Iop_SarN8x8:
- case Iop_QShlNsatUU8x8: case Iop_QShlNsatUU16x4:
- case Iop_QShlNsatUU32x2: case Iop_QShlNsatUU64x1:
- case Iop_QShlNsatSU8x8: case Iop_QShlNsatSU16x4:
- case Iop_QShlNsatSU32x2: case Iop_QShlNsatSU64x1:
- case Iop_QShlNsatSS8x8: case Iop_QShlNsatSS16x4:
- case Iop_QShlNsatSS32x2: case Iop_QShlNsatSS64x1:
- BINARY(Ity_I64,Ity_I8, Ity_I64);
-
- case Iop_Shl8: case Iop_Shr8: case Iop_Sar8:
- BINARY(Ity_I8,Ity_I8, Ity_I8);
- case Iop_Shl16: case Iop_Shr16: case Iop_Sar16:
- BINARY(Ity_I16,Ity_I8, Ity_I16);
- case Iop_Shl32: case Iop_Shr32: case Iop_Sar32:
- BINARY(Ity_I32,Ity_I8, Ity_I32);
- case Iop_Shl64: case Iop_Shr64: case Iop_Sar64:
- BINARY(Ity_I64,Ity_I8, Ity_I64);
-
- case Iop_Not8:
- UNARY(Ity_I8, Ity_I8);
- case Iop_Not16:
- UNARY(Ity_I16, Ity_I16);
- case Iop_Not32:
- case Iop_CmpNEZ16x2: case Iop_CmpNEZ8x4:
- UNARY(Ity_I32, Ity_I32);
-
- case Iop_Not64:
- case Iop_CmpNEZ32x2: case Iop_CmpNEZ16x4: case Iop_CmpNEZ8x8:
- case Iop_Cnt8x8:
- case Iop_Clz8x8: case Iop_Clz16x4: case Iop_Clz32x2:
- case Iop_Cls8x8: case Iop_Cls16x4: case Iop_Cls32x2:
- case Iop_PwAddL8Ux8: case Iop_PwAddL16Ux4: case Iop_PwAddL32Ux2:
- case Iop_PwAddL8Sx8: case Iop_PwAddL16Sx4: case Iop_PwAddL32Sx2:
- case Iop_Reverse8sIn64_x1: case Iop_Reverse16sIn64_x1:
- case Iop_Reverse32sIn64_x1:
- case Iop_Reverse8sIn32_x2: case Iop_Reverse16sIn32_x2:
- case Iop_Reverse8sIn16_x4:
- case Iop_FtoI32Sx2_RZ: case Iop_FtoI32Ux2_RZ:
- case Iop_I32StoFx2: case Iop_I32UtoFx2:
- case Iop_RecipEst32Ux2: case Iop_RecipEst32Fx2:
- case Iop_Abs32Fx2:
- case Iop_RSqrtEst32Fx2:
- case Iop_RSqrtEst32Ux2:
- case Iop_Neg32Fx2:
- case Iop_Abs8x8: case Iop_Abs16x4: case Iop_Abs32x2:
- UNARY(Ity_I64, Ity_I64);
-
- case Iop_CmpEQ8: case Iop_CmpNE8:
- case Iop_CasCmpEQ8: case Iop_CasCmpNE8:
- COMPARISON(Ity_I8);
- case Iop_CmpEQ16: case Iop_CmpNE16:
- case Iop_CasCmpEQ16: case Iop_CasCmpNE16:
- COMPARISON(Ity_I16);
- case Iop_CmpEQ32: case Iop_CmpNE32:
- case Iop_CasCmpEQ32: case Iop_CasCmpNE32:
- case Iop_CmpLT32S: case Iop_CmpLE32S:
- case Iop_CmpLT32U: case Iop_CmpLE32U:
- COMPARISON(Ity_I32);
- case Iop_CmpEQ64: case Iop_CmpNE64:
- case Iop_CasCmpEQ64: case Iop_CasCmpNE64:
- case Iop_CmpLT64S: case Iop_CmpLE64S:
- case Iop_CmpLT64U: case Iop_CmpLE64U:
- COMPARISON(Ity_I64);
-
- case Iop_CmpNEZ8: UNARY_COMPARISON(Ity_I8);
- case Iop_CmpNEZ16: UNARY_COMPARISON(Ity_I16);
- case Iop_CmpNEZ32: UNARY_COMPARISON(Ity_I32);
- case Iop_CmpNEZ64: UNARY_COMPARISON(Ity_I64);
-
- case Iop_Left8: UNARY(Ity_I8, Ity_I8);
- case Iop_Left16: UNARY(Ity_I16,Ity_I16);
- case Iop_CmpwNEZ32: case Iop_Left32: UNARY(Ity_I32,Ity_I32);
- case Iop_CmpwNEZ64: case Iop_Left64: UNARY(Ity_I64,Ity_I64);
-
- case Iop_MullU8: case Iop_MullS8:
- BINARY(Ity_I8,Ity_I8, Ity_I16);
- case Iop_MullU16: case Iop_MullS16:
- BINARY(Ity_I16,Ity_I16, Ity_I32);
- case Iop_MullU32: case Iop_MullS32:
- BINARY(Ity_I32,Ity_I32, Ity_I64);
- case Iop_MullU64: case Iop_MullS64:
- BINARY(Ity_I64,Ity_I64, Ity_I128);
-
- case Iop_Clz32: case Iop_Ctz32:
- UNARY(Ity_I32, Ity_I32);
-
- case Iop_Clz64: case Iop_Ctz64:
- UNARY(Ity_I64, Ity_I64);
-
- case Iop_DivU32: case Iop_DivS32: case Iop_DivU32E: case Iop_DivS32E:
- BINARY(Ity_I32,Ity_I32, Ity_I32);
-
- case Iop_DivU64: case Iop_DivS64: case Iop_DivS64E: case Iop_DivU64E:
- BINARY(Ity_I64,Ity_I64, Ity_I64);
-
- case Iop_DivModU64to32: case Iop_DivModS64to32:
- BINARY(Ity_I64,Ity_I32, Ity_I64);
-
- case Iop_DivModU128to64: case Iop_DivModS128to64:
- BINARY(Ity_I128,Ity_I64, Ity_I128);
-
- case Iop_DivModS64to64:
- BINARY(Ity_I64,Ity_I64, Ity_I128);
-
- case Iop_16HIto8: case Iop_16to8:
- UNARY(Ity_I16, Ity_I8);
- case Iop_8HLto16:
- BINARY(Ity_I8,Ity_I8, Ity_I16);
-
- case Iop_32HIto16: case Iop_32to16:
- UNARY(Ity_I32, Ity_I16);
- case Iop_16HLto32:
- BINARY(Ity_I16,Ity_I16, Ity_I32);
-
- case Iop_64HIto32: case Iop_64to32:
- UNARY(Ity_I64, Ity_I32);
- case Iop_32HLto64:
- BINARY(Ity_I32,Ity_I32, Ity_I64);
-
- case Iop_128HIto64: case Iop_128to64:
- UNARY(Ity_I128, Ity_I64);
- case Iop_64HLto128:
- BINARY(Ity_I64,Ity_I64, Ity_I128);
-
- case Iop_Not1: UNARY(Ity_I1, Ity_I1);
- case Iop_1Uto8: UNARY(Ity_I1, Ity_I8);
- case Iop_1Sto8: UNARY(Ity_I1, Ity_I8);
- case Iop_1Sto16: UNARY(Ity_I1, Ity_I16);
- case Iop_1Uto32: case Iop_1Sto32: UNARY(Ity_I1, Ity_I32);
- case Iop_1Sto64: case Iop_1Uto64: UNARY(Ity_I1, Ity_I64);
- case Iop_32to1: UNARY(Ity_I32, Ity_I1);
- case Iop_64to1: UNARY(Ity_I64, Ity_I1);
-
- case Iop_8Uto32: case Iop_8Sto32:
- UNARY(Ity_I8, Ity_I32);
-
- case Iop_8Uto16: case Iop_8Sto16:
- UNARY(Ity_I8, Ity_I16);
-
- case Iop_16Uto32: case Iop_16Sto32:
- UNARY(Ity_I16, Ity_I32);
-
- case Iop_32Sto64: case Iop_32Uto64:
- UNARY(Ity_I32, Ity_I64);
-
- case Iop_8Uto64: case Iop_8Sto64:
- UNARY(Ity_I8, Ity_I64);
-
- case Iop_16Uto64: case Iop_16Sto64:
- UNARY(Ity_I16, Ity_I64);
- case Iop_64to16:
- UNARY(Ity_I64, Ity_I16);
-
- case Iop_32to8: UNARY(Ity_I32, Ity_I8);
- case Iop_64to8: UNARY(Ity_I64, Ity_I8);
-
- case Iop_AddF64: case Iop_SubF64:
- case Iop_MulF64: case Iop_DivF64:
- case Iop_AddF64r32: case Iop_SubF64r32:
- case Iop_MulF64r32: case Iop_DivF64r32:
- TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_F64);
-
- case Iop_AddF32: case Iop_SubF32:
- case Iop_MulF32: case Iop_DivF32:
- TERNARY(ity_RMode,Ity_F32,Ity_F32, Ity_F32);
-
- case Iop_NegF64: case Iop_AbsF64:
- UNARY(Ity_F64, Ity_F64);
-
- case Iop_NegF32: case Iop_AbsF32:
- UNARY(Ity_F32, Ity_F32);
-
- case Iop_SqrtF64:
- BINARY(ity_RMode,Ity_F64, Ity_F64);
-
- case Iop_SqrtF32:
- case Iop_RoundF32toInt:
- BINARY(ity_RMode,Ity_F32, Ity_F32);
-
- case Iop_CmpF32:
- BINARY(Ity_F32,Ity_F32, Ity_I32);
-
- case Iop_CmpF64:
- BINARY(Ity_F64,Ity_F64, Ity_I32);
-
- case Iop_CmpF128:
- BINARY(Ity_F128,Ity_F128, Ity_I32);
-
- case Iop_F64toI16S: BINARY(ity_RMode,Ity_F64, Ity_I16);
- case Iop_F64toI32S: BINARY(ity_RMode,Ity_F64, Ity_I32);
- case Iop_F64toI64S: case Iop_F64toI64U:
- BINARY(ity_RMode,Ity_F64, Ity_I64);
-
- case Iop_F64toI32U: BINARY(ity_RMode,Ity_F64, Ity_I32);
-
- case Iop_I32StoF64: UNARY(Ity_I32, Ity_F64);
- case Iop_I64StoF64: BINARY(ity_RMode,Ity_I64, Ity_F64);
- case Iop_I64UtoF64: BINARY(ity_RMode,Ity_I64, Ity_F64);
- case Iop_I64UtoF32: BINARY(ity_RMode,Ity_I64, Ity_F32);
-
- case Iop_I32UtoF64: UNARY(Ity_I32, Ity_F64);
-
- case Iop_F32toI32S: BINARY(ity_RMode,Ity_F32, Ity_I32);
- case Iop_F32toI64S: BINARY(ity_RMode,Ity_F32, Ity_I64);
- case Iop_F32toI32U: BINARY(ity_RMode,Ity_F32, Ity_I32);
- case Iop_F32toI64U: BINARY(ity_RMode,Ity_F32, Ity_I64);
-
- case Iop_I32UtoF32: BINARY(ity_RMode,Ity_I32, Ity_F32);
- case Iop_I32StoF32: BINARY(ity_RMode,Ity_I32, Ity_F32);
- case Iop_I64StoF32: BINARY(ity_RMode,Ity_I64, Ity_F32);
-
- case Iop_F32toF64: UNARY(Ity_F32, Ity_F64);
- case Iop_F64toF32: BINARY(ity_RMode,Ity_F64, Ity_F32);
-
- case Iop_ReinterpI64asF64: UNARY(Ity_I64, Ity_F64);
- case Iop_ReinterpF64asI64: UNARY(Ity_F64, Ity_I64);
- case Iop_ReinterpI32asF32: UNARY(Ity_I32, Ity_F32);
- case Iop_ReinterpF32asI32: UNARY(Ity_F32, Ity_I32);
-
- case Iop_AtanF64: case Iop_Yl2xF64: case Iop_Yl2xp1F64:
- case Iop_ScaleF64: case Iop_PRemF64: case Iop_PRem1F64:
- TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_F64);
-
- case Iop_PRemC3210F64: case Iop_PRem1C3210F64:
- TERNARY(ity_RMode,Ity_F64,Ity_F64, Ity_I32);
-
- case Iop_SinF64: case Iop_CosF64: case Iop_TanF64:
- case Iop_2xm1F64:
- case Iop_RoundF64toInt: BINARY(ity_RMode,Ity_F64, Ity_F64);
-
- case Iop_MAddF64: case Iop_MSubF64:
- case Iop_MAddF64r32: case Iop_MSubF64r32:
- QUATERNARY(ity_RMode,Ity_F64,Ity_F64,Ity_F64, Ity_F64);
-
- case Iop_RSqrtEst5GoodF64:
- case Iop_RoundF64toF64_NEAREST: case Iop_RoundF64toF64_NegINF:
- case Iop_RoundF64toF64_PosINF: case Iop_RoundF64toF64_ZERO:
- UNARY(Ity_F64, Ity_F64);
- case Iop_RoundF64toF32:
- BINARY(ity_RMode,Ity_F64, Ity_F64);
- case Iop_TruncF64asF32:
- UNARY(Ity_F64, Ity_F32);
-
- case Iop_I32UtoFx4:
- case Iop_I32StoFx4:
- case Iop_QFtoI32Ux4_RZ:
- case Iop_QFtoI32Sx4_RZ:
- case Iop_FtoI32Ux4_RZ:
- case Iop_FtoI32Sx4_RZ:
- case Iop_RoundF32x4_RM:
- case Iop_RoundF32x4_RP:
- case Iop_RoundF32x4_RN:
- case Iop_RoundF32x4_RZ:
- case Iop_Abs32Fx4:
- case Iop_RSqrtEst32Fx4:
- case Iop_RSqrtEst32Ux4:
- UNARY(Ity_V128, Ity_V128);
-
- case Iop_64HLtoV128:
- BINARY(Ity_I64,Ity_I64, Ity_V128);
-
- case Iop_V128to64: case Iop_V128HIto64:
- case Iop_NarrowUn16to8x8:
- case Iop_NarrowUn32to16x4:
- case Iop_NarrowUn64to32x2:
- case Iop_QNarrowUn16Uto8Ux8:
- case Iop_QNarrowUn32Uto16Ux4:
- case Iop_QNarrowUn64Uto32Ux2:
- case Iop_QNarrowUn16Sto8Sx8:
- case Iop_QNarrowUn32Sto16Sx4:
- case Iop_QNarrowUn64Sto32Sx2:
- case Iop_QNarrowUn16Sto8Ux8:
- case Iop_QNarrowUn32Sto16Ux4:
- case Iop_QNarrowUn64Sto32Ux2:
- case Iop_F32toF16x4:
- UNARY(Ity_V128, Ity_I64);
-
- case Iop_Widen8Uto16x8:
- case Iop_Widen16Uto32x4:
- case Iop_Widen32Uto64x2:
- case Iop_Widen8Sto16x8:
- case Iop_Widen16Sto32x4:
- case Iop_Widen32Sto64x2:
- case Iop_F16toF32x4:
- UNARY(Ity_I64, Ity_V128);
-
- case Iop_V128to32: UNARY(Ity_V128, Ity_I32);
- case Iop_32UtoV128: UNARY(Ity_I32, Ity_V128);
- case Iop_64UtoV128: UNARY(Ity_I64, Ity_V128);
- case Iop_SetV128lo32: BINARY(Ity_V128,Ity_I32, Ity_V128);
- case Iop_SetV128lo64: BINARY(Ity_V128,Ity_I64, Ity_V128);
-
- case Iop_Dup8x16: UNARY(Ity_I8, Ity_V128);
- case Iop_Dup16x8: UNARY(Ity_I16, Ity_V128);
- case Iop_Dup32x4: UNARY(Ity_I32, Ity_V128);
- case Iop_Dup8x8: UNARY(Ity_I8, Ity_I64);
- case Iop_Dup16x4: UNARY(Ity_I16, Ity_I64);
- case Iop_Dup32x2: UNARY(Ity_I32, Ity_I64);
-
- case Iop_CmpEQ32Fx4: case Iop_CmpLT32Fx4:
- case Iop_CmpEQ64Fx2: case Iop_CmpLT64Fx2:
- case Iop_CmpLE32Fx4: case Iop_CmpUN32Fx4:
- case Iop_CmpLE64Fx2: case Iop_CmpUN64Fx2:
- case Iop_CmpGT32Fx4: case Iop_CmpGE32Fx4:
- case Iop_CmpEQ32F0x4: case Iop_CmpLT32F0x4:
- case Iop_CmpEQ64F0x2: case Iop_CmpLT64F0x2:
- case Iop_CmpLE32F0x4: case Iop_CmpUN32F0x4:
- case Iop_CmpLE64F0x2: case Iop_CmpUN64F0x2:
- case Iop_Add32Fx4: case Iop_Add32F0x4:
- case Iop_Add64Fx2: case Iop_Add64F0x2:
- case Iop_Div32Fx4: case Iop_Div32F0x4:
- case Iop_Div64Fx2: case Iop_Div64F0x2:
- case Iop_Max32Fx4: case Iop_Max32F0x4:
- case Iop_PwMax32Fx4: case Iop_PwMin32Fx4:
- case Iop_Max64Fx2: case Iop_Max64F0x2:
- case Iop_Min32Fx4: case Iop_Min32F0x4:
- case Iop_Min64Fx2: case Iop_Min64F0x2:
- case Iop_Mul32Fx4: case Iop_Mul32F0x4:
- case Iop_Mul64Fx2: case Iop_Mul64F0x2:
- case Iop_Sub32Fx4: case Iop_Sub32F0x4:
- case Iop_Sub64Fx2: case Iop_Sub64F0x2:
- case Iop_AndV128: case Iop_OrV128: case Iop_XorV128:
- case Iop_Add8x16: case Iop_Add16x8:
- case Iop_Add32x4: case Iop_Add64x2:
- case Iop_QAdd8Ux16: case Iop_QAdd16Ux8:
- case Iop_QAdd32Ux4: //case Iop_QAdd64Ux2:
- case Iop_QAdd8Sx16: case Iop_QAdd16Sx8:
- case Iop_QAdd32Sx4: case Iop_QAdd64Sx2:
- case Iop_PwAdd8x16: case Iop_PwAdd16x8: case Iop_PwAdd32x4:
- case Iop_Sub8x16: case Iop_Sub16x8:
- case Iop_Sub32x4: case Iop_Sub64x2:
- case Iop_QSub8Ux16: case Iop_QSub16Ux8:
- case Iop_QSub32Ux4: //case Iop_QSub64Ux2:
- case Iop_QSub8Sx16: case Iop_QSub16Sx8:
- case Iop_QSub32Sx4: case Iop_QSub64Sx2:
- case Iop_Mul8x16: case Iop_Mul16x8: case Iop_Mul32x4:
- case Iop_PolynomialMul8x16:
- case Iop_MulHi16Ux8: case Iop_MulHi32Ux4:
- case Iop_MulHi16Sx8: case Iop_MulHi32Sx4:
- case Iop_QDMulHi16Sx8: case Iop_QDMulHi32Sx4:
- case Iop_QRDMulHi16Sx8: case Iop_QRDMulHi32Sx4:
- case Iop_MullEven8Ux16: case Iop_MullEven16Ux8:
- case Iop_MullEven8Sx16: case Iop_MullEven16Sx8:
- case Iop_Avg8Ux16: case Iop_Avg16Ux8: case Iop_Avg32Ux4:
- case Iop_Avg8Sx16: case Iop_Avg16Sx8: case Iop_Avg32Sx4:
- case Iop_Max8Sx16: case Iop_Max16Sx8: case Iop_Max32Sx4:
- case Iop_Max8Ux16: case Iop_Max16Ux8: case Iop_Max32Ux4:
- case Iop_Min8Sx16: case Iop_Min16Sx8: case Iop_Min32Sx4:
- case Iop_Min8Ux16: case Iop_Min16Ux8: case Iop_Min32Ux4:
- case Iop_CmpEQ8x16: case Iop_CmpEQ16x8: case Iop_CmpEQ32x4:
- case Iop_CmpEQ64x2:
- case Iop_CmpGT8Sx16: case Iop_CmpGT16Sx8: case Iop_CmpGT32Sx4:
- case Iop_CmpGT64Sx2:
- case Iop_CmpGT8Ux16: case Iop_CmpGT16Ux8: case Iop_CmpGT32Ux4:
- case Iop_Shl8x16: case Iop_Shl16x8: case Iop_Shl32x4: case Iop_Shl64x2:
- case Iop_QShl8x16: case Iop_QShl16x8:
- case Iop_QShl32x4: case Iop_QShl64x2:
- case Iop_QSal8x16: case Iop_QSal16x8:
- case Iop_QSal32x4: case Iop_QSal64x2:
- case Iop_Shr8x16: case Iop_Shr16x8: case Iop_Shr32x4: case Iop_Shr64x2:
- case Iop_Sar8x16: case Iop_Sar16x8: case Iop_Sar32x4: case Iop_Sar64x2:
- case Iop_Sal8x16: case Iop_Sal16x8: case Iop_Sal32x4: case Iop_Sal64x2:
- case Iop_Rol8x16: case Iop_Rol16x8: case Iop_Rol32x4:
- case Iop_QNarrowBin16Sto8Ux16: case Iop_QNarrowBin32Sto16Ux8:
- case Iop_QNarrowBin16Sto8Sx16: case Iop_QNarrowBin32Sto16Sx8:
- case Iop_QNarrowBin16Uto8Ux16: case Iop_QNarrowBin32Uto16Ux8:
- case Iop_NarrowBin16to8x16: case Iop_NarrowBin32to16x8:
- case Iop_InterleaveHI8x16: case Iop_InterleaveHI16x8:
- case Iop_InterleaveHI32x4: case Iop_InterleaveHI64x2:
- case Iop_InterleaveLO8x16: case Iop_InterleaveLO16x8:
- case Iop_InterleaveLO32x4: case Iop_InterleaveLO64x2:
- case Iop_CatOddLanes8x16: case Iop_CatEvenLanes8x16:
- case Iop_CatOddLanes16x8: case Iop_CatEvenLanes16x8:
- case Iop_CatOddLanes32x4: case Iop_CatEvenLanes32x4:
- case Iop_InterleaveOddLanes8x16: case Iop_InterleaveEvenLanes8x16:
- case Iop_InterleaveOddLanes16x8: case Iop_InterleaveEvenLanes16x8:
- case Iop_InterleaveOddLanes32x4: case Iop_InterleaveEvenLanes32x4:
- case Iop_Perm8x16: case Iop_Perm32x4:
- case Iop_RecipStep32Fx4:
- case Iop_RSqrtStep32Fx4:
- BINARY(Ity_V128,Ity_V128, Ity_V128);
-
- case Iop_PolynomialMull8x8:
- case Iop_Mull8Ux8: case Iop_Mull8Sx8:
- case Iop_Mull16Ux4: case Iop_Mull16Sx4:
- case Iop_Mull32Ux2: case Iop_Mull32Sx2:
- BINARY(Ity_I64, Ity_I64, Ity_V128);
-
- case Iop_NotV128:
- case Iop_RecipEst32Fx4: case Iop_RecipEst32F0x4:
- case Iop_RecipEst32Ux4:
- case Iop_RSqrtEst32F0x4:
- case Iop_Sqrt32Fx4: case Iop_Sqrt32F0x4:
- case Iop_Sqrt64Fx2: case Iop_Sqrt64F0x2:
- case Iop_CmpNEZ8x16: case Iop_CmpNEZ16x8:
- case Iop_CmpNEZ32x4: case Iop_CmpNEZ64x2:
- case Iop_Cnt8x16:
- case Iop_Clz8x16: case Iop_Clz16x8: case Iop_Clz32x4:
- case Iop_Cls8x16: case Iop_Cls16x8: case Iop_Cls32x4:
- case Iop_PwAddL8Ux16: case Iop_PwAddL16Ux8: case Iop_PwAddL32Ux4:
- case Iop_PwAddL8Sx16: case Iop_PwAddL16Sx8: case Iop_PwAddL32Sx4:
- case Iop_Reverse8sIn64_x2: case Iop_Reverse16sIn64_x2:
- case Iop_Reverse32sIn64_x2:
- case Iop_Reverse8sIn32_x4: case Iop_Reverse16sIn32_x4:
- case Iop_Reverse8sIn16_x8:
- case Iop_Neg32Fx4:
- case Iop_Abs8x16: case Iop_Abs16x8: case Iop_Abs32x4:
- UNARY(Ity_V128, Ity_V128);
-
- case Iop_ShlV128: case Iop_ShrV128:
- case Iop_ShlN8x16: case Iop_ShlN16x8:
- case Iop_ShlN32x4: case Iop_ShlN64x2:
- case Iop_ShrN8x16: case Iop_ShrN16x8:
- case Iop_ShrN32x4: case Iop_ShrN64x2:
- case Iop_SarN8x16: case Iop_SarN16x8:
- case Iop_SarN32x4: case Iop_SarN64x2:
- case Iop_QShlNsatUU8x16: case Iop_QShlNsatUU16x8:
- case Iop_QShlNsatUU32x4: case Iop_QShlNsatUU64x2:
- case Iop_QShlNsatSU8x16: case Iop_QShlNsatSU16x8:
- case Iop_QShlNsatSU32x4: case Iop_QShlNsatSU64x2:
- case Iop_QShlNsatSS8x16: case Iop_QShlNsatSS16x8:
- case Iop_QShlNsatSS32x4: case Iop_QShlNsatSS64x2:
- BINARY(Ity_V128,Ity_I8, Ity_V128);
-
- case Iop_F32ToFixed32Ux4_RZ:
- case Iop_F32ToFixed32Sx4_RZ:
- case Iop_Fixed32UToF32x4_RN:
- case Iop_Fixed32SToF32x4_RN:
- BINARY(Ity_V128, Ity_I8, Ity_V128);
-
- case Iop_F32ToFixed32Ux2_RZ:
- case Iop_F32ToFixed32Sx2_RZ:
- case Iop_Fixed32UToF32x2_RN:
- case Iop_Fixed32SToF32x2_RN:
- BINARY(Ity_I64, Ity_I8, Ity_I64);
-
- case Iop_GetElem8x16:
- BINARY(Ity_V128, Ity_I8, Ity_I8);
- case Iop_GetElem16x8:
- BINARY(Ity_V128, Ity_I8, Ity_I16);
- case Iop_GetElem32x4:
- BINARY(Ity_V128, Ity_I8, Ity_I32);
- case Iop_GetElem64x2:
- BINARY(Ity_V128, Ity_I8, Ity_I64);
- case Iop_GetElem8x8:
- BINARY(Ity_I64, Ity_I8, Ity_I8);
- case Iop_GetElem16x4:
- BINARY(Ity_I64, Ity_I8, Ity_I16);
- case Iop_GetElem32x2:
- BINARY(Ity_I64, Ity_I8, Ity_I32);
- case Iop_SetElem8x8:
- TERNARY(Ity_I64, Ity_I8, Ity_I8, Ity_I64);
- case Iop_SetElem16x4:
- TERNARY(Ity_I64, Ity_I8, Ity_I16, Ity_I64);
- case Iop_SetElem32x2:
- TERNARY(Ity_I64, Ity_I8, Ity_I32, Ity_I64);
-
- case Iop_Slice64:
- TERNARY(Ity_I64, Ity_I64, Ity_I8, Ity_I64);
- case Iop_SliceV128:
- TERNARY(Ity_V128, Ity_V128, Ity_I8, Ity_V128);
-
- case Iop_QDMull16Sx4: case Iop_QDMull32Sx2:
- BINARY(Ity_I64, Ity_I64, Ity_V128);
-
- /* s390 specific */
- case Iop_MAddF32:
- case Iop_MSubF32:
- QUATERNARY(ity_RMode,Ity_F32,Ity_F32,Ity_F32, Ity_F32);
-
- case Iop_F64HLtoF128:
- BINARY(Ity_F64,Ity_F64, Ity_F128);
-
- case Iop_F128HItoF64:
- case Iop_F128LOtoF64:
- UNARY(Ity_F128, Ity_F64);
-
- case Iop_AddF128:
- case Iop_SubF128:
- case Iop_MulF128:
- case Iop_DivF128:
- TERNARY(ity_RMode,Ity_F128,Ity_F128, Ity_F128);
-
- case Iop_NegF128:
- case Iop_AbsF128:
- UNARY(Ity_F128, Ity_F128);
-
- case Iop_SqrtF128:
- case Iop_RoundF128toInt:
- BINARY(ity_RMode,Ity_F128, Ity_F128);
-
- case Iop_I32StoF128: UNARY(Ity_I32, Ity_F128);
- case Iop_I64StoF128: UNARY(Ity_I64, Ity_F128);
-
- case Iop_I32UtoF128: UNARY(Ity_I32, Ity_F128);
- case Iop_I64UtoF128: UNARY(Ity_I64, Ity_F128);
-
- case Iop_F128toI32S: BINARY(ity_RMode,Ity_F128, Ity_I32);
- case Iop_F128toI64S: BINARY(ity_RMode,Ity_F128, Ity_I64);
-
- case Iop_F128toI32U: BINARY(ity_RMode,Ity_F128, Ity_I32);
- case Iop_F128toI64U: BINARY(ity_RMode,Ity_F128, Ity_I64);
-
- case Iop_F32toF128: UNARY(Ity_F32, Ity_F128);
- case Iop_F64toF128: UNARY(Ity_F64, Ity_F128);
-
- case Iop_F128toF32: BINARY(ity_RMode,Ity_F128, Ity_F32);
- case Iop_F128toF64: BINARY(ity_RMode,Ity_F128, Ity_F64);
-
- case Iop_D32toD64:
- UNARY(Ity_D32, Ity_D64);
-
- case Iop_ExtractExpD64:
- UNARY(Ity_D64, Ity_I64);
-
- case Iop_ExtractSigD64:
- UNARY(Ity_D64, Ity_I64);
-
- case Iop_InsertExpD64:
- BINARY(Ity_I64,Ity_D64, Ity_D64);
-
- case Iop_ExtractExpD128:
- UNARY(Ity_D128, Ity_I64);
-
- case Iop_ExtractSigD128:
- UNARY(Ity_D128, Ity_I64);
-
- case Iop_InsertExpD128:
- BINARY(Ity_I64,Ity_D128, Ity_D128);
-
- case Iop_D64toD128:
- UNARY(Ity_D64, Ity_D128);
-
- case Iop_ReinterpD64asI64:
- UNARY(Ity_D64, Ity_I64);
-
- case Iop_ReinterpI64asD64:
- UNARY(Ity_I64, Ity_D64);
-
- case Iop_RoundD64toInt:
- BINARY(ity_RMode,Ity_D64, Ity_D64);
-
- case Iop_RoundD128toInt:
- BINARY(ity_RMode,Ity_D128, Ity_D128);
-
- case Iop_I32StoD128:
- case Iop_I32UtoD128:
- UNARY(Ity_I32, Ity_D128);
-
- case Iop_I64StoD128:
- UNARY(Ity_I64, Ity_D128);
-
- case Iop_I64UtoD128:
- UNARY(Ity_I64, Ity_D128);
-
- case Iop_F32toD32:
- BINARY(ity_RMode, Ity_F32, Ity_D32);
-
- case Iop_F32toD64:
- BINARY(ity_RMode, Ity_F32, Ity_D64);
-
- case Iop_F32toD128:
- BINARY(ity_RMode, Ity_F32, Ity_D128);
-
- case Iop_F64toD32:
- BINARY(ity_RMode, Ity_F64, Ity_D32);
-
- case Iop_F64toD64:
- BINARY(ity_RMode, Ity_F64, Ity_D64);
-
- case Iop_F64toD128:
- BINARY(ity_RMode, Ity_F64, Ity_D128);
-
- case Iop_F128toD32:
- BINARY(ity_RMode, Ity_F128, Ity_D32);
-
- case Iop_F128toD64:
- BINARY(ity_RMode, Ity_F128, Ity_D64);
-
- case Iop_F128toD128:
- BINARY(ity_RMode, Ity_F128, Ity_D128);
-
- case Iop_D32toF32:
- BINARY(ity_RMode, Ity_D32, Ity_F32);
-
- case Iop_D32toF64:
- BINARY(ity_RMode, Ity_D32, Ity_F64);
-
- case Iop_D32toF128:
- BINARY(ity_RMode, Ity_D32, Ity_F128);
-
- case Iop_D64toF32:
- BINARY(ity_RMode, Ity_D64, Ity_F32);
-
- case Iop_D64toF64:
- BINARY(ity_RMode, Ity_D64, Ity_F64);
-
- case Iop_D64toF128:
- BINARY(ity_RMode, Ity_D64, Ity_F128);
-
- case Iop_D128toF32:
- BINARY(ity_RMode, Ity_D128, Ity_F32);
-
- case Iop_D128toF64:
- BINARY(ity_RMode, Ity_D128, Ity_F64);
-
- case Iop_D128toF128:
- BINARY(ity_RMode, Ity_D128, Ity_F128);
-
- case Iop_DPBtoBCD:
- case Iop_BCDtoDPB:
- UNARY(Ity_I64, Ity_I64);
-
- case Iop_D128HItoD64:
- case Iop_D128LOtoD64:
- UNARY(Ity_D128, Ity_D64);
-
- case Iop_D128toI32S:
- case Iop_D128toI32U:
- BINARY(ity_RMode, Ity_D128, Ity_I32);
-
- case Iop_D128toI64S:
- BINARY(ity_RMode, Ity_D128, Ity_I64);
-
- case Iop_D128toI64U:
- BINARY(ity_RMode, Ity_D128, Ity_I64);
-
- case Iop_D64HLtoD128:
- BINARY(Ity_D64, Ity_D64, Ity_D128);
-
- case Iop_ShlD64:
- case Iop_ShrD64:
- BINARY(Ity_D64, Ity_I8, Ity_D64 );
-
- case Iop_D64toD32:
- BINARY(ity_RMode, Ity_D64, Ity_D32);
-
- case Iop_D64toI32S:
- case Iop_D64toI32U:
- BINARY(ity_RMode, Ity_D64, Ity_I32);
-
- case Iop_D64toI64S:
- case Iop_D64toI64U:
- BINARY(ity_RMode, Ity_D64, Ity_I64);
-
- case Iop_I32StoD64:
- case Iop_I32UtoD64:
- UNARY(Ity_I32, Ity_D64);
-
- case Iop_I64StoD64:
- case Iop_I64UtoD64:
- BINARY(ity_RMode, Ity_I64, Ity_D64);
-
- case Iop_CmpD64:
- case Iop_CmpExpD64:
- BINARY(Ity_D64,Ity_D64, Ity_I32);
-
- case Iop_CmpD128:
- case Iop_CmpExpD128:
- BINARY(Ity_D128,Ity_D128, Ity_I32);
-
- case Iop_QuantizeD64:
- TERNARY(ity_RMode,Ity_D64,Ity_D64, Ity_D64);
-
- case Iop_SignificanceRoundD64:
- TERNARY(ity_RMode,Ity_I8,Ity_D64, Ity_D64);
-
- case Iop_QuantizeD128:
- TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128);
-
- case Iop_SignificanceRoundD128:
- TERNARY(ity_RMode,Ity_I8,Ity_D128, Ity_D128);
-
- case Iop_ShlD128:
- case Iop_ShrD128:
- BINARY(Ity_D128, Ity_I8, Ity_D128 );
-
- case Iop_AddD64:
- case Iop_SubD64:
- case Iop_MulD64:
- case Iop_DivD64:
- TERNARY( ity_RMode, Ity_D64, Ity_D64, Ity_D64 );
-
- case Iop_D128toD64:
- BINARY( ity_RMode, Ity_D128, Ity_D64 );
-
- case Iop_AddD128:
- case Iop_SubD128:
- case Iop_MulD128:
- case Iop_DivD128:
- TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128);
-
- case Iop_V256to64_0: case Iop_V256to64_1:
- case Iop_V256to64_2: case Iop_V256to64_3:
- UNARY(Ity_V256, Ity_I64);
-
- case Iop_64x4toV256:
- QUATERNARY(Ity_I64, Ity_I64, Ity_I64, Ity_I64, Ity_V256);
-
- case Iop_Add64Fx4: case Iop_Sub64Fx4:
- case Iop_Mul64Fx4: case Iop_Div64Fx4:
- case Iop_Add32Fx8: case Iop_Sub32Fx8:
- case Iop_Mul32Fx8: case Iop_Div32Fx8:
- case Iop_AndV256: case Iop_OrV256:
- case Iop_XorV256:
- case Iop_Max32Fx8: case Iop_Min32Fx8:
- case Iop_Max64Fx4: case Iop_Min64Fx4:
- BINARY(Ity_V256,Ity_V256, Ity_V256);
-
- case Iop_V256toV128_1: case Iop_V256toV128_0:
- UNARY(Ity_V256, Ity_V128);
-
- case Iop_V128HLtoV256:
- BINARY(Ity_V128,Ity_V128, Ity_V256);
-
- case Iop_NotV256:
- case Iop_RSqrtEst32Fx8:
- case Iop_Sqrt32Fx8:
- case Iop_Sqrt64Fx4:
- case Iop_RecipEst32Fx8:
- case Iop_CmpNEZ64x4: case Iop_CmpNEZ32x8:
- UNARY(Ity_V256, Ity_V256);
-
- default:
- panic(__func__);
- }
-# undef UNARY
-# undef BINARY
-# undef TERNARY
-# undef COMPARISON
-# undef UNARY_COMPARISON
+ return typeOfPrimop(op, t_dst, t_arg1, t_arg2, t_arg3, t_arg4);
}
|
|
From: <sv...@va...> - 2015-10-16 17:26:34
|
Author: florian
Date: Fri Oct 16 18:26:22 2015
New Revision: 3200
Log:
Give typeOfPrimop external linkage. This allows us to simplify
memcheck/tests/vbit-test which used to have local copies of certain
functions from ir_defs.c
Modified:
trunk/priv/ir_defs.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Fri Oct 16 18:26:22 2015
@@ -2474,7 +2474,6 @@
/*--- Primop types ---*/
/*---------------------------------------------------------------*/
-static
void typeOfPrimop ( IROp op,
/*OUTs*/
IRType* t_dst,
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Fri Oct 16 18:26:22 2015
@@ -1850,6 +1850,10 @@
/* Pretty-print an op. */
extern void ppIROp ( IROp );
+/* For a given operand return the types of its arguments and its result. */
+extern void typeOfPrimop ( IROp op,
+ /*OUTs*/ IRType* t_dst, IRType* t_arg1,
+ IRType* t_arg2, IRType* t_arg3, IRType* t_arg4 );
/* Encoding of IEEE754-specified rounding modes.
Note, various front and back ends rely on the actual numerical
|
Author: iraisr
Date: Fri Oct 16 13:20:20 2015
New Revision: 15708
Log:
Solaris syscall: Add support for lwp_cond_wait(170).
Provide scalar test as well.
Fixes BZ #353920.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/include/vki/vki-scnums-solaris.h
trunk/memcheck/tests/solaris/scalar.c
trunk/memcheck/tests/solaris/scalar.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Fri Oct 16 13:20:20 2015
@@ -37,6 +37,7 @@
353398 WARNING: unhandled amd64-solaris syscall: 207
353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN
353917 unhandled amd64-solaris syscall fchdir(120)
+353920 unhandled amd64-solaris syscall: 170
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Fri Oct 16 13:20:20 2015
@@ -1013,6 +1013,7 @@
DECL_TEMPLATE(solaris, sys_lwp_private);
DECL_TEMPLATE(solaris, sys_lwp_wait);
DECL_TEMPLATE(solaris, sys_lwp_mutex_wakeup);
+DECL_TEMPLATE(solaris, sys_lwp_cond_wait);
DECL_TEMPLATE(solaris, sys_lwp_cond_broadcast);
DECL_TEMPLATE(solaris, sys_pread);
DECL_TEMPLATE(solaris, sys_pwrite);
@@ -6960,7 +6961,7 @@
/* int lwp_wait(id_t lwpid, id_t *departed); */
*flags |= SfMayBlock;
PRINT("sys_lwp_wait ( %ld, %#lx )", SARG1, ARG2);
- PRE_REG_READ2(long, "lwp_wait", vki_id_t, lwpid, id_t *, departed);
+ PRE_REG_READ2(long, "lwp_wait", vki_id_t, lwpid, vki_id_t *, departed);
if (ARG2)
PRE_MEM_WRITE("lwp_wait(departed)", ARG2, sizeof(vki_id_t));
}
@@ -6973,11 +6974,11 @@
PRE(sys_lwp_mutex_wakeup)
{
/* int lwp_mutex_wakeup(lwp_mutex_t *lp, int release_all); */
- vki_lwp_mutex_t *lp = (vki_lwp_mutex_t*)ARG1;
*flags |= SfMayBlock;
PRINT("sys_lwp_mutex_wakeup ( %#lx, %ld )", ARG1, SARG2);
- PRE_REG_READ2(long, "lwp_mutex_wakeup", lwp_mutex_t *, lp,
+ PRE_REG_READ2(long, "lwp_mutex_wakeup", vki_lwp_mutex_t *, lp,
int, release_all);
+ vki_lwp_mutex_t *lp = (vki_lwp_mutex_t *) ARG1;
PRE_FIELD_READ("lwp_mutex_wakeup(lp->mutex_type)", lp->vki_mutex_type);
PRE_FIELD_WRITE("lwp_mutex_wakeup(lp->mutex_waiters)",
lp->vki_mutex_waiters);
@@ -6985,18 +6986,48 @@
POST(sys_lwp_mutex_wakeup)
{
- vki_lwp_mutex_t *lp = (vki_lwp_mutex_t*)ARG1;
+ vki_lwp_mutex_t *lp = (vki_lwp_mutex_t *) ARG1;
POST_FIELD_WRITE(lp->vki_mutex_waiters);
}
+PRE(sys_lwp_cond_wait)
+{
+ /* int lwp_cond_wait(lwp_cond_t *cvp, lwp_mutex_t *mp, timespec_t *tsp,
+ int check_park); */
+ *flags |= SfMayBlock;
+ PRINT("sys_lwp_cond_wait( %#lx, %#lx, %#lx, %ld )", ARG1, ARG2, ARG3, SARG4);
+ PRE_REG_READ4(long, "lwp_cond_wait", vki_lwp_cond_t *, cvp,
+ vki_lwp_mutex_t *, mp, vki_timespec_t *, tsp, int, check_part);
+
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
+ vki_lwp_mutex_t *mp = (vki_lwp_mutex_t *) ARG2;
+ PRE_FIELD_READ("lwp_cond_wait(cvp->type)", cvp->vki_cond_type);
+ PRE_FIELD_READ("lwp_cond_wait(cvp->waiters_kernel)",
+ cvp->vki_cond_waiters_kernel);
+ PRE_FIELD_READ("lwp_cond_wait(mp->mutex_type)", mp->vki_mutex_type);
+ PRE_FIELD_WRITE("lwp_cond_wait(mp->mutex_waiters)", mp->vki_mutex_waiters);
+ if (ARG3 != 0)
+ PRE_MEM_READ("lwp_cond_wait(tsp)", ARG3, sizeof(vki_timespec_t));
+}
+
+POST(sys_lwp_cond_wait)
+{
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
+ vki_lwp_mutex_t *mp = (vki_lwp_mutex_t *) ARG2;
+ POST_FIELD_WRITE(cvp->vki_cond_waiters_kernel);
+ POST_FIELD_WRITE(mp->vki_mutex_waiters);
+ if (ARG3 != 0)
+ POST_MEM_WRITE(ARG3, sizeof(vki_timespec_t));
+}
+
PRE(sys_lwp_cond_broadcast)
{
/* int lwp_cond_broadcast(lwp_cond_t *cvp); */
- vki_lwp_cond_t *cvp = (vki_lwp_cond_t*)ARG1;
*flags |= SfMayBlock;
PRINT("sys_lwp_cond_broadcast ( %#lx )", ARG1);
- PRE_REG_READ1(long, "lwp_cond_broadcast", lwp_cond_t *, cvp);
+ PRE_REG_READ1(long, "lwp_cond_broadcast", vki_lwp_cond_t *, cvp);
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
PRE_FIELD_READ("lwp_cond_broadcast(cvp->type)", cvp->vki_cond_type);
PRE_FIELD_READ("lwp_cond_broadcast(cvp->waiters_kernel)",
cvp->vki_cond_waiters_kernel);
@@ -7006,7 +7037,7 @@
POST(sys_lwp_cond_broadcast)
{
- vki_lwp_cond_t *cvp = (vki_lwp_cond_t*)ARG1;
+ vki_lwp_cond_t *cvp = (vki_lwp_cond_t *) ARG1;
POST_FIELD_WRITE(cvp->vki_cond_waiters_kernel);
}
@@ -10375,6 +10406,7 @@
SOLX_(__NR_lwp_private, sys_lwp_private), /* 166 */
SOLXY(__NR_lwp_wait, sys_lwp_wait), /* 167 */
SOLXY(__NR_lwp_mutex_wakeup, sys_lwp_mutex_wakeup), /* 168 */
+ SOLXY(__NR_lwp_cond_wait, sys_lwp_cond_wait), /* 170 */
SOLX_(__NR_lwp_cond_broadcast, sys_lwp_cond_broadcast), /* 172 */
SOLXY(__NR_pread, sys_pread), /* 173 */
SOLX_(__NR_pwrite, sys_pwrite), /* 174 */
Modified: trunk/include/vki/vki-scnums-solaris.h
==============================================================================
--- trunk/include/vki/vki-scnums-solaris.h (original)
+++ trunk/include/vki/vki-scnums-solaris.h Fri Oct 16 13:20:20 2015
@@ -224,7 +224,7 @@
#define __NR_lwp_private SYS_lwp_private
#define __NR_lwp_wait SYS_lwp_wait
#define __NR_lwp_mutex_wakeup SYS_lwp_mutex_wakeup
-//#define __NR_lwp_cond_wait SYS_lwp_cond_wait
+#define __NR_lwp_cond_wait SYS_lwp_cond_wait
//#define __NR_lwp_cond_signal SYS_lwp_cond_signal
#define __NR_lwp_cond_broadcast SYS_lwp_cond_broadcast
#define __NR_pread SYS_pread
Modified: trunk/memcheck/tests/solaris/scalar.c
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.c (original)
+++ trunk/memcheck/tests/solaris/scalar.c Fri Oct 16 13:20:20 2015
@@ -2107,7 +2107,8 @@
SY(SYS_lwp_mutex_wakeup, x0, x0); FAIL;
/* SYS_lwp_cond_wait 170 */
- /* XXX Missing wrapper. */
+ GO(SYS_lwp_cond_wait, "4s 5m");
+ SY(SYS_lwp_cond_wait, x0 + 1, x0 + 1, x0 + 1, x0); FAIL;
/* SYS_lwp_cond_signal 171 */
/* XXX Missing wrapper. */
Modified: trunk/memcheck/tests/solaris/scalar.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.stderr.exp (original)
+++ trunk/memcheck/tests/solaris/scalar.stderr.exp Fri Oct 16 13:20:20 2015
@@ -2591,6 +2591,41 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
---------------------------------------------------------
+170: SYS_lwp_cond_wait 4s 5m
+---------------------------------------------------------
+Syscall param lwp_cond_wait(cvp) contains uninitialised byte(s)
+ ...
+
+Syscall param lwp_cond_wait(mp) contains uninitialised byte(s)
+ ...
+
+Syscall param lwp_cond_wait(tsp) contains uninitialised byte(s)
+ ...
+
+Syscall param lwp_cond_wait(check_part) contains uninitialised byte(s)
+ ...
+
+Syscall param lwp_cond_wait(cvp->type) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lwp_cond_wait(cvp->waiters_kernel) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lwp_cond_wait(mp->mutex_type) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lwp_cond_wait(mp->mutex_waiters) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param lwp_cond_wait(tsp) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
172: SYS_lwp_cond_broadcast 1s 2m
---------------------------------------------------------
Syscall param lwp_cond_broadcast(cvp) contains uninitialised byte(s)
|