Bug 1017036 - IonMonkey MIPS: Fix minor build issues. r=nbp
authorBranislav Rankov <branislav.rankov@imgtec.com>
Tue, 03 Jun 2014 14:17:20 +0200
changeset 206946 25644e63b63f979fad3ac17e5a5ba10e2e26bcd6
parent 206945 14d81aae75d1971e3bbe8478d85af12221d2c029
child 206947 94ea45f19f1f82977e2865fe8ab59dcd708aa75c
push id494
push userraliiev@mozilla.com
push dateMon, 25 Aug 2014 18:42:16 +0000
treeherdermozilla-release@a3cc3e46b571 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnbp
bugs1017036
milestone32.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1017036 - IonMonkey MIPS: Fix minor build issues. r=nbp
js/src/jit/mips/MacroAssembler-mips.cpp
js/src/jit/mips/MacroAssembler-mips.h
--- a/js/src/jit/mips/MacroAssembler-mips.cpp
+++ b/js/src/jit/mips/MacroAssembler-mips.cpp
@@ -245,17 +245,17 @@ MacroAssemblerMIPS::ma_move(Register rd,
 {
     as_or(rd, rs, zero);
 }
 
 void
 MacroAssemblerMIPS::ma_li(Register dest, ImmGCPtr ptr)
 {
     writeDataRelocation(ptr);
-    ma_liPatchable(dest, Imm32(ptr.value));
+    ma_liPatchable(dest, Imm32(uintptr_t(ptr.value)));
 }
 
 void
 MacroAssemblerMIPS::ma_li(Register dest, AbsoluteLabel *label)
 {
     MOZ_ASSERT(!label->bound());
     // Thread the patch list through the unpatched address word in the
     // instruction stream.
@@ -2491,16 +2491,22 @@ MacroAssemblerMIPSCompat::unboxString(co
 
 void
 MacroAssemblerMIPSCompat::unboxObject(const ValueOperand &src, Register dest)
 {
     ma_move(dest, src.payloadReg());
 }
 
 void
+MacroAssemblerMIPSCompat::unboxObject(const Address &src, Register dest)
+{
+    ma_lw(dest, Address(src.base, src.offset + PAYLOAD_OFFSET));
+}
+
+void
 MacroAssemblerMIPSCompat::unboxValue(const ValueOperand &src, AnyRegister dest)
 {
     if (dest.isFloat()) {
         Label notInt32, end;
         branchTestInt32(Assembler::NotEqual, src, &notInt32);
         convertInt32ToDouble(src.payloadReg(), dest.fpu());
         ma_b(&end, ShortJump);
         bind(&notInt32);
--- a/js/src/jit/mips/MacroAssembler-mips.h
+++ b/js/src/jit/mips/MacroAssembler-mips.h
@@ -489,17 +489,17 @@ class MacroAssemblerMIPSCompat : public 
 
     CodeOffsetLabel pushWithPatch(ImmWord imm) {
         CodeOffsetLabel label = movWithPatch(imm, ScratchRegister);
         ma_push(ScratchRegister);
         return label;
     }
 
     CodeOffsetLabel movWithPatch(ImmWord imm, Register dest) {
-        CodeOffsetLabel label = currentOffset();
+        CodeOffsetLabel label = CodeOffsetLabel(currentOffset());
         ma_liPatchable(dest, Imm32(imm.value));
         return label;
     }
     CodeOffsetLabel movWithPatch(ImmPtr imm, Register dest) {
         return movWithPatch(ImmWord(uintptr_t(imm.value)), dest);
     }
 
     void jump(Label *label) {
@@ -542,16 +542,17 @@ class MacroAssemblerMIPSCompat : public 
     void unboxInt32(const Address &src, Register dest);
     void unboxBoolean(const ValueOperand &operand, Register dest);
     void unboxBoolean(const Address &src, Register dest);
     void unboxDouble(const ValueOperand &operand, FloatRegister dest);
     void unboxDouble(const Address &src, FloatRegister dest);
     void unboxString(const ValueOperand &operand, Register dest);
     void unboxString(const Address &src, Register dest);
     void unboxObject(const ValueOperand &src, Register dest);
+    void unboxObject(const Address &src, Register dest);
     void unboxValue(const ValueOperand &src, AnyRegister dest);
     void unboxPrivate(const ValueOperand &src, Register dest);
 
     void notBoolean(const ValueOperand &val) {
         as_xori(val.payloadReg(), val.payloadReg(), 1);
     }
 
     // boxing code