Closed Bug 1562602 Opened 2 years ago Closed 2 years ago

Fix some minor baseline interpreter issues


(Core :: JavaScript Engine: JIT, task, P1)




Tracking Status
firefox70 --- fixed


(Reporter: jandem, Assigned: jandem)




(5 files)

Patches for a few minor issues exposed by enabling for jit-tests on Try.

It needs to set resumePCinCurrentFrame_ to an address in the interpreter JitCode
instead of nullptr (or else the profiler's JitCodeMap lookup will assert).

This avoids overrecursion exceptions on testManyVars.js on Windows/Linux
(the C++ interpreter has heap-allocated stack frames so it can handle this

Depends on D36468

This is process-wide state and storing it in JSContext/JSRuntime requires
callers to pass a context/runtime for no good reason. This simplifies the
next patch.

Storing this in JitOptions seemed nicer than adding new globals for this and
maybe in the future we will have a testing function/flag to toggle these

Depends on D36470

This is consistent with IsBaselineEnabled/IsIonEnabled and lets us handle the
JS_CODEGEN_NONE and no-floating-point-support cases the same way.

Depends on D36471

Priority: -- → P1
Pushed by
part 1 - Fix JSJitProfilingFrameIterator::fixBaselineReturnAddress for interpreter frames. r=djvj
part 2 - Don't Baseline interpret scripts with a huge number of slots. r=tcampbell
part 3 - Remove unused JSRuntime::jitSupportsSimd field and JSContext accessor for it. r=tcampbell
part 4 - Move jitSupportsFloatingPoint and jitSupportsUnalignedAccesses flags from JSRuntime to JitOptions. r=tcampbell
part 5 - Add IsBaselineInterpreterEnabled() and use it instead of checking the JitOption directly. r=tcampbell
You need to log in before you can comment on or make changes to this bug.