Bug 1019414 - IonMonkey: The exitCodePatch offset needs to be converted to its final offset after assembly. r=jandem
authorDouglas Crosher <dtc-moz@scieneer.com>
Tue, 03 Jun 2014 16:39:31 +1000
changeset 206951 1f31c3d28c63b69a45d6c39449e074290274ef7e
parent 206950 85db97aa8845829bda33e6c8ad23c725a044ca10
child 206952 7371145721bf2bb322303f1c042634b4ef0468e5
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)
reviewersjandem
bugs1019414
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 1019414 - IonMonkey: The exitCodePatch offset needs to be converted to its final offset after assembly. r=jandem
js/src/jit/IonMacroAssembler.h
--- a/js/src/jit/IonMacroAssembler.h
+++ b/js/src/jit/IonMacroAssembler.h
@@ -900,16 +900,17 @@ class MacroAssembler : public MacroAssem
     }
 
     void link(JitCode *code) {
         JS_ASSERT(!oom());
         // If this code can transition to C++ code and witness a GC, then we need to store
         // the JitCode onto the stack in order to GC it correctly.  exitCodePatch should
         // be unset if the code never needed to push its JitCode*.
         if (hasEnteredExitFrame()) {
+            exitCodePatch_.fixup(this);
             patchDataWithValueCheck(CodeLocationLabel(code, exitCodePatch_),
                                     ImmPtr(code),
                                     ImmPtr((void*)-1));
         }
 
     }
 
     // Generates code used to complete a bailout.