V8 Project
v8::internal::FrameDescription Class Reference

#include <deoptimizer.h>

+ Collaboration diagram for v8::internal::FrameDescription:

Public Member Functions

 FrameDescription (uint32_t frame_size, JSFunction *function)
 
void * operator new (size_t size, uint32_t frame_size)
 
void operator delete (void *pointer, uint32_t frame_size)
 
void operator delete (void *description)
 
uint32_t GetFrameSize () const
 
JSFunctionGetFunction () const
 
unsigned GetOffsetFromSlotIndex (int slot_index)
 
intptr_t GetFrameSlot (unsigned offset)
 
double GetDoubleFrameSlot (unsigned offset)
 
void SetFrameSlot (unsigned offset, intptr_t value)
 
void SetCallerPc (unsigned offset, intptr_t value)
 
void SetCallerFp (unsigned offset, intptr_t value)
 
void SetCallerConstantPool (unsigned offset, intptr_t value)
 
intptr_t GetRegister (unsigned n) const
 
double GetDoubleRegister (unsigned n) const
 
void SetRegister (unsigned n, intptr_t value)
 
void SetDoubleRegister (unsigned n, double value)
 
intptr_t GetTop () const
 
void SetTop (intptr_t top)
 
intptr_t GetPc () const
 
void SetPc (intptr_t pc)
 
intptr_t GetFp () const
 
void SetFp (intptr_t fp)
 
intptr_t GetContext () const
 
void SetContext (intptr_t context)
 
intptr_t GetConstantPool () const
 
void SetConstantPool (intptr_t constant_pool)
 
SmiGetState () const
 
void SetState (Smi *state)
 
void SetContinuation (intptr_t pc)
 
StackFrame::Type GetFrameType () const
 
void SetFrameType (StackFrame::Type type)
 
int ComputeParametersCount ()
 
ObjectGetParameter (int index)
 
unsigned GetExpressionCount ()
 
ObjectGetExpression (int index)
 

Static Public Member Functions

static int registers_offset ()
 
static int double_registers_offset ()
 
static int frame_size_offset ()
 
static int pc_offset ()
 
static int state_offset ()
 
static int continuation_offset ()
 
static int frame_content_offset ()
 

Private Member Functions

intptr_t * GetFrameSlotPointer (unsigned offset)
 
int ComputeFixedSize ()
 

Private Attributes

uintptr_t frame_size_
 
JSFunctionfunction_
 
intptr_t registers_ [Register::kNumRegisters]
 
double double_registers_ [DoubleRegister::kMaxNumRegisters]
 
intptr_t top_
 
intptr_t pc_
 
intptr_t fp_
 
intptr_t context_
 
intptr_t constant_pool_
 
StackFrame::Type type_
 
Smistate_
 
intptr_t continuation_
 
intptr_t frame_content_ [1]
 

Static Private Attributes

static const uint32_t kZapUint32 = 0xbeeddead
 

Detailed Description

Definition at line 458 of file deoptimizer.h.

Constructor & Destructor Documentation

◆ FrameDescription()

v8::internal::FrameDescription::FrameDescription ( uint32_t  frame_size,
JSFunction function 
)

Definition at line 2824 of file deoptimizer.cc.

2826  : frame_size_(frame_size),
2827  function_(function),
2828  top_(kZapUint32),
2829  pc_(kZapUint32),
2830  fp_(kZapUint32),
2833  // Zap all the registers.
2834  for (int r = 0; r < Register::kNumRegisters; r++) {
2835  // TODO(jbramley): It isn't safe to use kZapUint32 here. If the register
2836  // isn't used before the next safepoint, the GC will try to scan it as a
2837  // tagged value. kZapUint32 looks like a valid tagged pointer, but it isn't.
2838  SetRegister(r, kZapUint32);
2839  }
2840 
2841  // Zap all the slots.
2842  for (unsigned o = 0; o < frame_size; o += kPointerSize) {
2844  }
2845 }
static const uint32_t kZapUint32
Definition: deoptimizer.h:599
void SetRegister(unsigned n, intptr_t value)
Definition: deoptimizer.h:523
void SetFrameSlot(unsigned offset, intptr_t value)
Definition: deoptimizer.h:495
const int kPointerSize
Definition: globals.h:129
static const int kNumRegisters
Definition: assembler-arm.h:95

References v8::internal::Register::kNumRegisters, v8::internal::kPointerSize, kZapUint32, SetFrameSlot(), and SetRegister().

+ Here is the call graph for this function:

Member Function Documentation

◆ ComputeFixedSize()

int v8::internal::FrameDescription::ComputeFixedSize ( )
private

Definition at line 2848 of file deoptimizer.cc.

2848  {
2851 }
static const int kFixedFrameSize
Definition: frames.h:158

References ComputeParametersCount(), v8::internal::StandardFrameConstants::kFixedFrameSize, and v8::internal::kPointerSize.

Referenced by GetExpressionCount(), and GetOffsetFromSlotIndex().

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

◆ ComputeParametersCount()

int v8::internal::FrameDescription::ComputeParametersCount ( )

Definition at line 2869 of file deoptimizer.cc.

2869  {
2870  switch (type_) {
2871  case StackFrame::JAVA_SCRIPT:
2872  return function_->shared()->formal_parameter_count();
2874  // Last slot contains number of incomming arguments as a smi.
2875  // Can't use GetExpression(0) because it would cause infinite recursion.
2876  return reinterpret_cast<Smi*>(*GetFrameSlotPointer(0))->value();
2877  }
2878  case StackFrame::STUB:
2879  return -1; // Minus receiver.
2880  default:
2881  FATAL("Unexpected stack frame type");
2882  return 0;
2883  }
2884 }
intptr_t * GetFrameSlotPointer(unsigned offset)
Definition: deoptimizer.h:624
#define FATAL(msg)
Definition: logging.h:26

References v8::internal::compiler::ARGUMENTS_ADAPTOR, FATAL, function_, GetFrameSlotPointer(), v8::internal::STUB, and type_.

Referenced by ComputeFixedSize(), v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo(), GetOffsetFromSlotIndex(), and GetParameter().

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

◆ continuation_offset()

static int v8::internal::FrameDescription::continuation_offset ( )
inlinestatic

Definition at line 590 of file deoptimizer.h.

590  {
592  }
FrameDescription(uint32_t frame_size, JSFunction *function)
#define OFFSET_OF(type, field)
Definition: macros.h:22

References continuation_, and OFFSET_OF.

◆ double_registers_offset()

static int v8::internal::FrameDescription::double_registers_offset ( )
inlinestatic

Definition at line 574 of file deoptimizer.h.

574  {
576  }
double double_registers_[DoubleRegister::kMaxNumRegisters]
Definition: deoptimizer.h:607

References double_registers_, and OFFSET_OF.

◆ frame_content_offset()

static int v8::internal::FrameDescription::frame_content_offset ( )
inlinestatic

Definition at line 594 of file deoptimizer.h.

594  {
596  }

References frame_content_, and OFFSET_OF.

Referenced by GetFrameSlotPointer().

+ Here is the caller graph for this function:

◆ frame_size_offset()

static int v8::internal::FrameDescription::frame_size_offset ( )
inlinestatic

Definition at line 578 of file deoptimizer.h.

578  {
580  }

References frame_size_, and OFFSET_OF.

◆ GetConstantPool()

intptr_t v8::internal::FrameDescription::GetConstantPool ( ) const
inline

Definition at line 545 of file deoptimizer.h.

545 { return constant_pool_; }

References constant_pool_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ GetContext()

intptr_t v8::internal::FrameDescription::GetContext ( ) const
inline

Definition at line 542 of file deoptimizer.h.

542 { return context_; }

References context_.

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo(), v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), and v8::internal::Deoptimizer::DoComputeConstructStubFrame().

+ Here is the caller graph for this function:

◆ GetDoubleFrameSlot()

double v8::internal::FrameDescription::GetDoubleFrameSlot ( unsigned  offset)
inline

Definition at line 490 of file deoptimizer.h.

490  {
491  intptr_t* ptr = GetFrameSlotPointer(offset);
492  return read_double_value(reinterpret_cast<Address>(ptr));
493  }
byte * Address
Definition: globals.h:101
static double read_double_value(Address p)
Definition: deoptimizer.h:19

References GetFrameSlotPointer(), and v8::internal::read_double_value().

Referenced by v8::internal::Deoptimizer::DoTranslateCommand(), and v8::internal::Deoptimizer::DoTranslateObject().

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

◆ GetDoubleRegister()

double v8::internal::FrameDescription::GetDoubleRegister ( unsigned  n) const
inline

Definition at line 518 of file deoptimizer.h.

518  {
520  return double_registers_[n];
521  }
#define DCHECK(condition)
Definition: logging.h:205
#define arraysize(array)
Definition: macros.h:86

References arraysize, DCHECK, and double_registers_.

Referenced by v8::internal::Deoptimizer::CopyDoubleRegisters(), v8::internal::Deoptimizer::DoTranslateCommand(), and v8::internal::Deoptimizer::DoTranslateObject().

+ Here is the caller graph for this function:

◆ GetExpression()

Object * v8::internal::FrameDescription::GetExpression ( int  index)

Definition at line 2903 of file deoptimizer.cc.

2903  {
2904  DCHECK_EQ(StackFrame::JAVA_SCRIPT, type_);
2905  unsigned offset = GetOffsetFromSlotIndex(index);
2906  return reinterpret_cast<Object*>(*GetFrameSlotPointer(offset));
2907 }
unsigned GetOffsetFromSlotIndex(int slot_index)
#define DCHECK_EQ(v1, v2)
Definition: logging.h:206
kSerializedDataOffset Object
Definition: objects-inl.h:5322

References DCHECK_EQ, GetFrameSlotPointer(), GetOffsetFromSlotIndex(), and type_.

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo().

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

◆ GetExpressionCount()

unsigned v8::internal::FrameDescription::GetExpressionCount ( )

Definition at line 2896 of file deoptimizer.cc.

2896  {
2897  CHECK_EQ(StackFrame::JAVA_SCRIPT, type_);
2898  unsigned size = GetFrameSize() - ComputeFixedSize();
2899  return size / kPointerSize;
2900 }
uint32_t GetFrameSize() const
Definition: deoptimizer.h:477
enable harmony numeric enable harmony object literal extensions Optimize object size
#define CHECK_EQ(expected, value)
Definition: logging.h:169

References CHECK_EQ, ComputeFixedSize(), GetFrameSize(), v8::internal::kPointerSize, size, and type_.

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo().

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

◆ GetFp()

intptr_t v8::internal::FrameDescription::GetFp ( ) const
inline

Definition at line 539 of file deoptimizer.h.

539 { return fp_; }

References fp_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ GetFrameSize()

uint32_t v8::internal::FrameDescription::GetFrameSize ( ) const
inline

Definition at line 477 of file deoptimizer.h.

477  {
478  DCHECK(static_cast<uint32_t>(frame_size_) == frame_size_);
479  return static_cast<uint32_t>(frame_size_);
480  }

References DCHECK, and frame_size_.

Referenced by v8::internal::Deoptimizer::DebuggerInspectableFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::FillInputFrame(), GetExpressionCount(), and GetOffsetFromSlotIndex().

+ Here is the caller graph for this function:

◆ GetFrameSlot()

intptr_t v8::internal::FrameDescription::GetFrameSlot ( unsigned  offset)
inline

Definition at line 486 of file deoptimizer.h.

486  {
487  return *GetFrameSlotPointer(offset);
488  }

References GetFrameSlotPointer().

Referenced by v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::DoTranslateCommand(), and v8::internal::Deoptimizer::DoTranslateObject().

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

◆ GetFrameSlotPointer()

intptr_t* v8::internal::FrameDescription::GetFrameSlotPointer ( unsigned  offset)
inlineprivate

Definition at line 624 of file deoptimizer.h.

624  {
625  DCHECK(offset < frame_size_);
626  return reinterpret_cast<intptr_t*>(
627  reinterpret_cast<Address>(this) + frame_content_offset() + offset);
628  }

References DCHECK, frame_content_offset(), and frame_size_.

Referenced by ComputeParametersCount(), GetDoubleFrameSlot(), GetExpression(), GetFrameSlot(), GetParameter(), and SetFrameSlot().

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

◆ GetFrameType()

StackFrame::Type v8::internal::FrameDescription::GetFrameType ( ) const
inline

Definition at line 555 of file deoptimizer.h.

555 { return type_; }

References type_.

Referenced by v8::internal::Deoptimizer::ConvertJSFrameIndexToFrameIndex(), v8::internal::Deoptimizer::DebuggerInspectableFrame(), and v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo().

+ Here is the caller graph for this function:

◆ GetFunction()

JSFunction* v8::internal::FrameDescription::GetFunction ( ) const
inline

Definition at line 482 of file deoptimizer.h.

482 { return function_; }

References function_.

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo(), and v8::internal::Deoptimizer::DoComputeOutputFrames().

+ Here is the caller graph for this function:

◆ GetOffsetFromSlotIndex()

unsigned v8::internal::FrameDescription::GetOffsetFromSlotIndex ( int  slot_index)

Definition at line 2854 of file deoptimizer.cc.

2854  {
2855  if (slot_index >= 0) {
2856  // Local or spill slots. Skip the fixed part of the frame
2857  // including all arguments.
2858  unsigned base = GetFrameSize() - ComputeFixedSize();
2859  return base - ((slot_index + 1) * kPointerSize);
2860  } else {
2861  // Incoming parameter.
2862  int arg_size = (ComputeParametersCount() + 1) * kPointerSize;
2863  unsigned base = GetFrameSize() - arg_size;
2864  return base - ((slot_index + 1) * kPointerSize);
2865  }
2866 }

References ComputeFixedSize(), ComputeParametersCount(), GetFrameSize(), and v8::internal::kPointerSize.

Referenced by v8::internal::Deoptimizer::DoTranslateCommand(), v8::internal::Deoptimizer::DoTranslateObject(), GetExpression(), and GetParameter().

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

◆ GetParameter()

Object * v8::internal::FrameDescription::GetParameter ( int  index)

Definition at line 2887 of file deoptimizer.cc.

2887  {
2888  CHECK_GE(index, 0);
2889  CHECK_LT(index, ComputeParametersCount());
2890  // The slot indexes for incoming arguments are negative.
2891  unsigned offset = GetOffsetFromSlotIndex(index - ComputeParametersCount());
2892  return reinterpret_cast<Object*>(*GetFrameSlotPointer(offset));
2893 }
#define CHECK_LT(a, b)
Definition: logging.h:179
#define CHECK_GE(a, b)
Definition: logging.h:178

References CHECK_GE, CHECK_LT, ComputeParametersCount(), GetFrameSlotPointer(), and GetOffsetFromSlotIndex().

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo().

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

◆ GetPc()

intptr_t v8::internal::FrameDescription::GetPc ( ) const
inline

Definition at line 536 of file deoptimizer.h.

536 { return pc_; }

References pc_.

Referenced by v8::internal::DeoptimizedFrameInfo::DeoptimizedFrameInfo(), v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), and v8::internal::Deoptimizer::DoComputeOutputFrames().

+ Here is the caller graph for this function:

◆ GetRegister()

intptr_t v8::internal::FrameDescription::GetRegister ( unsigned  n) const
inline

Definition at line 505 of file deoptimizer.h.

505  {
506 #if DEBUG
507  // This convoluted DCHECK is needed to work around a gcc problem that
508  // improperly detects an array bounds overflow in optimized debug builds
509  // when using a plain DCHECK.
510  if (n >= arraysize(registers_)) {
511  DCHECK(false);
512  return 0;
513  }
514 #endif
515  return registers_[n];
516  }
intptr_t registers_[Register::kNumRegisters]
Definition: deoptimizer.h:606

References arraysize, DCHECK, and registers_.

Referenced by v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::DoComputeOutputFrames(), v8::internal::Deoptimizer::DoTranslateCommand(), and v8::internal::Deoptimizer::DoTranslateObject().

+ Here is the caller graph for this function:

◆ GetState()

Smi* v8::internal::FrameDescription::GetState ( ) const
inline

Definition at line 550 of file deoptimizer.h.

550 { return state_; }

References state_.

Referenced by v8::internal::Deoptimizer::DoComputeOutputFrames().

+ Here is the caller graph for this function:

◆ GetTop()

intptr_t v8::internal::FrameDescription::GetTop ( ) const
inline

Definition at line 533 of file deoptimizer.h.

533 { return top_; }

References top_.

Referenced by v8::internal::Deoptimizer::DebuggerInspectableFrame(), v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), and v8::internal::Deoptimizer::DoTranslateCommand().

+ Here is the caller graph for this function:

◆ operator delete() [1/2]

void v8::internal::FrameDescription::operator delete ( void *  description)
inline

Definition at line 473 of file deoptimizer.h.

473  {
474  free(description);
475  }

◆ operator delete() [2/2]

void v8::internal::FrameDescription::operator delete ( void *  pointer,
uint32_t  frame_size 
)
inline

Definition at line 469 of file deoptimizer.h.

469  {
470  free(pointer);
471  }

◆ operator new()

void* v8::internal::FrameDescription::operator new ( size_t  size,
uint32_t  frame_size 
)
inline

Definition at line 463 of file deoptimizer.h.

463  {
464  // Subtracts kPointerSize, as the member frame_content_ already supplies
465  // the first element of the area to store the frame.
466  return malloc(size + frame_size - kPointerSize);
467  }

References v8::internal::kPointerSize, and size.

◆ pc_offset()

static int v8::internal::FrameDescription::pc_offset ( )
inlinestatic

Definition at line 582 of file deoptimizer.h.

582  {
583  return OFFSET_OF(FrameDescription, pc_);
584  }

References OFFSET_OF, and pc_.

◆ registers_offset()

static int v8::internal::FrameDescription::registers_offset ( )
inlinestatic

Definition at line 570 of file deoptimizer.h.

570  {
572  }

References OFFSET_OF, and registers_.

◆ SetCallerConstantPool()

void v8::internal::FrameDescription::SetCallerConstantPool ( unsigned  offset,
intptr_t  value 
)

Definition at line 346 of file deoptimizer-arm.cc.

346  {
347  DCHECK(FLAG_enable_ool_constant_pool);
348  SetFrameSlot(offset, value);
349 }

References DCHECK.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetCallerFp()

void v8::internal::FrameDescription::SetCallerFp ( unsigned  offset,
intptr_t  value 
)

Definition at line 341 of file deoptimizer-arm.cc.

341  {
342  SetFrameSlot(offset, value);
343 }

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetCallerPc()

void v8::internal::FrameDescription::SetCallerPc ( unsigned  offset,
intptr_t  value 
)

Definition at line 336 of file deoptimizer-arm.cc.

336  {
337  SetFrameSlot(offset, value);
338 }

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetConstantPool()

void v8::internal::FrameDescription::SetConstantPool ( intptr_t  constant_pool)
inline

Definition at line 546 of file deoptimizer.h.

546  {
547  constant_pool_ = constant_pool;
548  }

References constant_pool_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetContext()

void v8::internal::FrameDescription::SetContext ( intptr_t  context)
inline

Definition at line 543 of file deoptimizer.h.

543 { context_ = context; }

References context_.

Referenced by v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetContinuation()

void v8::internal::FrameDescription::SetContinuation ( intptr_t  pc)
inline

Definition at line 553 of file deoptimizer.h.

553 { continuation_ = pc; }
const Register pc

References continuation_, and v8::internal::pc.

Referenced by v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetDoubleRegister()

void v8::internal::FrameDescription::SetDoubleRegister ( unsigned  n,
double  value 
)
inline

Definition at line 528 of file deoptimizer.h.

528  {
530  double_registers_[n] = value;
531  }

References arraysize, DCHECK, and double_registers_.

Referenced by v8::internal::Deoptimizer::CopyDoubleRegisters(), and v8::internal::Deoptimizer::FillInputFrame().

+ Here is the caller graph for this function:

◆ SetFp()

void v8::internal::FrameDescription::SetFp ( intptr_t  fp)
inline

Definition at line 540 of file deoptimizer.h.

540 { fp_ = fp; }
const Register fp

References v8::internal::fp, and fp_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetFrameSlot()

void v8::internal::FrameDescription::SetFrameSlot ( unsigned  offset,
intptr_t  value 
)
inline

Definition at line 495 of file deoptimizer.h.

495  {
496  *GetFrameSlotPointer(offset) = value;
497  }

References GetFrameSlotPointer().

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::DoTranslateCommand(), v8::internal::Deoptimizer::FillInputFrame(), and FrameDescription().

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

◆ SetFrameType()

void v8::internal::FrameDescription::SetFrameType ( StackFrame::Type  type)
inline

Definition at line 556 of file deoptimizer.h.

556 { type_ = type; }

References type_.

Referenced by v8::internal::Deoptimizer::Deoptimizer(), v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetPc()

void v8::internal::FrameDescription::SetPc ( intptr_t  pc)
inline

Definition at line 537 of file deoptimizer.h.

537 { pc_ = pc; }

References v8::internal::pc, and pc_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetRegister()

void v8::internal::FrameDescription::SetRegister ( unsigned  n,
intptr_t  value 
)
inline

Definition at line 523 of file deoptimizer.h.

523  {
525  registers_[n] = value;
526  }

References arraysize, DCHECK, and registers_.

Referenced by v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::FillInputFrame(), FrameDescription(), and v8::internal::Deoptimizer::SetPlatformCompiledStubRegisters().

+ Here is the caller graph for this function:

◆ SetState()

void v8::internal::FrameDescription::SetState ( Smi state)
inline

Definition at line 551 of file deoptimizer.h.

551 { state_ = state; }

References state_.

Referenced by v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ SetTop()

void v8::internal::FrameDescription::SetTop ( intptr_t  top)
inline

Definition at line 534 of file deoptimizer.h.

534 { top_ = top; }

References top_.

Referenced by v8::internal::Deoptimizer::DoComputeAccessorStubFrame(), v8::internal::Deoptimizer::DoComputeArgumentsAdaptorFrame(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeConstructStubFrame(), and v8::internal::Deoptimizer::DoComputeJSFrame().

+ Here is the caller graph for this function:

◆ state_offset()

static int v8::internal::FrameDescription::state_offset ( )
inlinestatic

Definition at line 586 of file deoptimizer.h.

586  {
588  }

References OFFSET_OF, and state_.

Member Data Documentation

◆ constant_pool_

intptr_t v8::internal::FrameDescription::constant_pool_
private

Definition at line 612 of file deoptimizer.h.

Referenced by GetConstantPool(), and SetConstantPool().

◆ context_

intptr_t v8::internal::FrameDescription::context_
private

Definition at line 611 of file deoptimizer.h.

Referenced by GetContext(), and SetContext().

◆ continuation_

intptr_t v8::internal::FrameDescription::continuation_
private

Definition at line 618 of file deoptimizer.h.

Referenced by continuation_offset(), and SetContinuation().

◆ double_registers_

double v8::internal::FrameDescription::double_registers_[DoubleRegister::kMaxNumRegisters]
private

Definition at line 607 of file deoptimizer.h.

Referenced by double_registers_offset(), GetDoubleRegister(), and SetDoubleRegister().

◆ fp_

intptr_t v8::internal::FrameDescription::fp_
private

Definition at line 610 of file deoptimizer.h.

Referenced by GetFp(), and SetFp().

◆ frame_content_

intptr_t v8::internal::FrameDescription::frame_content_[1]
private

Definition at line 622 of file deoptimizer.h.

Referenced by frame_content_offset().

◆ frame_size_

uintptr_t v8::internal::FrameDescription::frame_size_
private

Definition at line 604 of file deoptimizer.h.

Referenced by frame_size_offset(), GetFrameSize(), and GetFrameSlotPointer().

◆ function_

JSFunction* v8::internal::FrameDescription::function_
private

Definition at line 605 of file deoptimizer.h.

Referenced by ComputeParametersCount(), and GetFunction().

◆ kZapUint32

const uint32_t v8::internal::FrameDescription::kZapUint32 = 0xbeeddead
staticprivate

Definition at line 599 of file deoptimizer.h.

Referenced by FrameDescription().

◆ pc_

intptr_t v8::internal::FrameDescription::pc_
private

Definition at line 609 of file deoptimizer.h.

Referenced by GetPc(), pc_offset(), and SetPc().

◆ registers_

intptr_t v8::internal::FrameDescription::registers_[Register::kNumRegisters]
private

Definition at line 606 of file deoptimizer.h.

Referenced by GetRegister(), registers_offset(), and SetRegister().

◆ state_

Smi* v8::internal::FrameDescription::state_
private

Definition at line 614 of file deoptimizer.h.

Referenced by GetState(), SetState(), and state_offset().

◆ top_

intptr_t v8::internal::FrameDescription::top_
private

Definition at line 608 of file deoptimizer.h.

Referenced by GetTop(), and SetTop().

◆ type_

StackFrame::Type v8::internal::FrameDescription::type_
private

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