| 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 #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/code_generator.h" | 9 #include "vm/code_generator.h" |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| 11 #include "vm/dart_entry.h" | 11 #include "vm/dart_entry.h" |
| 12 #include "vm/flow_graph_compiler.h" | 12 #include "vm/flow_graph_compiler.h" |
| 13 #include "vm/heap.h" | 13 #include "vm/heap.h" |
| 14 #include "vm/instructions.h" | 14 #include "vm/instructions.h" |
| 15 #include "vm/object_store.h" | 15 #include "vm/object_store.h" |
| 16 #include "vm/stack_frame.h" | 16 #include "vm/stack_frame.h" |
| 17 #include "vm/stub_code.h" | 17 #include "vm/stub_code.h" |
| 18 #include "vm/tags.h" | 18 #include "vm/tags.h" |
| 19 | 19 |
| 20 #define __ assembler-> | 20 #define __ assembler-> |
| 21 | 21 |
| 22 namespace dart { | 22 namespace dart { |
| 23 | 23 |
| 24 void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) { | 24 void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) { |
| 25 UNIMPLEMENTED(); | 25 __ Stop("GenerateCallToRuntimeStub"); |
| 26 } | 26 } |
| 27 | 27 |
| 28 | 28 |
| 29 void StubCode::GeneratePrintStopMessageStub(Assembler* assembler) { | 29 void StubCode::GeneratePrintStopMessageStub(Assembler* assembler) { |
| 30 UNIMPLEMENTED(); | 30 __ Stop("GeneratePrintStopMessageStub"); |
| 31 } | 31 } |
| 32 | 32 |
| 33 | 33 |
| 34 void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) { | 34 void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) { |
| 35 UNIMPLEMENTED(); | 35 __ Stop("GenerateCallNativeCFunctionStub"); |
| 36 } | 36 } |
| 37 | 37 |
| 38 | 38 |
| 39 void StubCode::GenerateCallBootstrapCFunctionStub(Assembler* assembler) { | 39 void StubCode::GenerateCallBootstrapCFunctionStub(Assembler* assembler) { |
| 40 UNIMPLEMENTED(); | 40 __ Stop("GenerateCallBootstrapCFunctionStub"); |
| 41 } | 41 } |
| 42 | 42 |
| 43 | 43 |
| 44 void StubCode::GenerateCallStaticFunctionStub(Assembler* assembler) { | 44 void StubCode::GenerateCallStaticFunctionStub(Assembler* assembler) { |
| 45 UNIMPLEMENTED(); | 45 __ Stop("GenerateCallStaticFunctionStub"); |
| 46 } | 46 } |
| 47 | 47 |
| 48 | 48 |
| 49 void StubCode::GenerateFixCallersTargetStub(Assembler* assembler) { | 49 void StubCode::GenerateFixCallersTargetStub(Assembler* assembler) { |
| 50 UNIMPLEMENTED(); | 50 __ Stop("GenerateFixCallersTargetStub"); |
| 51 } | 51 } |
| 52 | 52 |
| 53 | 53 |
| 54 void StubCode::GenerateDeoptimizeLazyStub(Assembler* assembler) { | 54 void StubCode::GenerateDeoptimizeLazyStub(Assembler* assembler) { |
| 55 UNIMPLEMENTED(); | 55 __ Stop("GenerateDeoptimizeLazyStub"); |
| 56 } | 56 } |
| 57 | 57 |
| 58 | 58 |
| 59 void StubCode::GenerateDeoptimizeStub(Assembler* assembler) { | 59 void StubCode::GenerateDeoptimizeStub(Assembler* assembler) { |
| 60 UNIMPLEMENTED(); | 60 __ Stop("GenerateDeoptimizeStub"); |
| 61 } | 61 } |
| 62 | 62 |
| 63 | 63 |
| 64 void StubCode::GenerateMegamorphicMissStub(Assembler* assembler) { | 64 void StubCode::GenerateMegamorphicMissStub(Assembler* assembler) { |
| 65 UNIMPLEMENTED(); | 65 __ Stop("GenerateMegamorphicMissStub"); |
| 66 } | 66 } |
| 67 | 67 |
| 68 | 68 |
| 69 void StubCode::GenerateAllocateArrayStub(Assembler* assembler) { | 69 void StubCode::GenerateAllocateArrayStub(Assembler* assembler) { |
| 70 UNIMPLEMENTED(); | 70 __ Stop("GenerateAllocateArrayStub"); |
| 71 } | 71 } |
| 72 | 72 |
| 73 | 73 |
| 74 void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) { | 74 void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) { |
| 75 UNIMPLEMENTED(); | 75 __ Stop("GenerateInvokeDartCodeStub"); |
| 76 } | 76 } |
| 77 | 77 |
| 78 | 78 |
| 79 void StubCode::GenerateAllocateContextStub(Assembler* assembler) { | 79 void StubCode::GenerateAllocateContextStub(Assembler* assembler) { |
| 80 UNIMPLEMENTED(); | 80 __ Stop("GenerateAllocateContextStub"); |
| 81 } | 81 } |
| 82 | 82 |
| 83 | 83 |
| 84 void StubCode::GenerateUpdateStoreBufferStub(Assembler* assembler) { | 84 void StubCode::GenerateUpdateStoreBufferStub(Assembler* assembler) { |
| 85 UNIMPLEMENTED(); | 85 __ Stop("GenerateUpdateStoreBufferStub"); |
| 86 } | 86 } |
| 87 | 87 |
| 88 | 88 |
| 89 void StubCode::GenerateAllocationStubForClass(Assembler* assembler, | 89 void StubCode::GenerateAllocationStubForClass(Assembler* assembler, |
| 90 const Class& cls) { | 90 const Class& cls) { |
| 91 UNIMPLEMENTED(); | 91 __ Stop("GenerateAllocationStubForClass"); |
| 92 } | 92 } |
| 93 | 93 |
| 94 | 94 |
| 95 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { | 95 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { |
| 96 UNIMPLEMENTED(); | 96 __ Stop("GenerateCallNoSuchMethodFunctionStub"); |
| 97 } | 97 } |
| 98 | 98 |
| 99 | 99 |
| 100 void StubCode::GenerateOptimizedUsageCounterIncrement(Assembler* assembler) { | 100 void StubCode::GenerateOptimizedUsageCounterIncrement(Assembler* assembler) { |
| 101 UNIMPLEMENTED(); | 101 __ Stop("GenerateOptimizedUsageCounterIncrement"); |
| 102 } | 102 } |
| 103 | 103 |
| 104 | 104 |
| 105 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler, | 105 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler, |
| 106 Register temp_reg) { | 106 Register temp_reg) { |
| 107 UNIMPLEMENTED(); | 107 __ Stop("GenerateUsageCounterIncrement"); |
| 108 } | 108 } |
| 109 | 109 |
| 110 | 110 |
| 111 void StubCode::GenerateNArgsCheckInlineCacheStub( | 111 void StubCode::GenerateNArgsCheckInlineCacheStub( |
| 112 Assembler* assembler, | 112 Assembler* assembler, |
| 113 intptr_t num_args, | 113 intptr_t num_args, |
| 114 const RuntimeEntry& handle_ic_miss) { | 114 const RuntimeEntry& handle_ic_miss) { |
| 115 UNIMPLEMENTED(); | 115 __ Stop("GenerateNArgsCheckInlineCacheStub"); |
| 116 } | 116 } |
| 117 | 117 |
| 118 | 118 |
| 119 void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) { | 119 void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) { |
| 120 UNIMPLEMENTED(); | 120 __ Stop("GenerateOneArgCheckInlineCacheStub"); |
| 121 } | 121 } |
| 122 | 122 |
| 123 | 123 |
| 124 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { | 124 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { |
| 125 UNIMPLEMENTED(); | 125 __ Stop("GenerateTwoArgsCheckInlineCacheStub"); |
| 126 } | 126 } |
| 127 | 127 |
| 128 | 128 |
| 129 void StubCode::GenerateThreeArgsCheckInlineCacheStub(Assembler* assembler) { | 129 void StubCode::GenerateThreeArgsCheckInlineCacheStub(Assembler* assembler) { |
| 130 UNIMPLEMENTED(); | 130 __ Stop("GenerateThreeArgsCheckInlineCacheStub"); |
| 131 } | 131 } |
| 132 | 132 |
| 133 | 133 |
| 134 void StubCode::GenerateOneArgOptimizedCheckInlineCacheStub( | 134 void StubCode::GenerateOneArgOptimizedCheckInlineCacheStub( |
| 135 Assembler* assembler) { | 135 Assembler* assembler) { |
| 136 UNIMPLEMENTED(); | 136 __ Stop("GenerateOneArgOptimizedCheckInlineCacheStub"); |
| 137 } | 137 } |
| 138 | 138 |
| 139 | 139 |
| 140 void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub( | 140 void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub( |
| 141 Assembler* assembler) { | 141 Assembler* assembler) { |
| 142 UNIMPLEMENTED(); | 142 __ Stop("GenerateTwoArgsOptimizedCheckInlineCacheStub"); |
| 143 } | 143 } |
| 144 | 144 |
| 145 | 145 |
| 146 void StubCode::GenerateThreeArgsOptimizedCheckInlineCacheStub( | 146 void StubCode::GenerateThreeArgsOptimizedCheckInlineCacheStub( |
| 147 Assembler* assembler) { | 147 Assembler* assembler) { |
| 148 UNIMPLEMENTED(); | 148 __ Stop("GenerateThreeArgsOptimizedCheckInlineCacheStub"); |
| 149 } | 149 } |
| 150 | 150 |
| 151 | 151 |
| 152 void StubCode::GenerateClosureCallInlineCacheStub(Assembler* assembler) { | 152 void StubCode::GenerateClosureCallInlineCacheStub(Assembler* assembler) { |
| 153 UNIMPLEMENTED(); | 153 __ Stop("GenerateClosureCallInlineCacheStub"); |
| 154 } | 154 } |
| 155 | 155 |
| 156 | 156 |
| 157 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) { | 157 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) { |
| 158 UNIMPLEMENTED(); | 158 __ Stop("GenerateMegamorphicCallStub"); |
| 159 } | 159 } |
| 160 | 160 |
| 161 | 161 |
| 162 void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) { | 162 void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) { |
| 163 UNIMPLEMENTED(); | 163 __ Stop("GenerateZeroArgsUnoptimizedStaticCallStub"); |
| 164 } | 164 } |
| 165 | 165 |
| 166 | 166 |
| 167 void StubCode::GenerateTwoArgsUnoptimizedStaticCallStub(Assembler* assembler) { | 167 void StubCode::GenerateTwoArgsUnoptimizedStaticCallStub(Assembler* assembler) { |
| 168 UNIMPLEMENTED(); | 168 __ Stop("GenerateTwoArgsUnoptimizedStaticCallStub"); |
| 169 } | 169 } |
| 170 | 170 |
| 171 | 171 |
| 172 void StubCode::GenerateLazyCompileStub(Assembler* assembler) { | 172 void StubCode::GenerateLazyCompileStub(Assembler* assembler) { |
| 173 UNIMPLEMENTED(); | 173 __ Stop("GenerateLazyCompileStub"); |
| 174 } | 174 } |
| 175 | 175 |
| 176 | 176 |
| 177 void StubCode::GenerateBreakpointRuntimeStub(Assembler* assembler) { | 177 void StubCode::GenerateBreakpointRuntimeStub(Assembler* assembler) { |
| 178 UNIMPLEMENTED(); | 178 __ Stop("GenerateBreakpointRuntimeStub"); |
| 179 } | 179 } |
| 180 | 180 |
| 181 | 181 |
| 182 void StubCode::GenerateDebugStepCheckStub(Assembler* assembler) { | 182 void StubCode::GenerateDebugStepCheckStub(Assembler* assembler) { |
| 183 UNIMPLEMENTED(); | 183 __ Stop("GenerateDebugStepCheckStub"); |
| 184 } | 184 } |
| 185 | 185 |
| 186 | 186 |
| 187 void StubCode::GenerateSubtype1TestCacheStub(Assembler* assembler) { | 187 void StubCode::GenerateSubtype1TestCacheStub(Assembler* assembler) { |
| 188 UNIMPLEMENTED(); | 188 __ Stop("GenerateSubtype1TestCacheStub"); |
| 189 } | 189 } |
| 190 | 190 |
| 191 | 191 |
| 192 void StubCode::GenerateSubtype2TestCacheStub(Assembler* assembler) { | 192 void StubCode::GenerateSubtype2TestCacheStub(Assembler* assembler) { |
| 193 UNIMPLEMENTED(); | 193 __ Stop("GenerateSubtype2TestCacheStub"); |
| 194 } | 194 } |
| 195 | 195 |
| 196 | 196 |
| 197 void StubCode::GenerateSubtype3TestCacheStub(Assembler* assembler) { | 197 void StubCode::GenerateSubtype3TestCacheStub(Assembler* assembler) { |
| 198 UNIMPLEMENTED(); | 198 __ Stop("GenerateSubtype3TestCacheStub"); |
| 199 } | 199 } |
| 200 | 200 |
| 201 | 201 |
| 202 void StubCode::GenerateGetStackPointerStub(Assembler* assembler) { | 202 void StubCode::GenerateGetStackPointerStub(Assembler* assembler) { |
| 203 UNIMPLEMENTED(); | 203 __ Stop("GenerateGetStackPointerStub"); |
| 204 } | 204 } |
| 205 | 205 |
| 206 | 206 |
| 207 void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) { | 207 void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) { |
| 208 UNIMPLEMENTED(); | 208 __ Stop("GenerateJumpToExceptionHandlerStub"); |
| 209 } | 209 } |
| 210 | 210 |
| 211 | 211 |
| 212 void StubCode::GenerateOptimizeFunctionStub(Assembler* assembler) { | 212 void StubCode::GenerateOptimizeFunctionStub(Assembler* assembler) { |
| 213 UNIMPLEMENTED(); | 213 __ Stop("GenerateOptimizeFunctionStub"); |
| 214 } | 214 } |
| 215 | 215 |
| 216 | 216 |
| 217 void StubCode::GenerateIdenticalWithNumberCheckStub(Assembler* assembler, | 217 void StubCode::GenerateIdenticalWithNumberCheckStub(Assembler* assembler, |
| 218 const Register left, | 218 const Register left, |
| 219 const Register right, | 219 const Register right, |
| 220 const Register temp, | 220 const Register temp, |
| 221 const Register unused) { | 221 const Register unused) { |
| 222 UNIMPLEMENTED(); | 222 __ Stop("GenerateIdenticalWithNumberCheckStub"); |
| 223 } | 223 } |
| 224 | 224 |
| 225 | 225 |
| 226 void StubCode::GenerateUnoptimizedIdenticalWithNumberCheckStub( | 226 void StubCode::GenerateUnoptimizedIdenticalWithNumberCheckStub( |
| 227 Assembler* assembler) { | 227 Assembler* assembler) { |
| 228 UNIMPLEMENTED(); | 228 __ Stop("GenerateUnoptimizedIdenticalWithNumberCheckStub"); |
| 229 } | 229 } |
| 230 | 230 |
| 231 | 231 |
| 232 void StubCode::GenerateOptimizedIdenticalWithNumberCheckStub( | 232 void StubCode::GenerateOptimizedIdenticalWithNumberCheckStub( |
| 233 Assembler* assembler) { | 233 Assembler* assembler) { |
| 234 UNIMPLEMENTED(); | 234 __ Stop("GenerateOptimizedIdenticalWithNumberCheckStub"); |
| 235 } | 235 } |
| 236 | 236 |
| 237 } // namespace dart | 237 } // namespace dart |
| 238 | 238 |
| 239 #endif // defined TARGET_ARCH_ARM64 | 239 #endif // defined TARGET_ARCH_ARM64 |
| OLD | NEW |