Bug 1023158 - Add writeDataRelocation() call, r=jandem.
authorBrian Hackett <bhackett1024@gmail.com>
Mon, 11 Aug 2014 08:40:26 -0800
changeset 198866 36814bee62770f77330d8bf7c5e674bc8170cfc0
parent 198865 d7ddaaa69b5a2c6622bc20deff8a0d317eb0b19c
child 198867 ee55ae0b92ae43c0d07c47c44a61ec2a9635e010
push id47516
push userbhackett@mozilla.com
push dateMon, 11 Aug 2014 16:40:46 +0000
treeherdermozilla-inbound@36814bee6277 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem
bugs1023158
milestone34.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 1023158 - Add writeDataRelocation() call, r=jandem.
js/src/jit/x64/MacroAssembler-x64.h
--- a/js/src/jit/x64/MacroAssembler-x64.h
+++ b/js/src/jit/x64/MacroAssembler-x64.h
@@ -196,17 +196,23 @@ class MacroAssemblerX64 : public MacroAs
         pushValue(val);
         framePushed_ += sizeof(Value);
     }
     void popValue(ValueOperand val) {
         pop(val.valueReg());
     }
     void pushValue(const Value &val) {
         jsval_layout jv = JSVAL_TO_IMPL(val);
-        push(ImmWord(jv.asBits));
+        if (val.isMarkable()) {
+            movWithPatch(ImmWord(jv.asBits), ScratchReg);
+            writeDataRelocation(val);
+            push(ScratchReg);
+        } else {
+            push(ImmWord(jv.asBits));
+        }
     }
     void pushValue(JSValueType type, Register reg) {
         boxValue(type, reg, ScratchReg);
         push(ScratchReg);
     }
     void pushValue(const Address &addr) {
         push(Operand(addr));
     }