| OLD | NEW |
| 1 // Copyright (c) 2011, 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_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
| 7 | 7 |
| 8 #include "vm/stub_code.h" | 8 #include "vm/stub_code.h" |
| 9 | 9 |
| 10 #define __ assembler-> | 10 #define __ assembler-> |
| 11 | 11 |
| 12 namespace dart { | 12 namespace dart { |
| 13 | 13 |
| 14 void StubCode::GenerateDartCallToRuntimeStub(Assembler* assembler) { | 14 void StubCode::GenerateCallToRuntimeStub(Assembler* assembler) { |
| 15 __ Unimplemented("DartCallToRuntime stub"); | 15 __ Unimplemented("CallToRuntime stub"); |
| 16 } | 16 } |
| 17 | 17 |
| 18 | 18 |
| 19 void StubCode::GenerateStubCallToRuntimeStub(Assembler* assembler) { | 19 void StubCode::GeneratePrintStopMessageStub(Assembler* assembler) { |
| 20 __ Unimplemented("StubCallToRuntime stub"); | 20 __ Unimplemented("PrintStopMessage stub"); |
| 21 } | 21 } |
| 22 | 22 |
| 23 | 23 |
| 24 void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) { | 24 void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) { |
| 25 __ Unimplemented("CallNativeCFunction stub"); | 25 __ Unimplemented("CallNativeCFunction stub"); |
| 26 } | 26 } |
| 27 | 27 |
| 28 | 28 |
| 29 void StubCode::GenerateCallStaticFunctionStub(Assembler* assembler) { | 29 void StubCode::GenerateCallStaticFunctionStub(Assembler* assembler) { |
| 30 __ Unimplemented("CallStaticFunction stub"); | 30 __ Unimplemented("CallStaticFunction stub"); |
| 31 } | 31 } |
| 32 | 32 |
| 33 | 33 |
| 34 void StubCode::GenerateFixCallersTargetStub(Assembler* assembler) { | 34 void StubCode::GenerateFixCallersTargetStub(Assembler* assembler) { |
| 35 __ Unimplemented("FixCallersTarget stub"); | 35 __ Unimplemented("FixCallersTarget stub"); |
| 36 } | 36 } |
| 37 | 37 |
| 38 | 38 |
| 39 void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) { | 39 void StubCode::GenerateInstanceFunctionLookupStub(Assembler* assembler) { |
| 40 __ Unimplemented("MegamorphicLookup stub"); | 40 __ Unimplemented("InstanceFunctionLookup stub"); |
| 41 } |
| 42 |
| 43 |
| 44 void StubCode::GenerateDeoptimizeLazyStub(Assembler* assembler) { |
| 45 __ Unimplemented("DeoptimizeLazy stub"); |
| 41 } | 46 } |
| 42 | 47 |
| 43 | 48 |
| 44 void StubCode::GenerateDeoptimizeStub(Assembler* assembler) { | 49 void StubCode::GenerateDeoptimizeStub(Assembler* assembler) { |
| 45 __ Unimplemented("Deoptimize stub"); | 50 __ Unimplemented("Deoptimize stub"); |
| 46 } | 51 } |
| 47 | 52 |
| 48 | 53 |
| 54 void StubCode::GenerateMegamorphicMissStub(Assembler* assembler) { |
| 55 __ Unimplemented("MegamorphicMiss stub"); |
| 56 } |
| 57 |
| 58 |
| 49 void StubCode::GenerateAllocateArrayStub(Assembler* assembler) { | 59 void StubCode::GenerateAllocateArrayStub(Assembler* assembler) { |
| 50 __ Unimplemented("AllocateArray stub"); | 60 __ Unimplemented("AllocateArray stub"); |
| 51 } | 61 } |
| 52 | 62 |
| 53 | 63 |
| 54 void StubCode::GenerateCallClosureFunctionStub(Assembler* assembler) { | 64 void StubCode::GenerateCallClosureFunctionStub(Assembler* assembler) { |
| 55 __ Unimplemented("CallClosureFunction stub"); | 65 __ Unimplemented("CallClosureFunction stub"); |
| 56 } | 66 } |
| 57 | 67 |
| 58 | 68 |
| 59 void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) { | 69 void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) { |
| 60 __ Unimplemented("InvokeDartCode stub"); | 70 __ Unimplemented("InvokeDartCode stub"); |
| 61 } | 71 } |
| 62 | 72 |
| 63 | 73 |
| 64 void StubCode::GenerateAllocateContextStub(Assembler* assembler) { | 74 void StubCode::GenerateAllocateContextStub(Assembler* assembler) { |
| 65 __ Unimplemented("AllocateContext stub"); | 75 __ Unimplemented("AllocateContext stub"); |
| 66 } | 76 } |
| 67 | 77 |
| 68 | 78 |
| 79 void StubCode::GenerateUpdateStoreBufferStub(Assembler* assembler) { |
| 80 __ Unimplemented("UpdateStoreBuffer stub"); |
| 81 } |
| 82 |
| 83 |
| 69 void StubCode::GenerateAllocationStubForClass(Assembler* assembler, | 84 void StubCode::GenerateAllocationStubForClass(Assembler* assembler, |
| 70 const Class& cls) { | 85 const Class& cls) { |
| 71 __ Unimplemented("AllocateObject stub"); | 86 __ Unimplemented("AllocateObject stub"); |
| 72 } | 87 } |
| 73 | 88 |
| 74 | 89 |
| 75 void StubCode::GenerateAllocationStubForClosure(Assembler* assembler, | 90 void StubCode::GenerateAllocationStubForClosure(Assembler* assembler, |
| 76 const Function& func) { | 91 const Function& func) { |
| 77 __ Unimplemented("AllocateClosure stub"); | 92 __ Unimplemented("AllocateClosure stub"); |
| 78 } | 93 } |
| 79 | 94 |
| 80 | 95 |
| 81 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { | 96 void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) { |
| 82 __ Unimplemented("CallNoSuchMethodFunction stub"); | 97 __ Unimplemented("CallNoSuchMethodFunction stub"); |
| 83 } | 98 } |
| 84 | 99 |
| 85 | 100 |
| 101 void StubCode::GenerateOptimizedUsageCounterIncrement(Assembler* assembler) { |
| 102 __ Unimplemented("OptimizedUsageCounterIncrement stub"); |
| 103 } |
| 104 |
| 105 |
| 106 void StubCode::GenerateUsageCounterIncrement(Assembler* assembler, |
| 107 Register temp_reg) { |
| 108 __ Unimplemented("UsageCounterIncrement stub"); |
| 109 } |
| 110 |
| 111 |
| 112 void StubCode::GenerateNArgsCheckInlineCacheStub(Assembler* assembler, |
| 113 intptr_t num_args) { |
| 114 __ Unimplemented("NArgsCheckInlineCache stub"); |
| 115 } |
| 116 |
| 117 |
| 86 void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) { | 118 void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) { |
| 87 __ Unimplemented("GenerateOneArgCheckInlineCacheStub stub"); | 119 __ Unimplemented("GenerateOneArgCheckInlineCacheStub stub"); |
| 88 } | 120 } |
| 89 | 121 |
| 90 | 122 |
| 91 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { | 123 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { |
| 92 __ Unimplemented("GenerateTwoArgsCheckInlineCacheStub stub"); | 124 __ Unimplemented("GenerateTwoArgsCheckInlineCacheStub stub"); |
| 93 } | 125 } |
| 94 | 126 |
| 95 | 127 |
| 128 void StubCode::GenerateThreeArgsCheckInlineCacheStub(Assembler* assembler) { |
| 129 __ Unimplemented("GenerateThreeArgsCheckInlineCacheStub stub"); |
| 130 } |
| 131 |
| 132 |
| 133 void StubCode::GenerateOneArgOptimizedCheckInlineCacheStub( |
| 134 Assembler* assembler) { |
| 135 GenerateOptimizedUsageCounterIncrement(assembler); |
| 136 GenerateNArgsCheckInlineCacheStub(assembler, 1); |
| 137 } |
| 138 |
| 139 |
| 140 void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub( |
| 141 Assembler* assembler) { |
| 142 GenerateOptimizedUsageCounterIncrement(assembler); |
| 143 GenerateNArgsCheckInlineCacheStub(assembler, 2); |
| 144 } |
| 145 |
| 146 |
| 147 void StubCode::GenerateThreeArgsOptimizedCheckInlineCacheStub( |
| 148 Assembler* assembler) { |
| 149 GenerateOptimizedUsageCounterIncrement(assembler); |
| 150 GenerateNArgsCheckInlineCacheStub(assembler, 3); |
| 151 } |
| 152 |
| 153 |
| 154 void StubCode::GenerateClosureCallInlineCacheStub(Assembler* assembler) { |
| 155 GenerateNArgsCheckInlineCacheStub(assembler, 1); |
| 156 } |
| 157 |
| 158 |
| 159 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) { |
| 160 GenerateNArgsCheckInlineCacheStub(assembler, 1); |
| 161 } |
| 162 |
| 163 |
| 96 void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) { | 164 void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) { |
| 97 __ Unimplemented("BreakpointStatic stub"); | 165 __ Unimplemented("BreakpointStatic stub"); |
| 98 } | 166 } |
| 99 | 167 |
| 168 |
| 100 void StubCode::GenerateBreakpointReturnStub(Assembler* assembler) { | 169 void StubCode::GenerateBreakpointReturnStub(Assembler* assembler) { |
| 101 __ Unimplemented("BreakpointReturn stub"); | 170 __ Unimplemented("BreakpointReturn stub"); |
| 102 } | 171 } |
| 103 | 172 |
| 173 |
| 104 void StubCode::GenerateBreakpointDynamicStub(Assembler* assembler) { | 174 void StubCode::GenerateBreakpointDynamicStub(Assembler* assembler) { |
| 105 __ Unimplemented("BreakpointDynamic stub"); | 175 __ Unimplemented("BreakpointDynamic stub"); |
| 106 } | 176 } |
| 107 | 177 |
| 178 |
| 108 void StubCode::GenerateSubtype1TestCacheStub(Assembler* assembler) { | 179 void StubCode::GenerateSubtype1TestCacheStub(Assembler* assembler) { |
| 109 __ Unimplemented("Subtype1TestCache Stub"); | 180 __ Unimplemented("Subtype1TestCache Stub"); |
| 110 } | 181 } |
| 111 | 182 |
| 183 |
| 112 void StubCode::GenerateSubtype2TestCacheStub(Assembler* assembler) { | 184 void StubCode::GenerateSubtype2TestCacheStub(Assembler* assembler) { |
| 113 __ Unimplemented("Subtype2TestCache Stub"); | 185 __ Unimplemented("Subtype2TestCache Stub"); |
| 114 } | 186 } |
| 115 | 187 |
| 188 |
| 116 void StubCode::GenerateSubtype3TestCacheStub(Assembler* assembler) { | 189 void StubCode::GenerateSubtype3TestCacheStub(Assembler* assembler) { |
| 117 __ Unimplemented("Subtype3TestCache Stub"); | 190 __ Unimplemented("Subtype3TestCache Stub"); |
| 118 } | 191 } |
| 119 | 192 |
| 120 | 193 |
| 121 // Return the current stack pointer address, used to stack alignment | 194 // Return the current stack pointer address, used to stack alignment |
| 122 // checks. | 195 // checks. |
| 123 void StubCode::GenerateGetStackPointerStub(Assembler* assembler) { | 196 void StubCode::GenerateGetStackPointerStub(Assembler* assembler) { |
| 124 __ Unimplemented("GetStackPointer Stub"); | 197 __ Unimplemented("GetStackPointer Stub"); |
| 125 } | 198 } |
| 126 | 199 |
| 127 | 200 |
| 128 // Jump to the exception handler. | 201 // Jump to the exception handler. |
| 129 // No Result. | 202 // No Result. |
| 130 void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) { | 203 void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) { |
| 131 __ Unimplemented("JumpToExceptionHandler Stub"); | 204 __ Unimplemented("JumpToExceptionHandler Stub"); |
| 132 } | 205 } |
| 133 | 206 |
| 134 | 207 |
| 135 // Jump to the error handler. | 208 // Jump to the error handler. |
| 136 // No Result. | 209 // No Result. |
| 137 void StubCode::GenerateJumpToErrorHandlerStub(Assembler* assembler) { | 210 void StubCode::GenerateJumpToErrorHandlerStub(Assembler* assembler) { |
| 138 __ Unimplemented("JumpToErrorHandler Stub"); | 211 __ Unimplemented("JumpToErrorHandler Stub"); |
| 139 } | 212 } |
| 140 | 213 |
| 214 |
| 215 void StubCode::GenerateEqualityWithNullArgStub(Assembler* assembler) { |
| 216 __ Unimplemented("EqualityWithNullArg stub"); |
| 217 } |
| 218 |
| 219 |
| 220 void StubCode::GenerateOptimizeFunctionStub(Assembler* assembler) { |
| 221 __ Unimplemented("OptimizeFunction stub"); |
| 222 } |
| 223 |
| 224 |
| 225 void StubCode::GenerateIdenticalWithNumberCheckStub(Assembler* assembler) { |
| 226 __ Unimplemented("IdenticalWithNumberCheck stub"); |
| 227 } |
| 228 |
| 141 } // namespace dart | 229 } // namespace dart |
| 142 | 230 |
| 143 #endif // defined TARGET_ARCH_ARM | 231 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |