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 |