summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiaxun Yang <jiaxun.yang@flygoat.com>2020-05-12 12:40:12 +0800
committerMoonchild <moonchild@palemoon.org>2020-05-20 14:02:28 +0000
commite44709892bd3dee27ccc70564427a4e525185158 (patch)
tree1ccd401b02baf4218e3989b31f1fe735f5977d0a
parent237f8d7ebdeeb2e30b8a9044eab60e90dc8c4c8b (diff)
downloadUXP-e44709892bd3dee27ccc70564427a4e525185158.tar
UXP-e44709892bd3dee27ccc70564427a4e525185158.tar.gz
UXP-e44709892bd3dee27ccc70564427a4e525185158.tar.lz
UXP-e44709892bd3dee27ccc70564427a4e525185158.tar.xz
UXP-e44709892bd3dee27ccc70564427a4e525185158.zip
Bug 1424978 - IonMonkey: MIPS64: Fix boxValue function
Tag: #1542
-rw-r--r--js/src/jit/mips64/MacroAssembler-mips64.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/js/src/jit/mips64/MacroAssembler-mips64.h b/js/src/jit/mips64/MacroAssembler-mips64.h
index 027ef4063..4991c264f 100644
--- a/js/src/jit/mips64/MacroAssembler-mips64.h
+++ b/js/src/jit/mips64/MacroAssembler-mips64.h
@@ -470,7 +470,12 @@ class MacroAssemblerMIPS64Compat : public MacroAssemblerMIPS64
JSValueTag tag = (JSValueTag)JSVAL_TYPE_TO_TAG(type);
ma_li(dest, Imm32(tag));
ma_dsll(dest, dest, Imm32(JSVAL_TAG_SHIFT));
- ma_dins(dest, src, Imm32(0), Imm32(JSVAL_TAG_SHIFT));
+
+ if (type == JSVAL_TYPE_INT32 || type == JSVAL_TYPE_BOOLEAN) {
+ ma_dins(dest, src, Imm32(0), Imm32(32));
+ } else {
+ ma_dins(dest, src, Imm32(0), Imm32(JSVAL_TAG_SHIFT));
+ }
}
void storeValue(ValueOperand val, Operand dst);