V8 Project
v8::internal::FrameAndConstantPoolScope Class Reference

#include <macro-assembler-arm.h>

+ Collaboration diagram for v8::internal::FrameAndConstantPoolScope:

Public Member Functions

 FrameAndConstantPoolScope (MacroAssembler *masm, StackFrame::Type type)
 
 ~FrameAndConstantPoolScope ()
 
void GenerateLeaveFrame ()
 

Private Member Functions

 DISALLOW_IMPLICIT_CONSTRUCTORS (FrameAndConstantPoolScope)
 

Private Attributes

MacroAssemblermasm_
 
StackFrame::Type type_
 
bool old_has_frame_
 
bool old_constant_pool_available_
 

Detailed Description

Definition at line 1533 of file macro-assembler-arm.h.

Constructor & Destructor Documentation

◆ FrameAndConstantPoolScope()

v8::internal::FrameAndConstantPoolScope::FrameAndConstantPoolScope ( MacroAssembler masm,
StackFrame::Type  type 
)
inline

Definition at line 1535 of file macro-assembler-arm.h.

1536  : masm_(masm),
1537  type_(type),
1538  old_has_frame_(masm->has_frame()),
1539  old_constant_pool_available_(masm->is_constant_pool_available()) {
1540  // We only want to enable constant pool access for non-manual frame scopes
1541  // to ensure the constant pool pointer is valid throughout the scope.
1542  DCHECK(type_ != StackFrame::MANUAL && type_ != StackFrame::NONE);
1543  masm->set_has_frame(true);
1544  masm->set_constant_pool_available(true);
1545  masm->EnterFrame(type, !old_constant_pool_available_);
1546  }
#define DCHECK(condition)
Definition: logging.h:205
@ NONE

References DCHECK, v8::internal::MacroAssembler::EnterFrame(), NONE, old_constant_pool_available_, v8::internal::Assembler::set_constant_pool_available(), v8::internal::MacroAssembler::set_has_frame(), and type_.

+ Here is the call graph for this function:

◆ ~FrameAndConstantPoolScope()

v8::internal::FrameAndConstantPoolScope::~FrameAndConstantPoolScope ( )
inline

Definition at line 1548 of file macro-assembler-arm.h.

1548  {
1552  }
void set_constant_pool_available(bool available)
int LeaveFrame(StackFrame::Type type)

References v8::internal::MacroAssembler::LeaveFrame(), masm_, old_constant_pool_available_, old_has_frame_, v8::internal::Assembler::set_constant_pool_available(), v8::internal::MacroAssembler::set_has_frame(), and type_.

+ Here is the call graph for this function:

Member Function Documentation

◆ DISALLOW_IMPLICIT_CONSTRUCTORS()

v8::internal::FrameAndConstantPoolScope::DISALLOW_IMPLICIT_CONSTRUCTORS ( FrameAndConstantPoolScope  )
private

◆ GenerateLeaveFrame()

void v8::internal::FrameAndConstantPoolScope::GenerateLeaveFrame ( )
inline

Definition at line 1559 of file macro-assembler-arm.h.

1559  {
1560  DCHECK(type_ != StackFrame::MANUAL && type_ != StackFrame::NONE);
1562  }

References DCHECK, v8::internal::MacroAssembler::LeaveFrame(), masm_, NONE, and type_.

+ Here is the call graph for this function:

Member Data Documentation

◆ masm_

MacroAssembler* v8::internal::FrameAndConstantPoolScope::masm_
private

Definition at line 1565 of file macro-assembler-arm.h.

Referenced by GenerateLeaveFrame(), and ~FrameAndConstantPoolScope().

◆ old_constant_pool_available_

bool v8::internal::FrameAndConstantPoolScope::old_constant_pool_available_
private

◆ old_has_frame_

bool v8::internal::FrameAndConstantPoolScope::old_has_frame_
private

Definition at line 1567 of file macro-assembler-arm.h.

Referenced by ~FrameAndConstantPoolScope().

◆ type_

StackFrame::Type v8::internal::FrameAndConstantPoolScope::type_
private

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