| Index: runtime/vm/intrinsifier_arm64.cc
|
| diff --git a/runtime/vm/intrinsifier_arm64.cc b/runtime/vm/intrinsifier_arm64.cc
|
| index 65229be8c865f594a0649ca088ca6f62d560b1cb..c648d4835eff3903f0f096db96b4cfa68b40a535 100644
|
| --- a/runtime/vm/intrinsifier_arm64.cc
|
| +++ b/runtime/vm/intrinsifier_arm64.cc
|
| @@ -873,7 +873,7 @@ static void CompareDoubles(Assembler* assembler, Condition true_condition) {
|
|
|
| __ Bind(&is_smi); // Convert R0 to a double.
|
| __ SmiUntag(R0);
|
| - __ scvtfd(V1, R0);
|
| + __ scvtfdx(V1, R0);
|
| __ b(&double_op); // Then do the comparison.
|
| __ Bind(&fall_through);
|
| }
|
| @@ -959,7 +959,7 @@ void Intrinsifier::Double_mulFromInteger(Assembler* assembler) {
|
| __ b(&fall_through, NE);
|
| // Is Smi.
|
| __ SmiUntag(R0);
|
| - __ scvtfd(V1, R0);
|
| + __ scvtfdx(V1, R0);
|
| __ ldr(R0, Address(SP, 1 * kWordSize));
|
| __ LoadDFieldFromOffset(V0, R0, Double::value_offset(), kNoPP);
|
| __ fmuld(V0, V0, V1);
|
| @@ -980,7 +980,7 @@ void Intrinsifier::DoubleFromInteger(Assembler* assembler) {
|
| __ b(&fall_through, NE);
|
| // Is Smi.
|
| __ SmiUntag(R0);
|
| - __ scvtfd(V0, R0);
|
| + __ scvtfdx(V0, R0);
|
| const Class& double_class = Class::Handle(
|
| Isolate::Current()->object_store()->double_class());
|
| __ TryAllocate(double_class, &fall_through, R0, R1, kNoPP);
|
| @@ -1068,7 +1068,7 @@ void Intrinsifier::MathSqrt(Assembler* assembler) {
|
| __ ret();
|
| __ Bind(&is_smi);
|
| __ SmiUntag(R0);
|
| - __ scvtfd(V1, R0);
|
| + __ scvtfdx(V1, R0);
|
| __ b(&double_op);
|
| __ Bind(&fall_through);
|
| }
|
|
|