| Index: runtime/vm/assembler_x64_test.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_x64_test.cc (revision 8696)
|
| +++ runtime/vm/assembler_x64_test.cc (working copy)
|
| @@ -1277,9 +1277,10 @@
|
|
|
|
|
| ASSEMBLER_TEST_GENERATE(XorpdZeroing, assembler) {
|
| - __ movsd(XMM0, Address(RSP, kWordSize));
|
| - __ xorpd(XMM0, Address(RSP, kWordSize));
|
| - __ movq(RAX, Immediate(999));
|
| + __ pushq(RAX);
|
| + __ movsd(Address(RSP, 0), XMM0);
|
| + __ xorpd(XMM0, Address(RSP, 0));
|
| + __ popq(RAX);
|
| __ ret();
|
| }
|
|
|
| @@ -1290,6 +1291,20 @@
|
| EXPECT_FLOAT_EQ(0.0, res, 0.0001);
|
| }
|
|
|
| +
|
| +ASSEMBLER_TEST_GENERATE(SquareRootDouble, assembler) {
|
| + __ sqrtsd(XMM0, XMM0);
|
| + __ ret();
|
| +}
|
| +
|
| +
|
| +ASSEMBLER_TEST_RUN(SquareRootDouble, entry) {
|
| + typedef double (*SquareRootDoubleCode)(double d);
|
| + const double kDoubleConst = .7;
|
| + double res = reinterpret_cast<SquareRootDoubleCode>(entry)(kDoubleConst);
|
| + EXPECT_FLOAT_EQ(sqrt(kDoubleConst), res, 0.0001);
|
| +}
|
| +
|
| } // namespace dart
|
|
|
| #endif // defined TARGET_ARCH_X64
|
|
|