Bug 1417399 - Remove unnecessary checks for lazy link stub in LazyLinkTopActivation. r=nbp

--HG--
extra : rebase_source : 1be7cb018b682833c2e182fa1c62d4e18769e283
This commit is contained in:
Jan de Mooij 2017-11-22 13:06:02 +01:00
Родитель 038ba8c7c4
Коммит cbb37dbb2b
3 изменённых файлов: 3 добавлений и 20 удалений

Просмотреть файл

@ -8029,8 +8029,6 @@ JitRuntime::generateLazyLinkStub(MacroAssembler& masm)
masm.popReturnAddress(); masm.popReturnAddress();
#endif #endif
masm.jump(ReturnReg); masm.jump(ReturnReg);
lazyLinkStubEndOffset_ = masm.currentOffset();
} }
void void

Просмотреть файл

@ -203,7 +203,6 @@ JitRuntime::JitRuntime(JSRuntime* rt)
argumentsRectifierReturnOffset_(0), argumentsRectifierReturnOffset_(0),
invalidatorOffset_(0), invalidatorOffset_(0),
lazyLinkStubOffset_(0), lazyLinkStubOffset_(0),
lazyLinkStubEndOffset_(0),
interpreterStubOffset_(0), interpreterStubOffset_(0),
debugTrapHandler_(nullptr), debugTrapHandler_(nullptr),
baselineDebugModeOSRHandler_(nullptr), baselineDebugModeOSRHandler_(nullptr),
@ -2799,17 +2798,8 @@ InvalidateActivation(FreeOp* fop, const JitActivationIterator& activations, bool
if (!frame.isIonScripted()) if (!frame.isIonScripted())
continue; continue;
JitRuntime* jrt = fop->runtime()->jitRuntime();
bool calledFromLinkStub = false;
if (frame.returnAddressToFp() >= jrt->lazyLinkStub().value &&
frame.returnAddressToFp() < jrt->lazyLinkStubEnd().value)
{
calledFromLinkStub = true;
}
// See if the frame has already been invalidated. // See if the frame has already been invalidated.
if (!calledFromLinkStub && frame.checkInvalidation()) if (frame.checkInvalidation())
continue; continue;
JSScript* script = frame.script(); JSScript* script = frame.script();
@ -2866,9 +2856,8 @@ InvalidateActivation(FreeOp* fop, const JitActivationIterator& activations, bool
} }
ionCode->setInvalidated(); ionCode->setInvalidated();
// Don't adjust OSI points in the linkStub (which don't exist), or in a // Don't adjust OSI points in a bailout path.
// bailout path. if (frame.isBailoutJS())
if (calledFromLinkStub || frame.isBailoutJS())
continue; continue;
// Write the delta (from the return address offset to the // Write the delta (from the return address offset to the

Просмотреть файл

@ -134,7 +134,6 @@ class JitRuntime
// Thunk called to finish compilation of an IonScript. // Thunk called to finish compilation of an IonScript.
ExclusiveAccessLockWriteOnceData<uint32_t> lazyLinkStubOffset_; ExclusiveAccessLockWriteOnceData<uint32_t> lazyLinkStubOffset_;
ExclusiveAccessLockWriteOnceData<uint32_t> lazyLinkStubEndOffset_;
// Thunk to enter the interpreter from JIT code. // Thunk to enter the interpreter from JIT code.
ExclusiveAccessLockWriteOnceData<uint32_t> interpreterStubOffset_; ExclusiveAccessLockWriteOnceData<uint32_t> interpreterStubOffset_;
@ -315,9 +314,6 @@ class JitRuntime
TrampolinePtr lazyLinkStub() const { TrampolinePtr lazyLinkStub() const {
return trampolineCode(lazyLinkStubOffset_); return trampolineCode(lazyLinkStubOffset_);
} }
TrampolinePtr lazyLinkStubEnd() const {
return trampolineCode(lazyLinkStubEndOffset_);
}
TrampolinePtr interpreterStub() const { TrampolinePtr interpreterStub() const {
return trampolineCode(interpreterStubOffset_); return trampolineCode(interpreterStubOffset_);
} }