|
From: Julian S. <se...@so...> - 2021-07-13 10:53:15
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=61307ee83121aa5f0b57a12a80e90fc2f414380a commit 61307ee83121aa5f0b57a12a80e90fc2f414380a Author: Julian Seward <js...@ac...> Date: Tue Jul 13 12:52:10 2021 +0200 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: --- VEX/priv/host_arm64_isel.c | 1 + 1 file changed, 1 insertion(+) 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); |