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(); |