Flutter Engine
The Flutter Engine
Public Member Functions | Static Public Member Functions | List of all members
dart::CallPattern Class Reference

#include <instructions_arm.h>

Inheritance diagram for dart::CallPattern:
dart::ValueObject dart::ValueObject dart::InstructionPattern< CallPattern > dart::ValueObject dart::AllStatic dart::AllStatic dart::ValueObject dart::AllStatic dart::ValueObject

Public Member Functions

 CallPattern (uword pc, const Code &code)
 
CodePtr TargetCode () const
 
void SetTargetCode (const Code &code) const
 
 CallPattern (uword pc, const Code &code)
 
CodePtr TargetCode () const
 
void SetTargetCode (const Code &target) const
 
 CallPattern (uword pc)
 
uword TargetAddress () const
 
void SetTargetAddress (uword new_target) const
 
 CallPattern (uword pc, const Code &code)
 
CodePtr TargetCode () const
 
void SetTargetCode (const Code &target) const
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 
- Public Member Functions inherited from dart::InstructionPattern< CallPattern >
 InstructionPattern (uword pc)
 
 InstructionPattern (uword pc)
 
bool IsValid () const
 
bool IsValid () const
 

Static Public Member Functions

static int pattern_length_in_bytes ()
 
static const intpattern ()
 
- Static Public Member Functions inherited from dart::InstructionPattern< CallPattern >
static uword DecodeLoadWordImmediate (uword end, Register *reg, intptr_t *value)
 
static uword DecodeLoadWordImmediate (uword end, Register *reg, intptr_t *value)
 
static uword DecodeLoadWordImmediate (uword end, Register *reg, intptr_t *value)
 
static void EncodeLoadWordImmediate (uword end, Register reg, intptr_t value)
 
static uword DecodeLoadWordFromPool (uword end, Register *reg, intptr_t *index)
 
static uword DecodeLoadWordFromPool (uword end, Register *reg, intptr_t *index)
 
static uword DecodeLoadWordFromPool (uword end, Register *reg, intptr_t *index)
 
static uword DecodeLoadDoubleWordFromPool (uword end, Register *reg1, Register *reg2, intptr_t *index)
 
static void EncodeLoadWordFromPoolFixed (uword end, int32_t offset)
 
static void EncodeLoadWordFromPoolFixed (uword end, int32_t offset)
 

Additional Inherited Members

- Protected Member Functions inherited from dart::InstructionPattern< CallPattern >
uword start () const
 
uword start () const
 

Detailed Description

Definition at line 63 of file instructions_arm.h.

Constructor & Destructor Documentation

◆ CallPattern() [1/4]

dart::CallPattern::CallPattern ( uword  pc,
const Code code 
)

◆ CallPattern() [2/4]

dart::CallPattern::CallPattern ( uword  pc,
const Code code 
)

◆ CallPattern() [3/4]

dart::CallPattern::CallPattern ( uword  pc)
inlineexplicit

Definition at line 59 of file instructions_ia32.h.

◆ CallPattern() [4/4]

dart::CallPattern::CallPattern ( uword  pc,
const Code code 
)

Member Function Documentation

◆ pattern()

static const int * dart::CallPattern::pattern ( )
inlinestatic

Definition at line 74 of file instructions_ia32.h.

74 {
75 static const int kCallPattern[kLengthInBytes] = {0xE8, -1, -1, -1, -1};
76 return kCallPattern;
77 }

◆ pattern_length_in_bytes()

static int dart::CallPattern::pattern_length_in_bytes ( )
inlinestatic

Definition at line 73 of file instructions_ia32.h.

73{ return kLengthInBytes; }

◆ SetTargetAddress()

void dart::CallPattern::SetTargetAddress ( uword  new_target) const
inline

Definition at line 66 of file instructions_ia32.h.

66 {
67 ASSERT(this->IsValid());
68 *reinterpret_cast<uword*>(this->start() + 1) =
69 new_target - this->start() - CallPattern::pattern_length_in_bytes();
70 CPU::FlushICache(this->start() + 1, kWordSize);
71 }
static void FlushICache(uword start, uword size)
static int pattern_length_in_bytes()
#define ASSERT(E)
uintptr_t uword
Definition: globals.h:501
constexpr intptr_t kWordSize
Definition: globals.h:509

◆ SetTargetCode() [1/3]

void dart::CallPattern::SetTargetCode ( const Code code) const

◆ SetTargetCode() [2/3]

void dart::CallPattern::SetTargetCode ( const Code target) const

◆ SetTargetCode() [3/3]

void dart::CallPattern::SetTargetCode ( const Code target) const

◆ TargetAddress()

uword dart::CallPattern::TargetAddress ( ) const
inline

Definition at line 60 of file instructions_ia32.h.

60 {
61 ASSERT(this->IsValid());
63 *reinterpret_cast<uword*>(this->start() + 1);
64 }

◆ TargetCode() [1/3]

CodePtr dart::CallPattern::TargetCode ( ) const

◆ TargetCode() [2/3]

CodePtr dart::CallPattern::TargetCode ( ) const

◆ TargetCode() [3/3]

CodePtr dart::CallPattern::TargetCode ( ) const

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