Flutter Engine
The Flutter Engine
Classes | Public Member Functions | List of all members
dart::DeoptRetAddressInstr Class Reference
Inheritance diagram for dart::DeoptRetAddressInstr:
dart::DeoptInstr dart::ZoneAllocated

Public Member Functions

 DeoptRetAddressInstr (intptr_t object_table_index, intptr_t deopt_id)
 
 DeoptRetAddressInstr (intptr_t source_index)
 
virtual intptr_t source_index () const
 
virtual DeoptInstr::Kind kind () const
 
virtual const char * ArgumentsToCString () const
 
void Execute (DeoptContext *deopt_context, intptr_t *dest_addr)
 
intptr_t object_table_index () const
 
intptr_t deopt_id () const
 
- Public Member Functions inherited from dart::DeoptInstr
 DeoptInstr ()
 
virtual ~DeoptInstr ()
 
virtual const char * ToCString () const
 
virtual void Execute (DeoptContext *deopt_context, intptr_t *dest_addr)=0
 
virtual CatchEntryMove ToCatchEntryMove (DeoptContext *deopt_context, intptr_t dest_slot)
 
virtual DeoptInstr::Kind kind () const =0
 
bool Equals (const DeoptInstr &other) const
 
- Public Member Functions inherited from dart::ZoneAllocated
 ZoneAllocated ()
 
void * operator new (size_t size)
 
void * operator new (size_t size, Zone *zone)
 
void operator delete (void *pointer)
 

Additional Inherited Members

- Public Types inherited from dart::DeoptInstr
enum  Kind {
  kRetAddress , kConstant , kWord , kFloat ,
  kDouble , kFloat32x4 , kFloat64x2 , kInt32x4 ,
  kMintPair , kMint , kInt32 , kUint32 ,
  kPcMarker , kPp , kCallerFp , kCallerPp ,
  kCallerPc , kMaterializedObjectRef , kMaterializeObject
}
 
- Static Public Member Functions inherited from dart::DeoptInstr
static DeoptInstrCreate (intptr_t kind_as_int, intptr_t source_index)
 
static uword GetRetAddress (DeoptInstr *instr, const ObjectPool &object_pool, Code *code)
 
static intptr_t GetFieldCount (DeoptInstr *instr)
 
virtual intptr_t source_index () const =0
 
virtual const char * ArgumentsToCString () const
 

Detailed Description

Definition at line 413 of file deopt_instructions.cc.

Constructor & Destructor Documentation

◆ DeoptRetAddressInstr() [1/2]

dart::DeoptRetAddressInstr::DeoptRetAddressInstr ( intptr_t  object_table_index,
intptr_t  deopt_id 
)
inline

Definition at line 415 of file deopt_instructions.cc.

416 : object_table_index_(object_table_index), deopt_id_(deopt_id) {
418 ASSERT(deopt_id >= 0);
419 }
#define ASSERT(E)

◆ DeoptRetAddressInstr() [2/2]

dart::DeoptRetAddressInstr::DeoptRetAddressInstr ( intptr_t  source_index)
inlineexplicit

Definition at line 421 of file deopt_instructions.cc.

422 : object_table_index_(ObjectTableIndex::decode(source_index)),
423 deopt_id_(DeoptId::decode(source_index)) {}
virtual intptr_t source_index() const
static DecodeResult decode(std::string path)
Definition: png_codec.cpp:124

Member Function Documentation

◆ ArgumentsToCString()

virtual const char * dart::DeoptRetAddressInstr::ArgumentsToCString ( ) const
inlinevirtual

Reimplemented from dart::DeoptInstr.

Definition at line 432 of file deopt_instructions.cc.

432 {
434 "%" Pd ", %" Pd "", object_table_index_, deopt_id_);
435 }
Zone * zone() const
Definition: thread_state.h:37
static Thread * Current()
Definition: thread.h:362
char * PrintToString(const char *format,...) PRINTF_ATTRIBUTE(2
Definition: zone.cc:313
#define Pd
Definition: globals.h:408

◆ deopt_id()

intptr_t dart::DeoptRetAddressInstr::deopt_id ( ) const
inline

Definition at line 444 of file deopt_instructions.cc.

444{ return deopt_id_; }

◆ Execute()

void dart::DeoptRetAddressInstr::Execute ( DeoptContext deopt_context,
intptr_t *  dest_addr 
)
inlinevirtual

Implements dart::DeoptInstr.

Definition at line 437 of file deopt_instructions.cc.

437 {
438 *dest_addr = Smi::RawValue(0);
439 deopt_context->DeferRetAddrMaterialization(object_table_index_, deopt_id_,
440 dest_addr);
441 }
static intptr_t RawValue(intptr_t value)
Definition: object.h:10022

◆ kind()

virtual DeoptInstr::Kind dart::DeoptRetAddressInstr::kind ( ) const
inlinevirtual

Implements dart::DeoptInstr.

Definition at line 430 of file deopt_instructions.cc.

430{ return kRetAddress; }

◆ object_table_index()

intptr_t dart::DeoptRetAddressInstr::object_table_index ( ) const
inline

Definition at line 443 of file deopt_instructions.cc.

443{ return object_table_index_; }

◆ source_index()

virtual intptr_t dart::DeoptRetAddressInstr::source_index ( ) const
inlinevirtual

Implements dart::DeoptInstr.

Definition at line 425 of file deopt_instructions.cc.

425 {
426 return ObjectTableIndex::encode(object_table_index_) |
427 DeoptId::encode(deopt_id_);
428 }
static void encode(uint8_t output[16], const uint32_t input[4])
Definition: SkMD5.cpp:240

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