| Index: runtime/vm/simulator_dbc.cc
|
| diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
|
| index 53f637ad7ca3075b145ebcf47ff7bbc63c74f3f5..e05abeaf6e2c7f19ddbef129012e7650ef73ffd7 100644
|
| --- a/runtime/vm/simulator_dbc.cc
|
| +++ b/runtime/vm/simulator_dbc.cc
|
| @@ -1969,6 +1969,43 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(DTruncate, A_D);
|
| + const double value = bit_cast<double, RawObject*>(FP[rD]);
|
| + FP[rA] = bit_cast<RawObject*, double>(trunc(value));
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DFloor, A_D);
|
| + const double value = bit_cast<double, RawObject*>(FP[rD]);
|
| + FP[rA] = bit_cast<RawObject*, double>(floor(value));
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DCeil, A_D);
|
| + const double value = bit_cast<double, RawObject*>(FP[rD]);
|
| + FP[rA] = bit_cast<RawObject*, double>(ceil(value));
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DoubleToFloat, A_D);
|
| + const double value = bit_cast<double, RawObject*>(FP[rD]);
|
| + const float valuef = static_cast<float>(value);
|
| + *reinterpret_cast<float*>(&FP[rA]) = valuef;
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(FloatToDouble, A_D);
|
| + const float valuef = *reinterpret_cast<float*>(&FP[rD]);
|
| + const double value = static_cast<double>(valuef);
|
| + FP[rA] = bit_cast<RawObject*, double>(value);
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(LoadIndexedFloat64, A_B_C);
|
| uint8_t* data = SimulatorHelpers::GetTypedData(FP[rB], FP[rC], 3);
|
| *reinterpret_cast<uint64_t*>(&FP[rA]) = *reinterpret_cast<uint64_t*>(data);
|
| @@ -2126,6 +2163,36 @@ RawObject* Simulator::Call(const Code& code,
|
| }
|
|
|
| {
|
| + BYTECODE(DTruncate, A_D);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DFloor, A_D);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DCeil, A_D);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(DoubleToFloat, A_D);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| + BYTECODE(FloatToDouble, A_D);
|
| + UNREACHABLE();
|
| + DISPATCH();
|
| + }
|
| +
|
| + {
|
| BYTECODE(LoadIndexedFloat64, A_B_C);
|
| UNREACHABLE();
|
| DISPATCH();
|
|
|