commit ba73f8d2ebe4b5fe8163ee5ab806f0e50961ebdf Author: Andreas Arnez Date: Tue Nov 3 18:17:30 2020 +0100 Bug 428648 - s390x: Force 12-bit amode for vector loads in isel Similar to Bug 417452, where the instruction selector sometimes attempted to generate vector stores with a 20-bit displacement, the same problem has now been reported with vector loads. The problem is caused in s390_isel_vec_expr_wrk(), where the addressing mode is generated with s390_isel_amode() instead of s390_isel_amode_short(). This is fixed. diff --git a/VEX/priv/host_s390_isel.c b/VEX/priv/host_s390_isel.c index 2f80dd850..134f3eb6f 100644 --- a/VEX/priv/host_s390_isel.c +++ b/VEX/priv/host_s390_isel.c @@ -3741,7 +3741,7 @@ s390_isel_vec_expr_wrk(ISelEnv *env, IRExpr *expr) /* --------- LOAD --------- */ case Iex_Load: { HReg dst = newVRegV(env); - s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr); + s390_amode *am = s390_isel_amode_short(env, expr->Iex.Load.addr); if (expr->Iex.Load.end != Iend_BE) goto irreducible;