Fix bug 715662, r=dvander a=akeybl
authorBrian Hackett <bhackett1024@gmail.com>
Tue, 10 Jan 2012 17:06:22 -0800
changeset 84894 c6ef2c476d17e9ce5b687d5f2cd4ca120ab05ff9
parent 84893 ebace43f9617aa40d5ec50393be58d64823937ba
child 84895 10705251c03833164b5c5df90fdd8f38950280dd
push id519
push userakeybl@mozilla.com
push dateWed, 01 Feb 2012 00:38:35 +0000
treeherdermozilla-beta@788ea1ef610b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdvander, akeybl
bugs715662
milestone11.0a2
Fix bug 715662, r=dvander a=akeybl
js/src/methodjit/FrameState.cpp
--- a/js/src/methodjit/FrameState.cpp
+++ b/js/src/methodjit/FrameState.cpp
@@ -877,18 +877,21 @@ FrameState::discardForJoin(RegisterAlloc
         if (reg.isReg()) {
             fe->data.setRegister(reg.reg());
         } else {
             fe->setType(JSVAL_TYPE_DOUBLE);
             fe->data.setFPRegister(reg.fpreg());
         }
 
         regstate(reg).associate(fe, RematInfo::DATA);
-        if (!alloc->synced(reg))
+        if (!alloc->synced(reg)) {
             fe->data.unsync();
+            if (!reg.isReg())
+                fe->type.unsync();
+        }
     }
 
     a->sp = a->spBase + stackDepth;
 
     for (unsigned i = 0; i < stackDepth; i++)
         extraArray[a->spBase + i - entries].reset();
 
     return true;