v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::MaglevFrame Class Reference

#include <frames.h>

Inheritance diagram for v8::internal::MaglevFrame:
Collaboration diagram for v8::internal::MaglevFrame:

Public Member Functions

Type type () const override
 
void Iterate (RootVisitor *v) const override
 
int FindReturnPCForTrampoline (Tagged< Code > code, int trampoline_pc) const override
 
DirectHandle< JSFunctionGetInnermostFunction () const
 
BytecodeOffset GetBytecodeOffsetForOSR () const
 
- Public Member Functions inherited from v8::internal::OptimizedJSFrame
void GetFunctions (std::vector< Tagged< SharedFunctionInfo > > *functions) const override
 
FrameSummaries Summarize () const override
 
Tagged< DeoptimizationDataGetDeoptimizationData (Tagged< Code > code, int *deopt_index) const
 
int LookupExceptionHandlerInTable (int *data, HandlerTable::CatchPrediction *prediction) override
 
- Public Member Functions inherited from v8::internal::JavaScriptFrame
Tagged< JSFunctionfunction () const override
 
Tagged< Objectunchecked_function () const
 
Tagged< Scriptscript () const
 
Tagged< Objectcontext () const override
 
int GetActualArgumentCount () const override
 
void set_receiver (Tagged< Object > value)
 
void SetParameterValue (int index, Tagged< Object > value) const
 
bool IsConstructor () const override
 
void Print (StringStream *accumulator, PrintMode mode, int index) const override
 
void GetFunctions (std::vector< Handle< SharedFunctionInfo > > *functions) const
 
std::tuple< Tagged< AbstractCode >, int > GetActiveCodeAndOffset () const
 
bool is_unoptimized () const
 
bool is_optimized () const
 
bool is_turbofan () const
 
- Public Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
virtual Tagged< Objectreceiver () const
 
virtual Tagged< ObjectGetParameter (int index) const
 
virtual int ComputeParametersCount () const
 
DirectHandle< FixedArrayGetParameters () const
 
Tagged< HeapObjectunchecked_code () const override
 
- Public Member Functions inherited from v8::internal::CommonFrame
virtual int position () const
 
Tagged< ObjectGetExpression (int index) const
 
void SetExpression (int index, Tagged< Object > value)
 
int ComputeExpressionsCount () const
 
- Public Member Functions inherited from v8::internal::StackFrame
 StackFrame (const StackFrame &original) V8_NOEXCEPT
 
bool is_entry () const
 
bool is_construct_entry () const
 
bool is_exit () const
 
bool is_optimized_js () const
 
bool is_unoptimized_js () const
 
bool is_interpreted () const
 
bool is_baseline () const
 
bool is_maglev () const
 
bool is_turbofan_js () const
 
bool is_builtin () const
 
bool is_internal () const
 
bool is_builtin_continuation () const
 
bool is_javascript_builtin_continuation () const
 
bool is_javascript_builtin_with_catch_continuation () const
 
bool is_construct () const
 
bool is_fast_construct () const
 
bool is_builtin_exit () const
 
bool is_api_accessor_exit () const
 
bool is_api_callback_exit () const
 
bool is_irregexp () const
 
bool is_javascript () const
 
Address sp () const
 
Address fp () const
 
Address callee_fp () const
 
Address callee_pc () const
 
Address caller_sp () const
 
Address pc () const
 
bool is_profiler_entry_frame () const
 
bool is_stack_exit_frame () const
 
Address unauthenticated_pc () const
 
Address maybe_unauthenticated_pc () const
 
bool InFastCCall () const
 
Address constant_pool () const
 
void set_constant_pool (Address constant_pool)
 
Addresspc_address () const
 
Addressconstant_pool_address () const
 
StackFrameId id () const
 
StackHandlertop_handler () const
 
V8_EXPORT_PRIVATE Tagged< CodeLookupCode () const
 
V8_EXPORT_PRIVATE std::pair< Tagged< Code >, int > LookupCodeAndOffset () const
 
V8_EXPORT_PRIVATE Tagged< GcSafeCodeGcSafeLookupCode () const
 
V8_EXPORT_PRIVATE std::pair< Tagged< GcSafeCode >, int > GcSafeLookupCodeAndOffset () const
 
void IteratePc (RootVisitor *v, Address *constant_pool_address, Tagged< GcSafeCode > holder) const
 
Isolateisolate () const
 
void operator= (const StackFrame &original)=delete
 

Static Public Member Functions

static MaglevFramecast (StackFrame *frame)
 
static intptr_t StackGuardFrameSize (int register_input_count)
 
- Static Public Member Functions inherited from v8::internal::OptimizedJSFrame
static int StackSlotOffsetRelativeToFp (int slot_index)
 
- Static Public Member Functions inherited from v8::internal::JavaScriptFrame
static Register fp_register ()
 
static Register context_register ()
 
static Register constant_pool_pointer_register ()
 
static JavaScriptFramecast (StackFrame *frame)
 
static void PrintFunctionAndOffset (Isolate *isolate, Tagged< JSFunction > function, Tagged< AbstractCode > code, int code_offset, FILE *file, bool print_line_number)
 
static void PrintTop (Isolate *isolate, FILE *file, bool print_args, bool print_line_number)
 
static void CollectFunctionAndOffsetForICStats (Isolate *isolate, Tagged< JSFunction > function, Tagged< AbstractCode > code, int code_offset)
 
- Static Public Member Functions inherited from v8::internal::CommonFrame
static CommonFramecast (StackFrame *frame)
 
- Static Public Member Functions inherited from v8::internal::StackFrame
static constexpr int32_t TypeToMarker (Type type)
 
static constexpr Type MarkerToType (intptr_t marker)
 
static constexpr bool IsTypeMarker (uintptr_t function_or_marker)
 
static bool IsJavaScript (Type t)
 
static Address unauthenticated_pc (Address *pc_address)
 
static Address maybe_unauthenticated_pc (Address *pc_address)
 
static void SetReturnAddressLocationResolver (ReturnAddressLocationResolver resolver)
 
static Address ReadPC (Address *pc_address)
 
static AddressResolveReturnAddressLocation (Address *pc_address)
 

Protected Member Functions

 MaglevFrame (StackFrameIteratorBase *iterator)
 
- Protected Member Functions inherited from v8::internal::OptimizedJSFrame
 OptimizedJSFrame (StackFrameIteratorBase *iterator)
 
- Protected Member Functions inherited from v8::internal::JavaScriptFrame
 JavaScriptFrame (StackFrameIteratorBase *iterator)
 
Address GetCallerStackPointer () const override
 
virtual void PrintFrameKind (StringStream *accumulator) const
 
- Protected Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
 CommonFrameWithJSLinkage (StackFrameIteratorBase *iterator)
 
Address GetParameterSlot (int index) const
 
- Protected Member Functions inherited from v8::internal::CommonFrame
 CommonFrame (StackFrameIteratorBase *iterator)
 
bool HasTaggedOutgoingParams (Tagged< GcSafeCode > code_lookup) const
 
void ComputeCallerState (State *state) const override
 
Address caller_fp () const
 
Address caller_pc () const
 
void IterateExpressions (RootVisitor *v) const
 
void IterateTurbofanJSOptimizedFrame (RootVisitor *v) const
 
virtual Address GetExpressionAddress (int n) const
 
- Protected Member Functions inherited from v8::internal::StackFrame
 StackFrame (StackFrameIteratorBase *iterator)
 

Friends

class StackFrameIteratorBase
 

Additional Inherited Members

- Public Types inherited from v8::internal::StackFrame
enum  Type { NO_FRAME_TYPE = 0 , STACK_FRAME_TYPE_LIST =(DECLARE_TYPE) NUMBER_OF_TYPES , MANUAL }
 
enum  JsFrameMarker { INNER_JSENTRY_FRAME = (0 << kSmiTagSize) | kSmiTag , OUTERMOST_JSENTRY_FRAME = (1 << kSmiTagSize) | kSmiTag }
 
enum  PrintMode { OVERVIEW , DETAILS }
 
- Static Protected Member Functions inherited from v8::internal::CommonFrameWithJSLinkage
static bool IsConstructFrame (Address fp)
 
- Protected Attributes inherited from v8::internal::StackFrame
const StackFrameIteratorBase *const iterator_
 

Detailed Description

Definition at line 1195 of file frames.h.

Constructor & Destructor Documentation

◆ MaglevFrame()

v8::internal::MaglevFrame::MaglevFrame ( StackFrameIteratorBase * iterator)
inlineexplicitprotected

Definition at line 315 of file frames-inl.h.

Member Function Documentation

◆ cast()

static MaglevFrame * v8::internal::MaglevFrame::cast ( StackFrame * frame)
inlinestatic

Definition at line 1199 of file frames.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindReturnPCForTrampoline()

int v8::internal::MaglevFrame::FindReturnPCForTrampoline ( Tagged< Code > code,
int trampoline_pc ) const
overridevirtual

Implements v8::internal::OptimizedJSFrame.

Definition at line 3192 of file frames.cc.

Here is the call graph for this function:

◆ GetBytecodeOffsetForOSR()

BytecodeOffset v8::internal::MaglevFrame::GetBytecodeOffsetForOSR ( ) const

Definition at line 2208 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInnermostFunction()

DirectHandle< JSFunction > v8::internal::MaglevFrame::GetInnermostFunction ( ) const

Definition at line 2204 of file frames.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Iterate()

void v8::internal::MaglevFrame::Iterate ( RootVisitor * v) const
overridevirtual

Reimplemented from v8::internal::JavaScriptFrame.

Definition at line 2097 of file frames.cc.

Here is the call graph for this function:

◆ StackGuardFrameSize()

intptr_t v8::internal::MaglevFrame::StackGuardFrameSize ( int register_input_count)
static

Definition at line 27 of file frame-constants-riscv.cc.

Here is the call graph for this function:

◆ type()

Type v8::internal::MaglevFrame::type ( ) const
inlineoverridevirtual

Implements v8::internal::JavaScriptFrame.

Definition at line 1197 of file frames.h.

Friends And Related Symbol Documentation

◆ StackFrameIteratorBase

friend class StackFrameIteratorBase
friend

Definition at line 1218 of file frames.h.


The documentation for this class was generated from the following files: