v8/src/ia32
Peter Marshall d5f4a33eb8 [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
Before fast C calls, store the current FP and PC on the isolate. When
iterating frames in SafeStackFrameIterator, check if these fields are
set and start iterating at the calling frame's FP instead of the current
FP, which will be in C++ code. We need to do this because c_entry_fp is
not set on the Isolate for Fast-C-Calls because we don't build an exit
frame.

This change makes stack samples that occur within 'Fast-C-Calls'
iterable, meaning we can properly attribute ticks within the JS caller.

Fast-C-Calls can't call back into JS code, so we can only ever have one
such call on the stack at a time, allowing us to store the FP on the
isolate rather than the stack.

TBR=v8-mips-ports@googlegroups.com

Bug: v8:8464, v8:7202
Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
Reviewed-on: https://chromium-review.googlesource.com/c/1340241
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57896}
2018-11-28 09:42:34 +00:00
..
assembler-ia32-inl.h [ubsan] Port Code to the new design 2018-11-12 18:47:04 +00:00
assembler-ia32.cc [ubsan] Port Code to the new design 2018-11-12 18:47:04 +00:00
assembler-ia32.h [nojit] Remove the ProfileEntryHookStub 2018-11-26 13:58:43 +00:00
code-stubs-ia32.cc [nojit] Remove the ProfileEntryHookStub 2018-11-26 13:58:43 +00:00
codegen-ia32.cc [cleanup] Support V8-agnostic mode in MacroAssembler 2018-09-15 03:09:44 +00:00
constants-ia32.h [ia32,root] Initialize kRootRegister and verify through IsolateData 2018-10-15 10:19:00 +00:00
cpu-ia32.cc
deoptimizer-ia32.cc [ia32] Remove embedded builtin porting helpers 2018-10-22 16:13:04 +00:00
disasm-ia32.cc [turbofan] Further optimize DataView accesses. 2018-08-14 09:20:47 +00:00
frame-constants-ia32.cc [arm64] Update BuiltinContinuation frames for jssp alignment. 2017-10-11 15:05:20 +00:00
frame-constants-ia32.h [ia32,root] Remove ebx from Wasm linkage 2018-10-09 10:20:29 +00:00
interface-descriptors-ia32.cc [iwyu] Remove interface-descriptors.h -> macro-assembler.h 2018-11-19 11:02:31 +00:00
macro-assembler-ia32.cc [cpu-profiler] Fix stack iterability for fast C calls with no exit frame 2018-11-28 09:42:34 +00:00
macro-assembler-ia32.h [nojit] Remove the ProfileEntryHookStub 2018-11-26 13:58:43 +00:00
simulator-ia32.cc
simulator-ia32.h [simulator] De-dupe {CALL_GENERATED_CODE} macro definition. 2017-12-11 17:07:44 +00:00
sse-instr.h [ia32][wasm] Add unpacking integer conversions 2018-06-25 04:25:24 +00:00