From d42a89fc9a4f90af07d93fe040c288b11f1d06ae Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 1 Feb 2021 22:46:43 +0100 Subject: [PATCH] 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. --- VEX/priv/ir_defs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 ) -- 2.47.2