From: Florian K. <fk...@so...> - 2025-10-16 14:24:31
|
https://sourceware.org/cgit/valgrind/commit/?id=3c3262fc702e829fc13192d1ca1de1e2de8987b3 commit 3c3262fc702e829fc13192d1ca1de1e2de8987b3 Author: Florian Krohm <fl...@ei...> Date: Thu Oct 16 14:23:01 2025 +0000 Revert 644d68e9501dd5679194dd5c8e0d3ce24764a1d8 That change broke none/tests/ppc64/test_isa_3_1_VRT. Not good. Add a comment as to why a vector type is needed. Diff: --- 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 afb14fcc5d..1889c97187 100644 --- a/VEX/priv/ir_defs.c +++ b/VEX/priv/ir_defs.c @@ -3724,10 +3724,13 @@ void typeOfPrimop ( IROp op, case Iop_PwExtUSMulQAdd8x16: BINARY(Ity_V128,Ity_V128, Ity_V128); - case Iop_DivU128: case Iop_DivS128: + /* Note: Semantically, operands and result of these IROps are 128-bit + integers (c.f. libvex_ir.h). The Ity_V128 type is used here to + indicate that those values require a vector register to be stored. */ + case Iop_DivU128: case Iop_DivS128: case Iop_DivU128E: case Iop_DivS128E: case Iop_ModU128: case Iop_ModS128: - BINARY(Ity_I128,Ity_I128, Ity_I128); + BINARY(Ity_V128,Ity_V128, Ity_V128); case Iop_2xMultU64Add128CarryOut: case Iop_Perm8x16x2: |