Ignore:
Timestamp:
Oct 30, 2018, 11:32:20 AM (7 years ago)
Author:
Ross Kirsling
Message:

useProbeOSRExit causes failures for Win64 DFG JIT
https://bugs.webkit.org/show_bug.cgi?id=190656

Reviewed by Keith Miller.

  • assembler/ProbeContext.cpp:

(JSC::Probe::executeProbe):
If lowWatermark is expected to equal lowWatermarkFromVisitingDirtyPages *regardless* of the input param,
then let's just call lowWatermarkFromVisitingDirtyPages instead.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):
The result of VariableEventStream::reconstruct appears to be inappropriate for direct use as a stack pointer offset;
mimic the non-probe case and use requiredRegisterCountForExit from DFGCommonData instead.
(Also, stop redundantly setting the stack pointer twice in a row.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/ProbeContext.cpp

    r225301 r237595  
    6161    if (context.hasWritesToFlush()) {
    6262        context.stack().setSavedStackPointer(state->cpu.sp());
    63         void* lowWatermark = context.stack().lowWatermark(state->cpu.sp());
     63        void* lowWatermark = context.stack().lowWatermarkFromVisitingDirtyPages();
    6464        state->cpu.sp() = std::min(lowWatermark, state->cpu.sp());
    6565
Note: See TracChangeset for help on using the changeset viewer.