Flutter Engine
The Flutter Engine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
dart::Simulator Class Reference

#include <simulator_arm.h>

Public Types

enum  CallKind {
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper
}
 
enum  CallKind {
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper
}
 
enum  CallKind {
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper
}
 
enum  CallKind {
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper ,
  kRuntimeCall , kLeafRuntimeCall , kLeafFloatRuntimeCall , kNativeCallWrapper
}
 

Public Member Functions

 Simulator ()
 
 ~Simulator ()
 
void set_register (Register reg, int32_t value)
 
DART_FORCE_INLINE int32_t get_register (Register reg) const
 
int32_t get_sp () const
 
int32_t get_lr () const
 
void set_pc (int32_t value)
 
DART_FORCE_INLINE int32_t get_pc () const
 
void set_sregister (SRegister reg, float value)
 
float get_sregister (SRegister reg) const
 
void set_dregister (DRegister reg, double value)
 
double get_dregister (DRegister reg) const
 
void set_qregister (QRegister reg, const simd_value_t &value)
 
void get_qregister (QRegister reg, simd_value_t *value) const
 
void set_sregister_bits (SRegister reg, int32_t value)
 
int32_t get_sregister_bits (SRegister reg) const
 
void set_dregister_bits (DRegister reg, int64_t value)
 
int64_t get_dregister_bits (DRegister reg) const
 
uword stack_base () const
 
uword overflow_stack_limit () const
 
uword stack_limit () const
 
uint64_t get_icount () const
 
int64_t Call (int32_t entry, int32_t parameter0, int32_t parameter1, int32_t parameter2, int32_t parameter3, bool fp_return=false, bool fp_args=false)
 
void JumpToFrame (uword pc, uword sp, uword fp, Thread *thread)
 
 Simulator ()
 
 ~Simulator ()
 
void set_register (Instr *instr, Register reg, int64_t value, R31Type r31t=R31IsSP)
 
int64_t get_register (Register reg, R31Type r31t=R31IsSP) const
 
void set_wregister (Register reg, int32_t value, R31Type r31t=R31IsSP)
 
int32_t get_wregister (Register reg, R31Type r31t=R31IsSP) const
 
int32_t get_vregisters (VRegister reg, int idx) const
 
void set_vregisters (VRegister reg, int idx, int32_t value)
 
int64_t get_vregisterd (VRegister reg, int idx) const
 
void set_vregisterd (VRegister reg, int idx, int64_t value)
 
void get_vregister (VRegister reg, simd_value_t *value) const
 
void set_vregister (VRegister reg, const simd_value_t &value)
 
int64_t get_sp () const
 
int64_t get_lr () const
 
uint64_t get_pc () const
 
uint64_t get_last_pc () const
 
void set_pc (uint64_t pc)
 
uword stack_base () const
 
uword overflow_stack_limit () const
 
uword stack_limit () const
 
uint64_t get_icount () const
 
int64_t Call (int64_t entry, int64_t parameter0, int64_t parameter1, int64_t parameter2, int64_t parameter3, bool fp_return=false, bool fp_args=false)
 
void JumpToFrame (uword pc, uword sp, uword fp, Thread *thread)
 
 Simulator ()
 
 ~Simulator ()
 
intx_t CallX (intx_t function, intx_t arg0=0, intx_t arg1=0, intx_t arg2=0, intx_t arg3=0)
 
intx_t CallI (intx_t function, double arg0, double arg1=0.0)
 
intx_t CallI (intx_t function, float arg0, float arg1=0.0f)
 
double CallD (intx_t function, intx_t arg0, intx_t arg1=0)
 
double CallD (intx_t function, double arg0, double arg1=0.0, double arg2=0.0)
 
double CallD (intx_t function, intx_t arg0, double arg1)
 
double CallD (intx_t function, float arg0)
 
float CallF (intx_t function, intx_t arg0, intx_t arg1=0)
 
float CallF (intx_t function, float arg0, float arg1=0.0f, float arg2=0.0f)
 
float CallF (intx_t function, intx_t arg0, float arg1)
 
float CallF (intx_t function, double arg0)
 
int64_t Call (intx_t entry, intx_t parameter0, intx_t parameter1, intx_t parameter2, intx_t parameter3, bool fp_return=false, bool fp_args=false)
 
void JumpToFrame (uword pc, uword sp, uword fp, Thread *thread)
 
uintx_t get_register (Register rs) const
 
uintx_t get_pc () const
 
uintx_t get_sp () const
 
uintx_t get_fp () const
 
uintx_t get_lr () const
 
void PrintRegisters ()
 
void PrintStack ()
 
uword stack_base () const
 
uword overflow_stack_limit () const
 
uword stack_limit () const
 
uint64_t get_icount () const
 
 Simulator ()
 
 ~Simulator ()
 
int64_t Call (int64_t entry, int64_t parameter0, int64_t parameter1, int64_t parameter2, int64_t parameter3, bool fp_return=false, bool fp_args=false)
 
void JumpToFrame (uword pc, uword sp, uword fp, Thread *thread)
 
uint64_t get_register (Register rs) const
 
uint64_t get_pc () const
 
uint64_t get_sp () const
 
uint64_t get_fp () const
 
uint64_t get_lr () const
 
uword stack_base () const
 
uword overflow_stack_limit () const
 
uword stack_limit () const
 
uint64_t get_icount () const
 

Static Public Member Functions

static SimulatorCurrent ()
 
static void Init ()
 
static uword RedirectExternalReference (uword function, CallKind call_kind, int argument_count)
 
static uword FunctionForRedirect (uword redirect)
 
static SimulatorCurrent ()
 
static void Init ()
 
static uword RedirectExternalReference (uword function, CallKind call_kind, int argument_count)
 
static uword FunctionForRedirect (uword redirect)
 
static SimulatorCurrent ()
 
static uword RedirectExternalReference (uword function, CallKind call_kind, int argument_count)
 
static uword FunctionForRedirect (uword redirect)
 
static void Init ()
 
static SimulatorCurrent ()
 
static uword RedirectExternalReference (uword function, CallKind call_kind, int argument_count)
 
static uword FunctionForRedirect (uword redirect)
 
static void Init ()
 

Static Public Attributes

static constexpr uword kSimulatorStackUnderflowSize = 64
 

Friends

class SimulatorDebugger
 
class SimulatorSetjmpBuffer
 

Detailed Description

Definition at line 41 of file simulator_arm.h.

Member Enumeration Documentation

◆ CallKind [1/4]

Enumerator
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 

Definition at line 112 of file simulator_arm.h.

◆ CallKind [2/4]

Enumerator
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 

Definition at line 103 of file simulator_arm64.h.

◆ CallKind [3/4]

Enumerator
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 

Definition at line 149 of file simulator_riscv.h.

◆ CallKind [4/4]

Enumerator
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 
kRuntimeCall 
kLeafRuntimeCall 
kLeafFloatRuntimeCall 
kNativeCallWrapper 

Definition at line 37 of file simulator_x64.h.

Constructor & Destructor Documentation

◆ Simulator() [1/4]

dart::Simulator::Simulator ( )

◆ ~Simulator() [1/4]

dart::Simulator::~Simulator ( )

◆ Simulator() [2/4]

dart::Simulator::Simulator ( )

◆ ~Simulator() [2/4]

dart::Simulator::~Simulator ( )

◆ Simulator() [3/4]

dart::Simulator::Simulator ( )

◆ ~Simulator() [3/4]

dart::Simulator::~Simulator ( )

◆ Simulator() [4/4]

dart::Simulator::Simulator ( )

◆ ~Simulator() [4/4]

dart::Simulator::~Simulator ( )

Member Function Documentation

◆ Call() [1/4]

int64_t dart::Simulator::Call ( int32_t  entry,
int32_t  parameter0,
int32_t  parameter1,
int32_t  parameter2,
int32_t  parameter3,
bool  fp_return = false,
bool  fp_args = false 
)

◆ Call() [2/4]

int64_t dart::Simulator::Call ( int64_t  entry,
int64_t  parameter0,
int64_t  parameter1,
int64_t  parameter2,
int64_t  parameter3,
bool  fp_return = false,
bool  fp_args = false 
)

◆ Call() [3/4]

int64_t dart::Simulator::Call ( int64_t  entry,
int64_t  parameter0,
int64_t  parameter1,
int64_t  parameter2,
int64_t  parameter3,
bool  fp_return = false,
bool  fp_args = false 
)

◆ Call() [4/4]

int64_t dart::Simulator::Call ( intx_t  entry,
intx_t  parameter0,
intx_t  parameter1,
intx_t  parameter2,
intx_t  parameter3,
bool  fp_return = false,
bool  fp_args = false 
)

◆ CallD() [1/4]

double dart::Simulator::CallD ( intx_t  function,
double  arg0,
double  arg1 = 0.0,
double  arg2 = 0.0 
)
inline

Definition at line 72 of file simulator_riscv.h.

75 {
76 PreservedRegisters preserved;
77 PrepareCall(&preserved);
78 set_fregd(FA0, arg0);
79 set_fregd(FA1, arg1);
80 set_fregd(FA2, arg2);
81 RunCall(function, &preserved);
82 return get_fregd(FA0);
83 }
Dart_NativeFunction function
Definition: fuchsia.cc:51

◆ CallD() [2/4]

double dart::Simulator::CallD ( intx_t  function,
float  arg0 
)
inline

Definition at line 92 of file simulator_riscv.h.

92 {
93 PreservedRegisters preserved;
94 PrepareCall(&preserved);
95 set_fregs(FA0, arg0);
96 RunCall(function, &preserved);
97 return get_fregd(FA0);
98 }

◆ CallD() [3/4]

double dart::Simulator::CallD ( intx_t  function,
intx_t  arg0,
double  arg1 
)
inline

Definition at line 84 of file simulator_riscv.h.

84 {
85 PreservedRegisters preserved;
86 PrepareCall(&preserved);
87 set_xreg(A0, arg0);
88 set_fregd(FA0, arg1);
89 RunCall(function, &preserved);
90 return get_fregd(FA0);
91 }

◆ CallD() [4/4]

double dart::Simulator::CallD ( intx_t  function,
intx_t  arg0,
intx_t  arg1 = 0 
)
inline

Definition at line 64 of file simulator_riscv.h.

64 {
65 PreservedRegisters preserved;
66 PrepareCall(&preserved);
67 set_xreg(A0, arg0);
68 set_xreg(A1, arg1);
69 RunCall(function, &preserved);
70 return get_fregd(FA0);
71 }

◆ CallF() [1/4]

float dart::Simulator::CallF ( intx_t  function,
double  arg0 
)
inline

Definition at line 128 of file simulator_riscv.h.

128 {
129 PreservedRegisters preserved;
130 PrepareCall(&preserved);
131 set_fregd(FA0, arg0);
132 RunCall(function, &preserved);
133 return get_fregs(FA0);
134 }

◆ CallF() [2/4]

float dart::Simulator::CallF ( intx_t  function,
float  arg0,
float  arg1 = 0.0f,
float  arg2 = 0.0f 
)
inline

Definition at line 108 of file simulator_riscv.h.

111 {
112 PreservedRegisters preserved;
113 PrepareCall(&preserved);
114 set_fregs(FA0, arg0);
115 set_fregs(FA1, arg1);
116 set_fregs(FA2, arg2);
117 RunCall(function, &preserved);
118 return get_fregs(FA0);
119 }

◆ CallF() [3/4]

float dart::Simulator::CallF ( intx_t  function,
intx_t  arg0,
float  arg1 
)
inline

Definition at line 120 of file simulator_riscv.h.

120 {
121 PreservedRegisters preserved;
122 PrepareCall(&preserved);
123 set_xreg(A0, arg0);
124 set_fregs(FA0, arg1);
125 RunCall(function, &preserved);
126 return get_fregs(FA0);
127 }

◆ CallF() [4/4]

float dart::Simulator::CallF ( intx_t  function,
intx_t  arg0,
intx_t  arg1 = 0 
)
inline

Definition at line 100 of file simulator_riscv.h.

100 {
101 PreservedRegisters preserved;
102 SavePreservedRegisters(&preserved);
103 set_xreg(A0, arg0);
104 set_xreg(A1, arg1);
105 RunCall(function, &preserved);
106 return get_fregs(FA0);
107 }

◆ CallI() [1/2]

intx_t dart::Simulator::CallI ( intx_t  function,
double  arg0,
double  arg1 = 0.0 
)
inline

Definition at line 47 of file simulator_riscv.h.

47 {
48 PreservedRegisters preserved;
49 PrepareCall(&preserved);
50 set_fregd(FA0, arg0);
51 set_fregd(FA1, arg1);
52 RunCall(function, &preserved);
53 return get_xreg(A0);
54 }

◆ CallI() [2/2]

intx_t dart::Simulator::CallI ( intx_t  function,
float  arg0,
float  arg1 = 0.0f 
)
inline

Definition at line 55 of file simulator_riscv.h.

55 {
56 PreservedRegisters preserved;
57 PrepareCall(&preserved);
58 set_fregs(FA0, arg0);
59 set_fregs(FA1, arg1);
60 RunCall(function, &preserved);
61 return get_xreg(A0);
62 }

◆ CallX()

intx_t dart::Simulator::CallX ( intx_t  function,
intx_t  arg0 = 0,
intx_t  arg1 = 0,
intx_t  arg2 = 0,
intx_t  arg3 = 0 
)
inline

Definition at line 32 of file simulator_riscv.h.

36 {
37 PreservedRegisters preserved;
38 PrepareCall(&preserved);
39 set_xreg(A0, arg0);
40 set_xreg(A1, arg1);
41 set_xreg(A2, arg2);
42 set_xreg(A3, arg3);
43 RunCall(function, &preserved);
44 return get_xreg(A0);
45 }

◆ Current() [1/4]

static Simulator * dart::Simulator::Current ( )
static

◆ Current() [2/4]

static Simulator * dart::Simulator::Current ( )
static

◆ Current() [3/4]

static Simulator * dart::Simulator::Current ( )
static

◆ Current() [4/4]

static Simulator * dart::Simulator::Current ( )
static

◆ FunctionForRedirect() [1/4]

static uword dart::Simulator::FunctionForRedirect ( uword  redirect)
static

◆ FunctionForRedirect() [2/4]

static uword dart::Simulator::FunctionForRedirect ( uword  redirect)
static

◆ FunctionForRedirect() [3/4]

static uword dart::Simulator::FunctionForRedirect ( uword  redirect)
static

◆ FunctionForRedirect() [4/4]

static uword dart::Simulator::FunctionForRedirect ( uword  redirect)
static

◆ get_dregister()

double dart::Simulator::get_dregister ( DRegister  reg) const

◆ get_dregister_bits()

int64_t dart::Simulator::get_dregister_bits ( DRegister  reg) const

◆ get_fp() [1/2]

uintx_t dart::Simulator::get_fp ( ) const
inline

Definition at line 166 of file simulator_riscv.h.

166{ return get_xreg(FP); }

◆ get_fp() [2/2]

uint64_t dart::Simulator::get_fp ( ) const
inline

Definition at line 54 of file simulator_x64.h.

54{ return 0; }

◆ get_icount() [1/4]

uint64_t dart::Simulator::get_icount ( ) const
inline

Definition at line 92 of file simulator_arm.h.

92{ return icount_; }

◆ get_icount() [2/4]

uint64_t dart::Simulator::get_icount ( ) const
inline

Definition at line 85 of file simulator_arm64.h.

85{ return icount_; }

◆ get_icount() [3/4]

uint64_t dart::Simulator::get_icount ( ) const
inline

Definition at line 179 of file simulator_riscv.h.

179{ return instret_; }

◆ get_icount() [4/4]

uint64_t dart::Simulator::get_icount ( ) const
inline

Definition at line 65 of file simulator_x64.h.

65{ return 0; }

◆ get_last_pc()

uint64_t dart::Simulator::get_last_pc ( ) const

◆ get_lr() [1/4]

int32_t dart::Simulator::get_lr ( ) const
inline

Definition at line 62 of file simulator_arm.h.

62{ return get_register(R14); }
DART_FORCE_INLINE int32_t get_register(Register reg) const
Definition: simulator_arm.h:56

◆ get_lr() [2/4]

int64_t dart::Simulator::get_lr ( ) const
inline

Definition at line 71 of file simulator_arm64.h.

71{ return get_register(R30); }

◆ get_lr() [3/4]

uintx_t dart::Simulator::get_lr ( ) const
inline

Definition at line 167 of file simulator_riscv.h.

167{ return get_xreg(RA); }

◆ get_lr() [4/4]

uint64_t dart::Simulator::get_lr ( ) const
inline

Definition at line 55 of file simulator_x64.h.

55{ return 0; }

◆ get_pc() [1/4]

DART_FORCE_INLINE int32_t dart::Simulator::get_pc ( ) const
inline

Definition at line 66 of file simulator_arm.h.

66{ return registers_[PC]; }

◆ get_pc() [2/4]

uint64_t dart::Simulator::get_pc ( ) const

◆ get_pc() [3/4]

uintx_t dart::Simulator::get_pc ( ) const
inline

Definition at line 164 of file simulator_riscv.h.

164{ return pc_; }

◆ get_pc() [4/4]

uint64_t dart::Simulator::get_pc ( ) const
inline

Definition at line 52 of file simulator_x64.h.

52{ return 0; }

◆ get_qregister()

void dart::Simulator::get_qregister ( QRegister  reg,
simd_value_t value 
) const

◆ get_register() [1/4]

DART_FORCE_INLINE int32_t dart::Simulator::get_register ( Register  reg) const
inline

Definition at line 56 of file simulator_arm.h.

56 {
57 ASSERT((reg >= 0) && (reg < kNumberOfCpuRegisters));
58 return registers_[reg] + ((reg == PC) ? Instr::kPCReadOffset : 0);
59 }
#define ASSERT(E)
@ kNumberOfCpuRegisters
Definition: constants_arm.h:98

◆ get_register() [2/4]

int64_t dart::Simulator::get_register ( Register  reg,
R31Type  r31t = R31IsSP 
) const

◆ get_register() [3/4]

uintx_t dart::Simulator::get_register ( Register  rs) const
inline

Definition at line 163 of file simulator_riscv.h.

163{ return get_xreg(rs); }

◆ get_register() [4/4]

uint64_t dart::Simulator::get_register ( Register  rs) const
inline

Definition at line 51 of file simulator_x64.h.

51{ return 0; }

◆ get_sp() [1/4]

int32_t dart::Simulator::get_sp ( ) const
inline

Definition at line 61 of file simulator_arm.h.

61{ return get_register(SPREG); }
const Register SPREG

◆ get_sp() [2/4]

int64_t dart::Simulator::get_sp ( ) const
inline

Definition at line 70 of file simulator_arm64.h.

70{ return get_register(SPREG); }

◆ get_sp() [3/4]

uintx_t dart::Simulator::get_sp ( ) const
inline

Definition at line 165 of file simulator_riscv.h.

165{ return get_xreg(SP); }

◆ get_sp() [4/4]

uint64_t dart::Simulator::get_sp ( ) const
inline

Definition at line 53 of file simulator_x64.h.

53{ return 0; }

◆ get_sregister()

float dart::Simulator::get_sregister ( SRegister  reg) const

◆ get_sregister_bits()

int32_t dart::Simulator::get_sregister_bits ( SRegister  reg) const

◆ get_vregister()

void dart::Simulator::get_vregister ( VRegister  reg,
simd_value_t value 
) const

◆ get_vregisterd()

int64_t dart::Simulator::get_vregisterd ( VRegister  reg,
int  idx 
) const

◆ get_vregisters()

int32_t dart::Simulator::get_vregisters ( VRegister  reg,
int  idx 
) const

◆ get_wregister()

int32_t dart::Simulator::get_wregister ( Register  reg,
R31Type  r31t = R31IsSP 
) const

◆ Init() [1/4]

static void dart::Simulator::Init ( )
static

◆ Init() [2/4]

static void dart::Simulator::Init ( )
static

◆ Init() [3/4]

static void dart::Simulator::Init ( )
static

◆ Init() [4/4]

static void dart::Simulator::Init ( )
static

◆ JumpToFrame() [1/4]

void dart::Simulator::JumpToFrame ( uword  pc,
uword  sp,
uword  fp,
Thread thread 
)

◆ JumpToFrame() [2/4]

void dart::Simulator::JumpToFrame ( uword  pc,
uword  sp,
uword  fp,
Thread thread 
)

◆ JumpToFrame() [3/4]

void dart::Simulator::JumpToFrame ( uword  pc,
uword  sp,
uword  fp,
Thread thread 
)

◆ JumpToFrame() [4/4]

void dart::Simulator::JumpToFrame ( uword  pc,
uword  sp,
uword  fp,
Thread thread 
)

◆ overflow_stack_limit() [1/4]

uword dart::Simulator::overflow_stack_limit ( ) const
inline

Definition at line 87 of file simulator_arm.h.

87{ return overflow_stack_limit_; }

◆ overflow_stack_limit() [2/4]

uword dart::Simulator::overflow_stack_limit ( ) const
inline

Definition at line 80 of file simulator_arm64.h.

80{ return overflow_stack_limit_; }

◆ overflow_stack_limit() [3/4]

uword dart::Simulator::overflow_stack_limit ( ) const
inline

Definition at line 174 of file simulator_riscv.h.

174{ return overflow_stack_limit_; }

◆ overflow_stack_limit() [4/4]

uword dart::Simulator::overflow_stack_limit ( ) const
inline

Definition at line 60 of file simulator_x64.h.

60{ return 0; }

◆ PrintRegisters()

void dart::Simulator::PrintRegisters ( )

◆ PrintStack()

void dart::Simulator::PrintStack ( )

◆ RedirectExternalReference() [1/4]

static uword dart::Simulator::RedirectExternalReference ( uword  function,
CallKind  call_kind,
int  argument_count 
)
static

◆ RedirectExternalReference() [2/4]

static uword dart::Simulator::RedirectExternalReference ( uword  function,
CallKind  call_kind,
int  argument_count 
)
static

◆ RedirectExternalReference() [3/4]

static uword dart::Simulator::RedirectExternalReference ( uword  function,
CallKind  call_kind,
int  argument_count 
)
static

◆ RedirectExternalReference() [4/4]

static uword dart::Simulator::RedirectExternalReference ( uword  function,
CallKind  call_kind,
int  argument_count 
)
static

◆ set_dregister()

void dart::Simulator::set_dregister ( DRegister  reg,
double  value 
)

◆ set_dregister_bits()

void dart::Simulator::set_dregister_bits ( DRegister  reg,
int64_t  value 
)

◆ set_pc() [1/2]

void dart::Simulator::set_pc ( int32_t  value)

◆ set_pc() [2/2]

void dart::Simulator::set_pc ( uint64_t  pc)

◆ set_qregister()

void dart::Simulator::set_qregister ( QRegister  reg,
const simd_value_t value 
)

◆ set_register() [1/2]

void dart::Simulator::set_register ( Instr instr,
Register  reg,
int64_t  value,
R31Type  r31t = R31IsSP 
)

◆ set_register() [2/2]

void dart::Simulator::set_register ( Register  reg,
int32_t  value 
)

◆ set_sregister()

void dart::Simulator::set_sregister ( SRegister  reg,
float  value 
)

◆ set_sregister_bits()

void dart::Simulator::set_sregister_bits ( SRegister  reg,
int32_t  value 
)

◆ set_vregister()

void dart::Simulator::set_vregister ( VRegister  reg,
const simd_value_t value 
)

◆ set_vregisterd()

void dart::Simulator::set_vregisterd ( VRegister  reg,
int  idx,
int64_t  value 
)

◆ set_vregisters()

void dart::Simulator::set_vregisters ( VRegister  reg,
int  idx,
int32_t  value 
)

◆ set_wregister()

void dart::Simulator::set_wregister ( Register  reg,
int32_t  value,
R31Type  r31t = R31IsSP 
)

◆ stack_base() [1/4]

uword dart::Simulator::stack_base ( ) const
inline

Definition at line 85 of file simulator_arm.h.

85{ return stack_base_; }

◆ stack_base() [2/4]

uword dart::Simulator::stack_base ( ) const
inline

Definition at line 78 of file simulator_arm64.h.

78{ return stack_base_; }

◆ stack_base() [3/4]

uword dart::Simulator::stack_base ( ) const
inline

Definition at line 172 of file simulator_riscv.h.

172{ return stack_base_; }

◆ stack_base() [4/4]

uword dart::Simulator::stack_base ( ) const
inline

Definition at line 58 of file simulator_x64.h.

58{ return 0; }

◆ stack_limit() [1/4]

uword dart::Simulator::stack_limit ( ) const
inline

Definition at line 89 of file simulator_arm.h.

89{ return stack_limit_; }

◆ stack_limit() [2/4]

uword dart::Simulator::stack_limit ( ) const
inline

Definition at line 82 of file simulator_arm64.h.

82{ return stack_limit_; }

◆ stack_limit() [3/4]

uword dart::Simulator::stack_limit ( ) const
inline

Definition at line 176 of file simulator_riscv.h.

176{ return stack_limit_; }

◆ stack_limit() [4/4]

uword dart::Simulator::stack_limit ( ) const
inline

Definition at line 62 of file simulator_x64.h.

62{ return 0; }

Friends And Related Function Documentation

◆ SimulatorDebugger

SimulatorDebugger
friend

Definition at line 256 of file simulator_arm.h.

◆ SimulatorSetjmpBuffer

SimulatorSetjmpBuffer
friend

Definition at line 257 of file simulator_arm.h.

Member Data Documentation

◆ dregisters_

int64_t dart::Simulator::dregisters_[kNumberOfDRegisters]

Definition at line 146 of file simulator_arm.h.

◆ kSimulatorStackUnderflowSize

static constexpr uword dart::Simulator::kSimulatorStackUnderflowSize = 64
staticconstexpr

Definition at line 43 of file simulator_arm.h.

◆ qregisters_

simd_value_t dart::Simulator::qregisters_[kNumberOfQRegisters]

Definition at line 147 of file simulator_arm.h.

◆ sregisters_

int32_t dart::Simulator::sregisters_[kNumberOfSRegisters]

Definition at line 145 of file simulator_arm.h.


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