Chromium Code Reviews| Index: runtime/vm/assembler_arm.h |
| =================================================================== |
| --- runtime/vm/assembler_arm.h (revision 17107) |
| +++ runtime/vm/assembler_arm.h (working copy) |
| @@ -1,4 +1,4 @@ |
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| +// 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. |
| @@ -14,6 +14,33 @@ |
| namespace dart { |
| +class Operand : public ValueObject { |
| + protected: |
| + // Operand can be sub classed (e.g: Address). |
| + Operand() { } |
| + |
| + private: |
| + DISALLOW_ALLOCATION(); |
| +}; |
| + |
| + |
| +class Address : public Operand { |
| + public: |
| + Address(Register base, int32_t disp) { |
| + UNIMPLEMENTED(); |
| + } |
| + private: |
| + DISALLOW_ALLOCATION(); |
| +}; |
| + |
| + |
| +class FieldAddress : public Address { |
| + public: |
| + FieldAddress(Register base, int32_t disp) |
| + : Address(base, disp - kHeapObjectTag) {} |
| +}; |
| + |
| + |
| class Label : public ValueObject { |
| public: |
| Label() : position_(0) { } |
| @@ -33,7 +60,9 @@ |
| bool IsBound() const { return position_ < 0; } |
| bool IsUnused() const { return position_ == 0; } |
| bool IsLinked() const { return position_ > 0; } |
| + bool HasNear() const { return false; } |
|
Ivan Posva
2013/01/16 01:17:56
Does ARM have near branches?
regis
2013/01/16 01:55:07
No, but FlowGraphCompiler::~FlowGraphCompiler() is
|
| + |
| private: |
| int position_; |
| @@ -58,16 +87,27 @@ |
| }; |
| -class Assembler { |
| +class CPUFeatures : public AllStatic { |
| public: |
| - Assembler() { } |
| + static void InitOnce() { } |
| + static bool sse2_supported() { return false; } |
|
Ivan Posva
2013/01/16 01:17:56
This makes no sense for ARM, it needs to be taken
regis
2013/01/16 01:55:07
This is used by the flow_graph_optimizer, which I
|
| + static bool sse4_1_supported() { return false; } |
| +}; |
| + |
| + |
| +class Assembler : public ValueObject { |
| + public: |
| + Assembler() { UNIMPLEMENTED(); } |
| ~Assembler() { } |
| - // Macros for High-level operations. |
| - void AddConstant(Register reg, int value, Condition cond = AL) { |
| + void PopRegister(Register r) { |
| UNIMPLEMENTED(); |
| } |
| + void Bind(Label* label) { |
| + UNIMPLEMENTED(); |
| + } |
| + |
| // Misc. functionality |
| int CodeSize() const { |
| UNIMPLEMENTED(); |
| @@ -95,6 +135,25 @@ |
| UNIMPLEMENTED(); |
| } |
| + void Comment(const char* format, ...) PRINTF_ATTRIBUTE(2, 3) { |
| + UNIMPLEMENTED(); |
| + } |
| + |
| + const Code::Comments& GetCodeComments() const { |
| + UNIMPLEMENTED(); |
| + return Code::Comments::New(0); |
| + } |
| + |
| + static const char* RegisterName(Register reg) { |
| + UNIMPLEMENTED(); |
| + return NULL; |
| + } |
| + |
| + static const char* FpuRegisterName(DRegister reg) { |
| + UNIMPLEMENTED(); |
| + return NULL; |
| + } |
| + |
| private: |
| ZoneGrowableArray<int>* pointer_offsets_; |
| DISALLOW_ALLOCATION(); |