// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. #if defined(TARGET_ARCH_ARM) #include "vm/flow_graph_compiler.h" #include "vm/longjump.h" namespace dart { FlowGraphCompiler::~FlowGraphCompiler() { // BlockInfos are zone-allocated, so their destructors are not called. // Verify the labels explicitly here. for (int i = 0; i < block_info_.length(); ++i) { ASSERT(!block_info_[i]->label.IsLinked()); } } bool FlowGraphCompiler::SupportsUnboxedMints() { return false; } void CompilerDeoptInfoWithStub::GenerateCode(FlowGraphCompiler* compiler, intptr_t stub_ix) { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateBoolToJump(Register bool_register, Label* is_true, Label* is_false) { UNIMPLEMENTED(); } RawSubtypeTestCache* FlowGraphCompiler::GenerateCallSubtypeTestStub( TypeTestStubKind test_kind, Register instance_reg, Register type_arguments_reg, Register temp_reg, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return NULL; } RawSubtypeTestCache* FlowGraphCompiler::GenerateInstantiatedTypeWithArgumentsTest( intptr_t token_pos, const AbstractType& type, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return NULL; } void FlowGraphCompiler::CheckClassIds(Register class_id_reg, const GrowableArray& class_ids, Label* is_equal_lbl, Label* is_not_equal_lbl) { UNIMPLEMENTED(); } bool FlowGraphCompiler::GenerateInstantiatedTypeNoArgumentsTest( intptr_t token_pos, const AbstractType& type, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return false; } RawSubtypeTestCache* FlowGraphCompiler::GenerateSubtype1TestCacheLookup( intptr_t token_pos, const Class& type_class, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return NULL; } RawSubtypeTestCache* FlowGraphCompiler::GenerateUninstantiatedTypeTest( intptr_t token_pos, const AbstractType& type, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return NULL; } RawSubtypeTestCache* FlowGraphCompiler::GenerateInlineInstanceof( intptr_t token_pos, const AbstractType& type, Label* is_instance_lbl, Label* is_not_instance_lbl) { UNIMPLEMENTED(); return NULL; } void FlowGraphCompiler::GenerateInstanceOf(intptr_t token_pos, intptr_t deopt_id, const AbstractType& type, bool negate_result, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateAssertAssignable(intptr_t token_pos, intptr_t deopt_id, const AbstractType& dst_type, const String& dst_name, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitInstructionPrologue(Instruction* instr) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitInstructionEpilogue(Instruction* instr) { UNIMPLEMENTED(); } void FlowGraphCompiler::CopyParameters() { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateInlinedGetter(intptr_t offset) { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateInlinedSetter(intptr_t offset) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitFrameEntry() { UNIMPLEMENTED(); } void FlowGraphCompiler::CompileGraph() { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateCall(intptr_t token_pos, const ExternalLabel* label, PcDescriptors::Kind kind, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, intptr_t token_pos, const ExternalLabel* label, PcDescriptors::Kind kind, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::GenerateCallRuntime(intptr_t token_pos, intptr_t deopt_id, const RuntimeEntry& entry, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitOptimizedInstanceCall( ExternalLabel* target_label, const ICData& ic_data, const Array& arguments_descriptor, intptr_t argument_count, intptr_t deopt_id, intptr_t token_pos, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitInstanceCall(ExternalLabel* target_label, const ICData& ic_data, const Array& arguments_descriptor, intptr_t argument_count, intptr_t deopt_id, intptr_t token_pos, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitMegamorphicInstanceCall( const ICData& ic_data, const Array& arguments_descriptor, intptr_t argument_count, intptr_t deopt_id, intptr_t token_pos, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitStaticCall(const Function& function, const Array& arguments_descriptor, intptr_t argument_count, intptr_t deopt_id, intptr_t token_pos, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitEqualityRegConstCompare(Register reg, const Object& obj, bool needs_number_check) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitEqualityRegRegCompare(Register left, Register right, bool needs_number_check) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitSuperEqualityCallPrologue(Register result, Label* skip_call) { UNIMPLEMENTED(); } void FlowGraphCompiler::SaveLiveRegisters(LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::RestoreLiveRegisters(LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitTestAndCall(const ICData& ic_data, Register class_id_reg, intptr_t arg_count, const Array& arg_names, Label* deopt, intptr_t deopt_id, intptr_t token_index, LocationSummary* locs) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitDoubleCompareBranch(Condition true_condition, FpuRegister left, FpuRegister right, BranchInstr* branch) { UNIMPLEMENTED(); } void FlowGraphCompiler::EmitDoubleCompareBool(Condition true_condition, FpuRegister left, FpuRegister right, Register result) { UNIMPLEMENTED(); } Condition FlowGraphCompiler::FlipCondition(Condition condition) { UNIMPLEMENTED(); return condition; } bool FlowGraphCompiler::EvaluateCondition(Condition condition, intptr_t left, intptr_t right) { UNIMPLEMENTED(); return false; } FieldAddress FlowGraphCompiler::ElementAddressForIntIndex(intptr_t cid, intptr_t index_scale, Register array, intptr_t index) { UNIMPLEMENTED(); return FieldAddress(array, index); } FieldAddress FlowGraphCompiler::ElementAddressForRegIndex(intptr_t cid, intptr_t index_scale, Register array, Register index) { UNIMPLEMENTED(); return FieldAddress(array, index); } Address FlowGraphCompiler::ExternalElementAddressForIntIndex( intptr_t cid, intptr_t index_scale, Register array, intptr_t index) { UNIMPLEMENTED(); return FieldAddress(array, index); } Address FlowGraphCompiler::ExternalElementAddressForRegIndex( intptr_t cid, intptr_t index_scale, Register array, Register index) { UNIMPLEMENTED(); return FieldAddress(array, index); } void ParallelMoveResolver::EmitMove(int index) { UNIMPLEMENTED(); } void ParallelMoveResolver::EmitSwap(int index) { UNIMPLEMENTED(); } void ParallelMoveResolver::MoveMemoryToMemory(const Address& dst, const Address& src) { UNIMPLEMENTED(); } void ParallelMoveResolver::StoreObject(const Address& dst, const Object& obj) { UNIMPLEMENTED(); } void ParallelMoveResolver::Exchange(Register reg, const Address& mem) { UNIMPLEMENTED(); } void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { UNIMPLEMENTED(); } } // namespace dart #endif // defined TARGET_ARCH_ARM