commit 402214953fc203f0bfcc27a4c9c2adaf552f70fd
parent 3951789f40b800fcda77edb7eed51adeffcf2406
Author: André Bargull <andre.bargull@gmail.com>
Date: Thu, 23 Oct 2025 12:23:35 +0000
Bug 1995707 - Part 3: Don't use xor64 to zero Int64 on arm32. r=spidermonkey-reviewers,jandem
Differential Revision: https://phabricator.services.mozilla.com/D269553
Diffstat:
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/js/src/jit-test/tests/wasm/ion-adhoc-multiplatform.js b/js/src/jit-test/tests/wasm/ion-adhoc-multiplatform.js
@@ -59,9 +59,8 @@ codegenTestMultiplatform_adhoc(
x86: `xor %eax, %eax
xor %edx, %edx`,
arm64: `mov x0, xzr`,
- arm: // bizarrely inconsistent with the 32-bit case
- `eor r0, r0, r0
- eor r1, r1, r1` },
+ arm: `mov r0, #0
+ mov r1, #0` },
{x86: {no_prefix:true}}
);
@@ -206,8 +205,8 @@ codegenTestMultiplatform_adhoc(
x86: `xor %eax, %eax
xor %edx, %edx`,
arm64: `mov x0, xzr`,
- arm: `eor r0, r0, r0
- eor r1, r1, r1` },
+ arm: `mov r0, #0
+ mov r1, #0` },
{x86: {no_prefix:true}}
);
diff --git a/js/src/jit/arm/CodeGenerator-arm.cpp b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -433,7 +433,7 @@ void CodeGenerator::visitMulI64(LMulI64* lir) {
masm.neg64(ToRegister64(lhs));
return;
case 0:
- masm.xor64(ToRegister64(lhs), ToRegister64(lhs));
+ masm.move64(Imm64(0), ToRegister64(lhs));
return;
case 1:
// nop