| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // Classes that describe assembly patterns as used by inline caches. | 4 // Classes that describe assembly patterns as used by inline caches. |
| 5 | 5 |
| 6 #ifndef VM_INSTRUCTIONS_X64_H_ | 6 #ifndef VM_INSTRUCTIONS_X64_H_ |
| 7 #define VM_INSTRUCTIONS_X64_H_ | 7 #define VM_INSTRUCTIONS_X64_H_ |
| 8 | 8 |
| 9 #ifndef VM_INSTRUCTIONS_H_ | 9 #ifndef VM_INSTRUCTIONS_H_ |
| 10 #error Do not include instructions_ia32.h directly; use instructions.h instead. | 10 #error Do not include instructions_ia32.h directly; use instructions.h instead. |
| 11 #endif | 11 #endif |
| 12 | 12 |
| 13 #include "vm/allocation.h" | 13 #include "vm/allocation.h" |
| 14 #include "vm/object.h" | 14 #include "vm/object.h" |
| 15 | 15 |
| 16 namespace dart { | 16 namespace dart { |
| 17 | 17 |
| 18 // Forward declarations. | 18 // Forward declarations. |
| 19 class RawClass; | 19 class RawClass; |
| 20 class Immediate; | 20 class Immediate; |
| 21 class RawObject; | 21 class RawObject; |
| 22 | 22 |
| 23 | 23 |
| 24 intptr_t IndexFromPPLoad(uword start); | 24 intptr_t IndexFromPPLoad(uword start); |
| 25 intptr_t IndexFromPPLoadDisp8(uword start); |
| 25 | 26 |
| 26 | 27 |
| 27 // Template class for all instruction pattern classes. | 28 // Template class for all instruction pattern classes. |
| 28 // P has to specify a static pattern and a pattern length method. | 29 // P has to specify a static pattern and a pattern length method. |
| 29 template<class P> class InstructionPattern : public ValueObject { | 30 template<class P> class InstructionPattern : public ValueObject { |
| 30 public: | 31 public: |
| 31 explicit InstructionPattern(uword pc) : start_(pc) { | 32 explicit InstructionPattern(uword pc) : start_(pc) { |
| 32 ASSERT(pc != 0); | 33 ASSERT(pc != 0); |
| 33 } | 34 } |
| 34 | 35 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 | 134 |
| 134 static int pattern_length_in_bytes() { return kLengthInBytes; } | 135 static int pattern_length_in_bytes() { return kLengthInBytes; } |
| 135 | 136 |
| 136 private: | 137 private: |
| 137 static const int kLengthInBytes = 3; | 138 static const int kLengthInBytes = 3; |
| 138 }; | 139 }; |
| 139 | 140 |
| 140 } // namespace dart | 141 } // namespace dart |
| 141 | 142 |
| 142 #endif // VM_INSTRUCTIONS_X64_H_ | 143 #endif // VM_INSTRUCTIONS_X64_H_ |
| OLD | NEW |