OLD | NEW |
1 // Copyright (c) 2012, 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" // Needed here to get TARGET_ARCH_ARM. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
7 | 7 |
8 #include "vm/flow_graph_compiler.h" | 8 #include "vm/flow_graph_compiler.h" |
9 | 9 |
10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
11 | 11 |
12 namespace dart { | 12 namespace dart { |
13 | 13 |
| 14 bool FlowGraphCompiler::SupportsUnboxedMints() { |
| 15 return false; |
| 16 } |
| 17 |
| 18 |
| 19 void CompilerDeoptInfoWithStub::GenerateCode(FlowGraphCompiler* compiler, |
| 20 intptr_t stub_ix) { |
| 21 UNIMPLEMENTED(); |
| 22 } |
| 23 |
| 24 |
| 25 void FlowGraphCompiler::GenerateBoolToJump(Register bool_register, |
| 26 Label* is_true, |
| 27 Label* is_false) { |
| 28 UNIMPLEMENTED(); |
| 29 } |
| 30 |
| 31 |
| 32 RawSubtypeTestCache* FlowGraphCompiler::GenerateCallSubtypeTestStub( |
| 33 TypeTestStubKind test_kind, |
| 34 Register instance_reg, |
| 35 Register type_arguments_reg, |
| 36 Register temp_reg, |
| 37 Label* is_instance_lbl, |
| 38 Label* is_not_instance_lbl) { |
| 39 UNIMPLEMENTED(); |
| 40 return NULL; |
| 41 } |
| 42 |
| 43 |
| 44 RawSubtypeTestCache* |
| 45 FlowGraphCompiler::GenerateInstantiatedTypeWithArgumentsTest( |
| 46 intptr_t token_pos, |
| 47 const AbstractType& type, |
| 48 Label* is_instance_lbl, |
| 49 Label* is_not_instance_lbl) { |
| 50 UNIMPLEMENTED(); |
| 51 return NULL; |
| 52 } |
| 53 |
| 54 |
| 55 void FlowGraphCompiler::CheckClassIds(Register class_id_reg, |
| 56 const GrowableArray<intptr_t>& class_ids, |
| 57 Label* is_equal_lbl, |
| 58 Label* is_not_equal_lbl) { |
| 59 UNIMPLEMENTED(); |
| 60 } |
| 61 |
| 62 |
| 63 bool FlowGraphCompiler::GenerateInstantiatedTypeNoArgumentsTest( |
| 64 intptr_t token_pos, |
| 65 const AbstractType& type, |
| 66 Label* is_instance_lbl, |
| 67 Label* is_not_instance_lbl) { |
| 68 UNIMPLEMENTED(); |
| 69 return false; |
| 70 } |
| 71 |
| 72 |
| 73 RawSubtypeTestCache* FlowGraphCompiler::GenerateSubtype1TestCacheLookup( |
| 74 intptr_t token_pos, |
| 75 const Class& type_class, |
| 76 Label* is_instance_lbl, |
| 77 Label* is_not_instance_lbl) { |
| 78 UNIMPLEMENTED(); |
| 79 return NULL; |
| 80 } |
| 81 |
| 82 |
| 83 RawSubtypeTestCache* FlowGraphCompiler::GenerateUninstantiatedTypeTest( |
| 84 intptr_t token_pos, |
| 85 const AbstractType& type, |
| 86 Label* is_instance_lbl, |
| 87 Label* is_not_instance_lbl) { |
| 88 UNIMPLEMENTED(); |
| 89 return NULL; |
| 90 } |
| 91 |
| 92 |
| 93 RawSubtypeTestCache* FlowGraphCompiler::GenerateInlineInstanceof( |
| 94 intptr_t token_pos, |
| 95 const AbstractType& type, |
| 96 Label* is_instance_lbl, |
| 97 Label* is_not_instance_lbl) { |
| 98 UNIMPLEMENTED(); |
| 99 return NULL; |
| 100 } |
| 101 |
| 102 |
| 103 void FlowGraphCompiler::GenerateInstanceOf(intptr_t token_pos, |
| 104 const AbstractType& type, |
| 105 bool negate_result, |
| 106 LocationSummary* locs) { |
| 107 UNIMPLEMENTED(); |
| 108 } |
| 109 |
| 110 |
| 111 void FlowGraphCompiler::GenerateAssertAssignable(intptr_t token_pos, |
| 112 const AbstractType& dst_type, |
| 113 const String& dst_name, |
| 114 LocationSummary* locs) { |
| 115 UNIMPLEMENTED(); |
| 116 } |
| 117 |
| 118 |
| 119 void FlowGraphCompiler::EmitInstructionPrologue(Instruction* instr) { |
| 120 UNIMPLEMENTED(); |
| 121 } |
| 122 |
| 123 |
| 124 void FlowGraphCompiler::EmitInstructionEpilogue(Instruction* instr) { |
| 125 UNIMPLEMENTED(); |
| 126 } |
| 127 |
| 128 |
| 129 void FlowGraphCompiler::CopyParameters() { |
| 130 UNIMPLEMENTED(); |
| 131 } |
| 132 |
| 133 |
| 134 void FlowGraphCompiler::GenerateInlinedGetter(intptr_t offset) { |
| 135 UNIMPLEMENTED(); |
| 136 } |
| 137 |
| 138 |
| 139 void FlowGraphCompiler::GenerateInlinedSetter(intptr_t offset) { |
| 140 UNIMPLEMENTED(); |
| 141 } |
| 142 |
| 143 |
| 144 void FlowGraphCompiler::EmitFrameEntry() { |
| 145 UNIMPLEMENTED(); |
| 146 } |
| 147 |
| 148 |
14 void FlowGraphCompiler::CompileGraph() { | 149 void FlowGraphCompiler::CompileGraph() { |
15 UNIMPLEMENTED(); | 150 UNIMPLEMENTED(); |
16 } | 151 } |
17 | 152 |
18 | 153 |
19 void FlowGraphCompiler::FinalizePcDescriptors(const Code& code) { | 154 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, |
20 UNIMPLEMENTED(); | 155 const ExternalLabel* label, |
21 } | 156 PcDescriptors::Kind kind, |
22 | 157 LocationSummary* locs) { |
23 | 158 UNIMPLEMENTED(); |
24 void FlowGraphCompiler::FinalizeStackmaps(const Code& code) { | 159 } |
25 UNIMPLEMENTED(); | 160 |
26 } | 161 |
27 | 162 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, |
28 | 163 intptr_t token_pos, |
29 void FlowGraphCompiler::FinalizeVarDescriptors(const Code& code) { | 164 const ExternalLabel* label, |
30 UNIMPLEMENTED(); | 165 PcDescriptors::Kind kind, |
31 } | 166 LocationSummary* locs) { |
32 | 167 UNIMPLEMENTED(); |
33 | 168 } |
34 void FlowGraphCompiler::FinalizeExceptionHandlers(const Code& code) { | 169 |
35 UNIMPLEMENTED(); | 170 |
36 } | 171 void FlowGraphCompiler::GenerateCallRuntime(intptr_t token_pos, |
37 | 172 const RuntimeEntry& entry, |
38 | 173 LocationSummary* locs) { |
39 void FlowGraphCompiler::FinalizeComments(const Code& code) { | 174 UNIMPLEMENTED(); |
40 UNIMPLEMENTED(); | 175 } |
41 } | 176 |
| 177 |
| 178 void FlowGraphCompiler::EmitOptimizedInstanceCall( |
| 179 ExternalLabel* target_label, |
| 180 const ICData& ic_data, |
| 181 const Array& arguments_descriptor, |
| 182 intptr_t argument_count, |
| 183 intptr_t deopt_id, |
| 184 intptr_t token_pos, |
| 185 LocationSummary* locs) { |
| 186 UNIMPLEMENTED(); |
| 187 } |
| 188 |
| 189 |
| 190 void FlowGraphCompiler::EmitInstanceCall(ExternalLabel* target_label, |
| 191 const ICData& ic_data, |
| 192 const Array& arguments_descriptor, |
| 193 intptr_t argument_count, |
| 194 intptr_t deopt_id, |
| 195 intptr_t token_pos, |
| 196 LocationSummary* locs) { |
| 197 UNIMPLEMENTED(); |
| 198 } |
| 199 |
| 200 |
| 201 void FlowGraphCompiler::EmitMegamorphicInstanceCall( |
| 202 const ICData& ic_data, |
| 203 const Array& arguments_descriptor, |
| 204 intptr_t argument_count, |
| 205 intptr_t deopt_id, |
| 206 intptr_t token_pos, |
| 207 LocationSummary* locs) { |
| 208 UNIMPLEMENTED(); |
| 209 } |
| 210 |
| 211 |
| 212 void FlowGraphCompiler::EmitStaticCall(const Function& function, |
| 213 const Array& arguments_descriptor, |
| 214 intptr_t argument_count, |
| 215 intptr_t deopt_id, |
| 216 intptr_t token_pos, |
| 217 LocationSummary* locs) { |
| 218 UNIMPLEMENTED(); |
| 219 } |
| 220 |
| 221 |
| 222 void FlowGraphCompiler::EmitEqualityRegConstCompare(Register reg, |
| 223 const Object& obj, |
| 224 bool needs_number_check) { |
| 225 UNIMPLEMENTED(); |
| 226 } |
| 227 |
| 228 |
| 229 void FlowGraphCompiler::EmitEqualityRegRegCompare(Register left, |
| 230 Register right, |
| 231 bool needs_number_check) { |
| 232 UNIMPLEMENTED(); |
| 233 } |
| 234 |
| 235 |
| 236 void FlowGraphCompiler::EmitSuperEqualityCallPrologue(Register result, |
| 237 Label* skip_call) { |
| 238 UNIMPLEMENTED(); |
| 239 } |
| 240 |
| 241 |
| 242 void FlowGraphCompiler::SaveLiveRegisters(LocationSummary* locs) { |
| 243 UNIMPLEMENTED(); |
| 244 } |
| 245 |
| 246 |
| 247 void FlowGraphCompiler::RestoreLiveRegisters(LocationSummary* locs) { |
| 248 UNIMPLEMENTED(); |
| 249 } |
| 250 |
| 251 |
| 252 void FlowGraphCompiler::EmitTestAndCall(const ICData& ic_data, |
| 253 Register class_id_reg, |
| 254 intptr_t arg_count, |
| 255 const Array& arg_names, |
| 256 Label* deopt, |
| 257 intptr_t deopt_id, |
| 258 intptr_t token_index, |
| 259 LocationSummary* locs) { |
| 260 UNIMPLEMENTED(); |
| 261 } |
| 262 |
| 263 |
| 264 void FlowGraphCompiler::EmitDoubleCompareBranch(Condition true_condition, |
| 265 FpuRegister left, |
| 266 FpuRegister right, |
| 267 BranchInstr* branch) { |
| 268 UNIMPLEMENTED(); |
| 269 } |
| 270 |
| 271 |
| 272 void FlowGraphCompiler::EmitDoubleCompareBool(Condition true_condition, |
| 273 FpuRegister left, |
| 274 FpuRegister right, |
| 275 Register result) { |
| 276 UNIMPLEMENTED(); |
| 277 } |
| 278 |
| 279 |
| 280 Condition FlowGraphCompiler::FlipCondition(Condition condition) { |
| 281 UNIMPLEMENTED(); |
| 282 return condition; |
| 283 } |
| 284 |
| 285 |
| 286 bool FlowGraphCompiler::EvaluateCondition(Condition condition, |
| 287 intptr_t left, |
| 288 intptr_t right) { |
| 289 UNIMPLEMENTED(); |
| 290 return false; |
| 291 } |
| 292 |
| 293 |
| 294 FieldAddress FlowGraphCompiler::ElementAddressForIntIndex(intptr_t cid, |
| 295 Register array, |
| 296 intptr_t index) { |
| 297 UNIMPLEMENTED(); |
| 298 return FieldAddress(array, index); |
| 299 } |
| 300 |
| 301 |
| 302 FieldAddress FlowGraphCompiler::ElementAddressForRegIndex(intptr_t cid, |
| 303 Register array, |
| 304 Register index) { |
| 305 UNIMPLEMENTED(); |
| 306 return FieldAddress(array, index); |
| 307 } |
| 308 |
| 309 |
| 310 void ParallelMoveResolver::EmitMove(int index) { |
| 311 UNIMPLEMENTED(); |
| 312 } |
| 313 |
| 314 |
| 315 void ParallelMoveResolver::EmitSwap(int index) { |
| 316 UNIMPLEMENTED(); |
| 317 } |
| 318 |
| 319 |
| 320 void ParallelMoveResolver::MoveMemoryToMemory(const Address& dst, |
| 321 const Address& src) { |
| 322 UNIMPLEMENTED(); |
| 323 } |
| 324 |
| 325 |
| 326 void ParallelMoveResolver::StoreObject(const Address& dst, const Object& obj) { |
| 327 UNIMPLEMENTED(); |
| 328 } |
| 329 |
| 330 |
| 331 void ParallelMoveResolver::Exchange(Register reg, const Address& mem) { |
| 332 UNIMPLEMENTED(); |
| 333 } |
| 334 |
| 335 |
| 336 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { |
| 337 UNIMPLEMENTED(); |
| 338 } |
| 339 |
42 | 340 |
43 } // namespace dart | 341 } // namespace dart |
44 | 342 |
45 #endif // defined TARGET_ARCH_ARM | 343 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |