Bug 862501 - Make baseline pass more accurate stack-pointer refeference for pushed SPS profiler frames. r=jandem

This commit is contained in:
Kannan Vijayan 2013-04-18 12:20:45 -04:00
parent d93de46ed5
commit 474a643a4e
2 changed files with 3 additions and 2 deletions

View File

@ -1016,6 +1016,7 @@ ICProfiler_PushFunction::Compiler::generateStubCode(MacroAssembler &masm)
masm.spsPushFrame(&cx->runtime->spsProfiler,
Address(BaselineStubReg, ICProfiler_PushFunction::offsetOfStr()),
Address(BaselineStubReg, ICProfiler_PushFunction::offsetOfScript()),
BaselineFrameReg,
scratch,
scratch2);

View File

@ -779,7 +779,7 @@ class MacroAssembler : public MacroAssemblerSpecific
}
void spsPushFrame(SPSProfiler *p, const Address &str, const Address &script,
Register temp, Register temp2)
Register framePtr, Register temp, Register temp2)
{
Label stackFull;
spsProfileEntryAddress(p, 0, temp, &stackFull);
@ -790,7 +790,7 @@ class MacroAssembler : public MacroAssemblerSpecific
loadPtr(script, temp2);
storePtr(temp2, Address(temp, ProfileEntry::offsetOfScript()));
storePtr(ImmWord((void*) 0), Address(temp, ProfileEntry::offsetOfStackAddress()));
storePtr(framePtr, Address(temp, ProfileEntry::offsetOfStackAddress()));
// Store 0 for PCIdx because that's what interpreter does.
// (See Probes::enterScript, which calls spsProfiler.enter, which pushes an entry