| Index: runtime/vm/simulator_arm64.h
|
| ===================================================================
|
| --- runtime/vm/simulator_arm64.h (revision 35658)
|
| +++ runtime/vm/simulator_arm64.h (working copy)
|
| @@ -24,6 +24,11 @@
|
| class Isolate;
|
| class SimulatorSetjmpBuffer;
|
|
|
| +typedef struct {
|
| + int64_t lo;
|
| + int64_t hi;
|
| +} simd_value_t;
|
| +
|
| class Simulator {
|
| public:
|
| static const uword kSimulatorStackUnderflowSize = 64;
|
| @@ -46,6 +51,11 @@
|
| void set_wregister(Register reg, int32_t value, R31Type r31t = R31IsSP);
|
| int32_t get_wregister(Register reg, R31Type r31t = R31IsSP) const;
|
|
|
| + // Get and set a V register in double ('d') mode. Setting clears the high
|
| + // 64 bits of the V register. Getting ignores the high 64 bits.
|
| + int64_t get_vregisterd(VRegister reg);
|
| + void set_vregisterd(VRegister reg, int64_t value);
|
| +
|
| int64_t get_pc() const;
|
| int64_t get_last_pc() const;
|
| void set_pc(int64_t pc);
|
| @@ -70,7 +80,9 @@
|
| int64_t parameter0,
|
| int64_t parameter1,
|
| int64_t parameter2,
|
| - int64_t parameter3);
|
| + int64_t parameter3,
|
| + bool fp_return = false,
|
| + bool fp_args = false);
|
|
|
| // Runtime and native call support.
|
| enum CallKind {
|
| @@ -107,6 +119,12 @@
|
| bool c_flag_;
|
| bool v_flag_;
|
|
|
| + simd_value_t vregisters_[kNumberOfVRegisters];
|
| + bool fp_n_flag_;
|
| + bool fp_z_flag_;
|
| + bool fp_c_flag_;
|
| + bool fp_v_flag_;
|
| +
|
| // Simulator support.
|
| int64_t last_pc_;
|
| int64_t pc_;
|
|
|