| 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 #ifndef VM_ASSEMBLER_ARM_H_ | 5 #ifndef VM_ASSEMBLER_ARM_H_ |
| 6 #define VM_ASSEMBLER_ARM_H_ | 6 #define VM_ASSEMBLER_ARM_H_ |
| 7 | 7 |
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
| 9 #error Do not include assembler_arm.h directly; use assembler.h instead. | 9 #error Do not include assembler_arm.h directly; use assembler.h instead. |
| 10 #endif | 10 #endif |
| (...skipping 958 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 969 // a stub frame. | 969 // a stub frame. |
| 970 void EnterStubFrame(); | 970 void EnterStubFrame(); |
| 971 void LeaveStubFrame(); | 971 void LeaveStubFrame(); |
| 972 | 972 |
| 973 // The register into which the allocation stats table is loaded with | 973 // The register into which the allocation stats table is loaded with |
| 974 // LoadAllocationStatsAddress should be passed to | 974 // LoadAllocationStatsAddress should be passed to |
| 975 // IncrementAllocationStats(WithSize) as stats_addr_reg to update the | 975 // IncrementAllocationStats(WithSize) as stats_addr_reg to update the |
| 976 // allocation stats. These are separate assembler macros so we can | 976 // allocation stats. These are separate assembler macros so we can |
| 977 // avoid a dependent load too nearby the load of the table address. | 977 // avoid a dependent load too nearby the load of the table address. |
| 978 void LoadAllocationStatsAddress(Register dest, | 978 void LoadAllocationStatsAddress(Register dest, |
| 979 intptr_t cid, | 979 intptr_t cid); |
| 980 bool inline_isolate = true); | |
| 981 void IncrementAllocationStats(Register stats_addr, | 980 void IncrementAllocationStats(Register stats_addr, |
| 982 intptr_t cid, | 981 intptr_t cid, |
| 983 Heap::Space space); | 982 Heap::Space space); |
| 984 void IncrementAllocationStatsWithSize(Register stats_addr_reg, | 983 void IncrementAllocationStatsWithSize(Register stats_addr_reg, |
| 985 Register size_reg, | 984 Register size_reg, |
| 986 Heap::Space space); | 985 Heap::Space space); |
| 987 | 986 |
| 988 Address ElementAddressForIntIndex(bool is_load, | 987 Address ElementAddressForIntIndex(bool is_load, |
| 989 bool is_external, | 988 bool is_external, |
| 990 intptr_t cid, | 989 intptr_t cid, |
| 991 intptr_t index_scale, | 990 intptr_t index_scale, |
| 992 Register array, | 991 Register array, |
| 993 intptr_t index, | 992 intptr_t index, |
| 994 Register temp); | 993 Register temp); |
| 995 | 994 |
| 996 Address ElementAddressForRegIndex(bool is_load, | 995 Address ElementAddressForRegIndex(bool is_load, |
| 997 bool is_external, | 996 bool is_external, |
| 998 intptr_t cid, | 997 intptr_t cid, |
| 999 intptr_t index_scale, | 998 intptr_t index_scale, |
| 1000 Register array, | 999 Register array, |
| 1001 Register index); | 1000 Register index); |
| 1002 | 1001 |
| 1003 // If allocation tracing for |cid| is enabled, will jump to |trace| label, | 1002 // If allocation tracing for |cid| is enabled, will jump to |trace| label, |
| 1004 // which will allocate in the runtime where tracing occurs. | 1003 // which will allocate in the runtime where tracing occurs. |
| 1005 void MaybeTraceAllocation(intptr_t cid, | 1004 void MaybeTraceAllocation(intptr_t cid, |
| 1006 Register temp_reg, | 1005 Register temp_reg, |
| 1007 Label* trace, | 1006 Label* trace); |
| 1008 bool inline_isolate = true); | |
| 1009 | 1007 |
| 1010 // Inlined allocation of an instance of class 'cls', code has no runtime | 1008 // Inlined allocation of an instance of class 'cls', code has no runtime |
| 1011 // calls. Jump to 'failure' if the instance cannot be allocated here. | 1009 // calls. Jump to 'failure' if the instance cannot be allocated here. |
| 1012 // Allocated instance is returned in 'instance_reg'. | 1010 // Allocated instance is returned in 'instance_reg'. |
| 1013 // Only the tags field of the object is initialized. | 1011 // Only the tags field of the object is initialized. |
| 1014 void TryAllocate(const Class& cls, | 1012 void TryAllocate(const Class& cls, |
| 1015 Label* failure, | 1013 Label* failure, |
| 1016 Register instance_reg, | 1014 Register instance_reg, |
| 1017 Register temp_reg); | 1015 Register temp_reg); |
| 1018 | 1016 |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1216 Register new_value, | 1214 Register new_value, |
| 1217 FieldContent old_content); | 1215 FieldContent old_content); |
| 1218 | 1216 |
| 1219 DISALLOW_ALLOCATION(); | 1217 DISALLOW_ALLOCATION(); |
| 1220 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1218 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1221 }; | 1219 }; |
| 1222 | 1220 |
| 1223 } // namespace dart | 1221 } // namespace dart |
| 1224 | 1222 |
| 1225 #endif // VM_ASSEMBLER_ARM_H_ | 1223 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |