Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: runtime/vm/assembler_arm64_test.cc

Issue 1156593002: Cache current thread in a reserved register and use it in LoadIsolate (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Added more comments. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 3535 matching lines...) Expand 10 before | Expand all | Expand 10 after
3546 double res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()); 3546 double res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry());
3547 EXPECT_FLOAT_EQ(1.0/sqrt(147000.0), res, 0.0001); 3547 EXPECT_FLOAT_EQ(1.0/sqrt(147000.0), res, 0.0001);
3548 } 3548 }
3549 3549
3550 3550
3551 // Called from assembler_test.cc. 3551 // Called from assembler_test.cc.
3552 // LR: return address. 3552 // LR: return address.
3553 // R0: context. 3553 // R0: context.
3554 // R1: value. 3554 // R1: value.
3555 // R2: growable array. 3555 // R2: growable array.
3556 // R3: current thread.
3556 ASSEMBLER_TEST_GENERATE(StoreIntoObject, assembler) { 3557 ASSEMBLER_TEST_GENERATE(StoreIntoObject, assembler) {
3557 __ SetupDartSP(kTestStackSpace); 3558 __ SetupDartSP(kTestStackSpace);
3558 __ TagAndPushPP(); 3559 __ TagAndPushPP();
3559 __ LoadPoolPointer(PP); 3560 __ LoadPoolPointer(PP);
3561 __ Push(THR);
3560 __ Push(CTX); 3562 __ Push(CTX);
3561 __ Push(LR); 3563 __ Push(LR);
3562 __ mov(CTX, R0); 3564 __ mov(CTX, R0);
3565 __ mov(THR, R3);
3563 __ StoreIntoObject(R2, 3566 __ StoreIntoObject(R2,
3564 FieldAddress(R2, GrowableObjectArray::data_offset()), 3567 FieldAddress(R2, GrowableObjectArray::data_offset()),
3565 R1); 3568 R1);
3566 __ Pop(LR); 3569 __ Pop(LR);
3567 __ Pop(CTX); 3570 __ Pop(CTX);
3571 __ Pop(THR);
3568 __ PopAndUntagPP(); 3572 __ PopAndUntagPP();
3569 __ mov(CSP, SP); 3573 __ mov(CSP, SP);
3570 __ ret(); 3574 __ ret();
3571 } 3575 }
3572 3576
3573 3577
3574 ASSEMBLER_TEST_GENERATE(ComputeRange, assembler) { 3578 ASSEMBLER_TEST_GENERATE(ComputeRange, assembler) {
3575 __ SetupDartSP(kTestStackSpace); 3579 __ SetupDartSP(kTestStackSpace);
3576 __ TagAndPushPP(); 3580 __ TagAndPushPP();
3577 __ LoadPoolPointer(PP); 3581 __ LoadPoolPointer(PP);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
3627 3631
3628 EXPECT_EQ(-1, RANGE_OF(Bool::True().raw())); 3632 EXPECT_EQ(-1, RANGE_OF(Bool::True().raw()));
3629 3633
3630 #undef RANGE_OF 3634 #undef RANGE_OF
3631 } 3635 }
3632 3636
3633 3637
3634 } // namespace dart 3638 } // namespace dart
3635 3639
3636 #endif // defined(TARGET_ARCH_ARM64) 3640 #endif // defined(TARGET_ARCH_ARM64)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698