diff options
author | Jiaxun Yang <jiaxun.yang@flygoat.com> | 2020-05-12 12:40:11 +0800 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-05-20 14:02:21 +0000 |
commit | 237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b (patch) | |
tree | f06b38cae55e2acbaa62bc6898cfdfe9c20cf841 /js/src/jit/mips64/MacroAssembler-mips64.cpp | |
parent | 50010072877bea6ce0dff95a4c155d95ef419c20 (diff) | |
download | UXP-237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b.tar UXP-237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b.tar.gz UXP-237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b.tar.lz UXP-237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b.tar.xz UXP-237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b.zip |
Bug 1390802 - IonMonkey: MIPS64: Fix storeValue function
Tag: #1542
Diffstat (limited to 'js/src/jit/mips64/MacroAssembler-mips64.cpp')
-rw-r--r-- | js/src/jit/mips64/MacroAssembler-mips64.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/js/src/jit/mips64/MacroAssembler-mips64.cpp b/js/src/jit/mips64/MacroAssembler-mips64.cpp index f1ccc0b38..657fce93c 100644 --- a/js/src/jit/mips64/MacroAssembler-mips64.cpp +++ b/js/src/jit/mips64/MacroAssembler-mips64.cpp @@ -1788,7 +1788,11 @@ MacroAssemblerMIPS64Compat::storeValue(JSValueType type, Register reg, Address d ma_li(SecondScratchReg, ImmTag(JSVAL_TYPE_TO_TAG(type))); ma_dsll(SecondScratchReg, SecondScratchReg, Imm32(JSVAL_TAG_SHIFT)); - ma_dins(SecondScratchReg, reg, Imm32(0), Imm32(JSVAL_TAG_SHIFT)); + if (type == JSVAL_TYPE_INT32 || type == JSVAL_TYPE_BOOLEAN) { + ma_dins(SecondScratchReg, reg, Imm32(0), Imm32(32)); + } else { + ma_dins(SecondScratchReg, reg, Imm32(0), Imm32(JSVAL_TAG_SHIFT)); + } storePtr(SecondScratchReg, Address(dest.base, dest.offset)); } |