| Index: runtime/vm/simulator_dbc.cc
|
| diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
|
| index 81a4f32cdb3408716baa34d610af5ad7cf16429a..16d8ea0491a6a8b79cc3e92e4896842caa243b84 100644
|
| --- a/runtime/vm/simulator_dbc.cc
|
| +++ b/runtime/vm/simulator_dbc.cc
|
| @@ -1979,6 +1979,18 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(LoadIndexed8Float64, A_B_C);
|
| + ASSERT(RawObject::IsTypedDataClassId(FP[rB]->GetClassId()));
|
| + RawTypedData* array = reinterpret_cast<RawTypedData*>(FP[rB]);
|
| + RawSmi* index = RAW_CAST(Smi, FP[rC]);
|
| + ASSERT(SimulatorHelpers::CheckIndex(index, array->ptr()->length_));
|
| + const int64_t value =
|
| + reinterpret_cast<int64_t*>(array->ptr()->data())[Smi::Value(index)];
|
| + FP[rA] = reinterpret_cast<RawObject*>(value);
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(StoreIndexedFloat64, A_B_C);
|
| uint8_t* data = SimulatorHelpers::GetTypedData(FP[rA], FP[rB], 3);
|
| *reinterpret_cast<uint64_t*>(data) = reinterpret_cast<uint64_t>(FP[rC]);
|
| @@ -1986,6 +1998,17 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(StoreIndexed8Float64, A_B_C);
|
| + ASSERT(RawObject::IsTypedDataClassId(FP[rA]->GetClassId()));
|
| + RawTypedData* array = reinterpret_cast<RawTypedData*>(FP[rA]);
|
| + RawSmi* index = RAW_CAST(Smi, FP[rB]);
|
| + ASSERT(SimulatorHelpers::CheckIndex(index, array->ptr()->length_));
|
| + const int64_t value = reinterpret_cast<int64_t>(FP[rC]);
|
| + reinterpret_cast<int64_t*>(array->ptr()->data())[Smi::Value(index)] = value;
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(BoxInt32, A_D);
|
| // Casts sign-extend high 32 bits from low 32 bits.
|
| const intptr_t value = reinterpret_cast<intptr_t>(FP[rD]);
|
| @@ -2112,12 +2135,24 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(LoadIndexed8Float64, A_B_C);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(StoreIndexedFloat64, A_B_C);
|
| UNREACHABLE();
|
| DISPATCH();
|
| }
|
|
|
| {
|
| + BYTECODE(StoreIndexed8Float64, A_B_C);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(BoxInt32, A_D);
|
| UNREACHABLE();
|
| DISPATCH();
|
|
|