OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/globals.h" | 5 #include "vm/globals.h" |
6 #if defined(TARGET_ARCH_ARM64) | 6 #if defined(TARGET_ARCH_ARM64) |
7 | 7 |
8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
9 #include "vm/cpu.h" | 9 #include "vm/cpu.h" |
10 #include "vm/os.h" | 10 #include "vm/os.h" |
(...skipping 2323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2334 | 2334 |
2335 | 2335 |
2336 ASSEMBLER_TEST_GENERATE(FldrdFstrdHeapTag, assembler) { | 2336 ASSEMBLER_TEST_GENERATE(FldrdFstrdHeapTag, assembler) { |
2337 __ SetupDartSP(); | 2337 __ SetupDartSP(); |
2338 __ LoadDImmediate(V0, 43.0); | 2338 __ LoadDImmediate(V0, 43.0); |
2339 __ LoadDImmediate(V1, 42.0); | 2339 __ LoadDImmediate(V1, 42.0); |
2340 __ AddImmediate(SP, SP, -1 * kWordSize); | 2340 __ AddImmediate(SP, SP, -1 * kWordSize); |
2341 __ add(R2, SP, Operand(1)); | 2341 __ add(R2, SP, Operand(1)); |
2342 __ fstrd(V1, Address(R2, -1)); | 2342 __ fstrd(V1, Address(R2, -1)); |
2343 __ fldrd(V0, Address(R2, -1)); | 2343 __ fldrd(V0, Address(R2, -1)); |
2344 __ AddImmediate(SP, SP, 1 * kWordSize); | 2344 __ AddImmediate(SP, 1 * kWordSize); |
2345 __ RestoreCSP(); | 2345 __ RestoreCSP(); |
2346 __ ret(); | 2346 __ ret(); |
2347 } | 2347 } |
2348 | 2348 |
2349 | 2349 |
2350 ASSEMBLER_TEST_RUN(FldrdFstrdHeapTag, test) { | 2350 ASSEMBLER_TEST_RUN(FldrdFstrdHeapTag, test) { |
2351 typedef double (*DoubleReturn)() DART_UNUSED; | 2351 typedef double (*DoubleReturn)() DART_UNUSED; |
2352 EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry())); | 2352 EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry())); |
2353 } | 2353 } |
2354 | 2354 |
(...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3792 __ Pop(LR); | 3792 __ Pop(LR); |
3793 __ Pop(THR); | 3793 __ Pop(THR); |
3794 __ Pop(CODE_REG); | 3794 __ Pop(CODE_REG); |
3795 __ RestoreCSP(); | 3795 __ RestoreCSP(); |
3796 __ ret(); | 3796 __ ret(); |
3797 } | 3797 } |
3798 | 3798 |
3799 } // namespace dart | 3799 } // namespace dart |
3800 | 3800 |
3801 #endif // defined(TARGET_ARCH_ARM64) | 3801 #endif // defined(TARGET_ARCH_ARM64) |
OLD | NEW |