Just load payload when accessing scope object chains, bug 694247.
authorBrian Hackett <bhackett1024@gmail.com>
Thu, 13 Oct 2011 20:44:53 -0700
changeset 82898 ef7528a0fe211d47603119d32a196d137739dbc5
parent 82897 f852758f39d1df19ea0fecdd481bfa477877b2c9
child 82899 ba69a907d9a40ba799778a876fbcb70606efecc1
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)
bugs694247
milestone10.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
Just load payload when accessing scope object chains, bug 694247.
js/src/methodjit/PolyIC.cpp
--- a/js/src/methodjit/PolyIC.cpp
+++ b/js/src/methodjit/PolyIC.cpp
@@ -1364,17 +1364,17 @@ class ScopeNameCompiler : public PICStub
             masm.loadShape(pic.objReg, pic.shapeReg);
             Jump j = masm.branchPtr(Assembler::NotEqual, pic.shapeReg,
                                     ImmPtr(tobj->lastProperty()));
             if (!fails.append(j))
                 return error();
 
             /* Load the next link in the scope chain. */
             Address parent(pic.objReg, JSObject::offsetOfScopeChain());
-            masm.loadPtr(parent, pic.objReg);
+            masm.loadPayload(parent, pic.objReg);
 
             tobj = tobj->scopeChain();
         }
 
         if (tobj != getprop.holder)
             return disable("scope chain walk terminated early");
 
         return Lookup_Cacheable;
@@ -1749,17 +1749,17 @@ class BindNameCompiler : public PICStubC
                                          ImmPtr(scopeChain->lastProperty()));
 
         /* Walk up the scope chain. */
         JSObject *tobj = scopeChain;
         Address parent(pic.objReg, JSObject::offsetOfScopeChain());
         while (tobj && tobj != obj) {
             if (!IsCacheableNonGlobalScope(tobj))
                 return disable("non-cacheable obj in scope chain");
-            masm.loadPtr(parent, pic.objReg);
+            masm.loadPayload(parent, pic.objReg);
             masm.loadShape(pic.objReg, pic.shapeReg);
             Jump shapeTest = masm.branchPtr(Assembler::NotEqual, pic.shapeReg,
                                             ImmPtr(tobj->lastProperty()));
             if (!fails.append(shapeTest))
                 return error();
             tobj = tobj->scopeChain();
         }
         if (tobj != obj)