From 2bc008502114f335640debc108f9b40d604ba80f Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 24 Apr 2026 14:30:54 -0400 Subject: [PATCH] Issue #3049 - Fix loongarch64 string extraction in JIT stubs --- js/src/jit/MacroAssembler.h | 6 ++++-- js/src/jit/loongarch64/MacroAssembler-loongarch64.cpp | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/js/src/jit/MacroAssembler.h b/js/src/jit/MacroAssembler.h index af7de1c16a..bf04575821 100644 --- a/js/src/jit/MacroAssembler.h +++ b/js/src/jit/MacroAssembler.h @@ -1656,10 +1656,12 @@ class MacroAssembler : public MacroAssemblerSpecific Register temp, Label* failure); Register extractString(const Address& address, Register scratch) { - return extractObject(address, scratch); + unboxString(address, scratch); + return scratch; } Register extractString(const ValueOperand& value, Register scratch) { - return extractObject(value, scratch); + unboxString(value, scratch); + return scratch; } using MacroAssemblerSpecific::extractTag; diff --git a/js/src/jit/loongarch64/MacroAssembler-loongarch64.cpp b/js/src/jit/loongarch64/MacroAssembler-loongarch64.cpp index b9c67dd958..d39eda722a 100644 --- a/js/src/jit/loongarch64/MacroAssembler-loongarch64.cpp +++ b/js/src/jit/loongarch64/MacroAssembler-loongarch64.cpp @@ -2764,6 +2764,10 @@ template void MacroAssembler::storeUnboxedValue(const ConstantOrRegister& value, MIRType valueType, const Address& dest, MIRType slotType); +template void MacroAssembler::storeUnboxedValue(const ConstantOrRegister& value, + MIRType valueType, + const BaseIndex& dest, + MIRType slotType); template void MacroAssembler::storeUnboxedValue( const ConstantOrRegister& value, MIRType valueType, const BaseObjectElementIndex& dest, MIRType slotType);