From: Mark Wielaard Date: Mon, 1 Feb 2021 21:46:43 +0000 (+0100) Subject: Handle Iop_NegF16, Iop_AbsF16 and Iop_SqrtF16 as non-trapping. X-Git-Tag: VALGRIND_3_17_0~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d42a89fc9a4f90af07d93fe040c288b11f1d06ae;p=thirdparty%2Fvalgrind.git Handle Iop_NegF16, Iop_AbsF16 and Iop_SqrtF16 as non-trapping. Add Iop_NegF16, Iop_AbsF16 and Iop_SqrtF16 to VEX/priv/ir_defs.c primopMightTrap. Also rewrite case statement slightly so GCC will warn if an enumeration value is missed. --- diff --git a/VEX/priv/ir_defs.c b/VEX/priv/ir_defs.c index 9940903b3a..1b8cffb771 100644 --- a/VEX/priv/ir_defs.c +++ b/VEX/priv/ir_defs.c @@ -1410,6 +1410,7 @@ Bool primopMightTrap ( IROp op ) case Iop_AddF64r32: case Iop_SubF64r32: case Iop_MulF64r32: case Iop_DivF64r32: case Iop_NegF64: case Iop_AbsF64: case Iop_NegF32: case Iop_AbsF32: case Iop_SqrtF64: case Iop_SqrtF32: + case Iop_NegF16: case Iop_AbsF16: case Iop_SqrtF16: case Iop_CmpF64: case Iop_CmpF32: case Iop_CmpF128: case Iop_F64toI16S: case Iop_F64toI32S: case Iop_F64toI64S: case Iop_F64toI64U: case Iop_F64toI32U: case Iop_I32StoF64: case Iop_I64StoF64: @@ -1773,10 +1774,12 @@ Bool primopMightTrap ( IROp op ) case Iop_Rotx32: case Iop_Rotx64: return False; - default: - vpanic("primopMightTrap"); + case Iop_INVALID: case Iop_LAST: + vpanic("primopMightTrap INVALID, LAST"); } + + vpanic("primopMightTrap"); } void ppIRExpr ( const IRExpr* e )