зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1021277 - Use copy flag for JIT pseudostack frames; r=djvj
This commit is contained in:
Родитель
849d28a78b
Коммит
fa91e67f32
|
@ -1961,9 +1961,10 @@ MacroAssembler::spsMarkJit(SPSProfiler *p, Register framePtr, Register temp)
|
|||
// and won't be regenerated when SPS state changes.
|
||||
spsProfileEntryAddressSafe(p, 0, temp, &stackFull);
|
||||
|
||||
// Push a C++ frame with non-copy label
|
||||
storePtr(ImmPtr(enterJitLabel), Address(temp, ProfileEntry::offsetOfLabel()));
|
||||
storePtr(framePtr, Address(temp, ProfileEntry::offsetOfSpOrScript()));
|
||||
store32(Imm32(ProfileEntry::NullPCOffset), Address(temp, ProfileEntry::offsetOfLineOrPc()));
|
||||
store32(Imm32(0), Address(temp, ProfileEntry::offsetOfLineOrPc()));
|
||||
store32(Imm32(ProfileEntry::IS_CPP_ENTRY), Address(temp, ProfileEntry::offsetOfFlags()));
|
||||
|
||||
/* Always increment the stack size, whether or not we actually pushed. */
|
||||
|
|
|
@ -1086,10 +1086,11 @@ class MacroAssembler : public MacroAssemblerSpecific
|
|||
Label stackFull;
|
||||
spsProfileEntryAddress(p, 0, temp, &stackFull);
|
||||
|
||||
// Push a JS frame with a copy label
|
||||
storePtr(ImmPtr(str), Address(temp, ProfileEntry::offsetOfLabel()));
|
||||
storePtr(ImmGCPtr(s), Address(temp, ProfileEntry::offsetOfSpOrScript()));
|
||||
store32(Imm32(ProfileEntry::NullPCOffset), Address(temp, ProfileEntry::offsetOfLineOrPc()));
|
||||
store32(Imm32(0), Address(temp, ProfileEntry::offsetOfFlags()));
|
||||
store32(Imm32(ProfileEntry::FRAME_LABEL_COPY), Address(temp, ProfileEntry::offsetOfFlags()));
|
||||
|
||||
/* Always increment the stack size, whether or not we actually pushed. */
|
||||
bind(&stackFull);
|
||||
|
@ -1104,6 +1105,7 @@ class MacroAssembler : public MacroAssemblerSpecific
|
|||
Label stackFull;
|
||||
spsProfileEntryAddressSafe(p, 0, temp, &stackFull);
|
||||
|
||||
// Push a JS frame with a copy label
|
||||
loadPtr(str, temp2);
|
||||
storePtr(temp2, Address(temp, ProfileEntry::offsetOfLabel()));
|
||||
|
||||
|
@ -1114,7 +1116,7 @@ class MacroAssembler : public MacroAssemblerSpecific
|
|||
// (See probes::EnterScript, which calls spsProfiler.enter, which pushes an entry
|
||||
// with 0 pcIdx).
|
||||
store32(Imm32(0), Address(temp, ProfileEntry::offsetOfLineOrPc()));
|
||||
store32(Imm32(0), Address(temp, ProfileEntry::offsetOfFlags()));
|
||||
store32(Imm32(ProfileEntry::FRAME_LABEL_COPY), Address(temp, ProfileEntry::offsetOfFlags()));
|
||||
|
||||
/* Always increment the stack size, whether or not we actually pushed. */
|
||||
bind(&stackFull);
|
||||
|
|
Загрузка…
Ссылка в новой задаче