OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 #ifndef VM_ASSEMBLER_ARM64_H_ | 5 #ifndef VM_ASSEMBLER_ARM64_H_ |
6 #define VM_ASSEMBLER_ARM64_H_ | 6 #define VM_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
9 #error Do not include assembler_arm64.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm64.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1342 Register scratch, | 1342 Register scratch, |
1343 Label* miss); | 1343 Label* miss); |
1344 | 1344 |
1345 void UpdateRangeFeedback(Register value, | 1345 void UpdateRangeFeedback(Register value, |
1346 intptr_t idx, | 1346 intptr_t idx, |
1347 Register ic_data, | 1347 Register ic_data, |
1348 Register scratch1, | 1348 Register scratch1, |
1349 Register scratch2, | 1349 Register scratch2, |
1350 Label* miss); | 1350 Label* miss); |
1351 | 1351 |
| 1352 void SetupDartSP(); |
| 1353 void RestoreCSP(); |
| 1354 |
1352 void EnterFrame(intptr_t frame_size); | 1355 void EnterFrame(intptr_t frame_size); |
1353 void LeaveFrame(); | 1356 void LeaveFrame(); |
1354 | 1357 |
1355 // When entering Dart code from C++, we copy the system stack pointer (CSP) | |
1356 // to the Dart stack pointer (SP), and reserve a little space for the stack | |
1357 // to grow. | |
1358 void SetupDartSP(intptr_t reserved_space) { | |
1359 ASSERT(Utils::IsAligned(reserved_space, 16)); | |
1360 mov(SP, CSP); | |
1361 sub(CSP, CSP, Operand(reserved_space)); | |
1362 } | |
1363 | |
1364 void CheckCodePointer(); | 1358 void CheckCodePointer(); |
1365 void RestoreCodePointer(); | 1359 void RestoreCodePointer(); |
1366 | 1360 |
1367 void EnterDartFrame(intptr_t frame_size, Register new_pp = kNoRegister); | 1361 void EnterDartFrame(intptr_t frame_size, Register new_pp = kNoRegister); |
1368 void EnterOsrFrame(intptr_t extra_size, Register new_pp); | 1362 void EnterOsrFrame(intptr_t extra_size, Register new_pp); |
1369 void LeaveDartFrame(RestorePP restore_pp = kRestoreCallerPP); | 1363 void LeaveDartFrame(RestorePP restore_pp = kRestoreCallerPP); |
1370 | 1364 |
1371 void EnterCallRuntimeFrame(intptr_t frame_size); | 1365 void EnterCallRuntimeFrame(intptr_t frame_size); |
1372 void LeaveCallRuntimeFrame(); | 1366 void LeaveCallRuntimeFrame(); |
1373 void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count); | 1367 void CallRuntime(const RuntimeEntry& entry, intptr_t argument_count); |
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1964 Register value, | 1958 Register value, |
1965 Label* no_update); | 1959 Label* no_update); |
1966 | 1960 |
1967 DISALLOW_ALLOCATION(); | 1961 DISALLOW_ALLOCATION(); |
1968 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1962 DISALLOW_COPY_AND_ASSIGN(Assembler); |
1969 }; | 1963 }; |
1970 | 1964 |
1971 } // namespace dart | 1965 } // namespace dart |
1972 | 1966 |
1973 #endif // VM_ASSEMBLER_ARM64_H_ | 1967 #endif // VM_ASSEMBLER_ARM64_H_ |
OLD | NEW |