]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
ARM64 specific changes for BZ 507033
authorFlorian Krohm <flo2030@eich-krohm.de>
Sat, 2 Aug 2025 13:22:50 +0000 (13:22 +0000)
committerFlorian Krohm <flo2030@eich-krohm.de>
Sat, 2 Aug 2025 13:22:50 +0000 (13:22 +0000)
Replace the deprecated Iop_Clz64 with Iop_ClzNat64 which have the
same semantics for non-zero inputs.

Part of fixing https://bugs.kde.org/show_bug.cgi?id=507033

VEX/priv/guest_arm64_toIR.c
VEX/priv/host_arm64_isel.c

index e6b92c7a04f4c5f1f5e8fb3b9ba21cee18edc4b8..f5b445489e29378cf0c635efa06b8abd5de3b6f8 100644 (file)
@@ -3504,12 +3504,12 @@ Bool dis_ARM64_data_processing_register(/*MB_OUT*/DisResult* dres,
       if (is64) {
          assign(dst, IRExpr_ITE(binop(Iop_CmpEQ64, mkexpr(srcZ), mkU64(0)),
                                 mkU64(isCLS ? 63 : 64),
-                                unop(Iop_Clz64, mkexpr(srcZ))));
+                                unop(Iop_ClzNat64, mkexpr(srcZ))));
          putIReg64orZR(dd, mkexpr(dst));
       } else {
          assign(dst, IRExpr_ITE(binop(Iop_CmpEQ64, mkexpr(srcZ), mkU64(0)),
                                 mkU64(isCLS ? 31 : 32),
-                                unop(Iop_Clz64, mkexpr(srcZ))));
+                                unop(Iop_ClzNat64, mkexpr(srcZ))));
          putIReg32orZR(dd, unop(Iop_64to32, mkexpr(dst)));
       }
       DIP("cl%c %s, %s\n", isCLS ? 's' : 'z',
index 34c526559010b695e0e5a93ac154ad595d99dd06..190d8c8f127700d8d643a75d74b48d5061dcb3c2 100644 (file)
@@ -2048,7 +2048,7 @@ static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e )
             addInstr(env, ARM64Instr_Unary(dst, src, ARM64un_NOT));
             return dst;
          }
-         case Iop_Clz64: {
+         case Iop_ClzNat64: {
             HReg dst = newVRegI(env);
             HReg src = iselIntExpr_R(env, e->Iex.Unop.arg);
             addInstr(env, ARM64Instr_Unary(dst, src, ARM64un_CLZ));