From: Julian Seward Date: Tue, 13 Jul 2021 10:52:10 +0000 (+0200) Subject: Un-break arm64 isel following 22bae4b1544fc5d82f131ef8fde4cea7666112c2 X-Git-Tag: VALGRIND_3_18_0~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61307ee83121aa5f0b57a12a80e90fc2f414380a;p=thirdparty%2Fvalgrind.git Un-break arm64 isel following 22bae4b1544fc5d82f131ef8fde4cea7666112c2 22bae4b1544fc5d82f131ef8fde4cea7666112c2 introduced an iropt-level rewrite rule 64to16( 32Uto64 ( x )) --> 32to16(x) that creates Iop_32to16 nodes. The arm64 isel apparently has never seen these before and so asserts. This is a 1-liner fix. --- diff --git a/VEX/priv/host_arm64_isel.c b/VEX/priv/host_arm64_isel.c index 26b27f1f7c..4b1d8c8469 100644 --- a/VEX/priv/host_arm64_isel.c +++ b/VEX/priv/host_arm64_isel.c @@ -2188,6 +2188,7 @@ static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e ) case Iop_64to32: case Iop_64to16: case Iop_64to8: + case Iop_32to16: /* These are no-ops. */ return iselIntExpr_R(env, e->Iex.Unop.arg);