| OLD | NEW | 
|    1 // Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2016, 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 #ifndef RUNTIME_VM_ASSEMBLER_DBC_H_ |    5 #ifndef RUNTIME_VM_ASSEMBLER_DBC_H_ | 
|    6 #define RUNTIME_VM_ASSEMBLER_DBC_H_ |    6 #define RUNTIME_VM_ASSEMBLER_DBC_H_ | 
|    7  |    7  | 
|    8 #ifndef RUNTIME_VM_ASSEMBLER_H_ |    8 #ifndef RUNTIME_VM_ASSEMBLER_H_ | 
|    9 #error Do not include assembler_dbc.h directly; use assembler.h instead. |    9 #error Do not include assembler_dbc.h directly; use assembler.h instead. | 
|   10 #endif |   10 #endif | 
|   11  |   11  | 
|   12 #include "platform/assert.h" |   12 #include "platform/assert.h" | 
|   13 #include "platform/utils.h" |   13 #include "platform/utils.h" | 
|   14 #include "vm/constants_dbc.h" |   14 #include "vm/constants_dbc.h" | 
|   15 #include "vm/cpu.h" |   15 #include "vm/cpu.h" | 
|   16 #include "vm/hash_map.h" |   16 #include "vm/hash_map.h" | 
|   17 #include "vm/object.h" |   17 #include "vm/object.h" | 
|   18 #include "vm/simulator.h" |   18 #include "vm/simulator.h" | 
|   19  |   19  | 
|   20 namespace dart { |   20 namespace dart { | 
|   21  |   21  | 
|   22  |  | 
|   23 // Dummy declaration to make things compile. |   22 // Dummy declaration to make things compile. | 
|   24 class Address : public ValueObject { |   23 class Address : public ValueObject { | 
|   25  private: |   24  private: | 
|   26   Address(); |   25   Address(); | 
|   27 }; |   26 }; | 
|   28  |   27  | 
|   29  |  | 
|   30 class Label : public ValueObject { |   28 class Label : public ValueObject { | 
|   31  public: |   29  public: | 
|   32   Label() : position_(0) {} |   30   Label() : position_(0) {} | 
|   33  |   31  | 
|   34   ~Label() { |   32   ~Label() { | 
|   35     // Assert if label is being destroyed with unresolved branches pending. |   33     // Assert if label is being destroyed with unresolved branches pending. | 
|   36     ASSERT(!IsLinked()); |   34     ASSERT(!IsLinked()); | 
|   37   } |   35   } | 
|   38  |   36  | 
|   39   // Returns the position for bound and linked labels. Cannot be used |   37   // Returns the position for bound and linked labels. Cannot be used | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|   61   void LinkTo(intptr_t position) { |   59   void LinkTo(intptr_t position) { | 
|   62     ASSERT(!IsBound()); |   60     ASSERT(!IsBound()); | 
|   63     position_ = position + kWordSize; |   61     position_ = position + kWordSize; | 
|   64     ASSERT(IsLinked()); |   62     ASSERT(IsLinked()); | 
|   65   } |   63   } | 
|   66  |   64  | 
|   67   friend class Assembler; |   65   friend class Assembler; | 
|   68   DISALLOW_COPY_AND_ASSIGN(Label); |   66   DISALLOW_COPY_AND_ASSIGN(Label); | 
|   69 }; |   67 }; | 
|   70  |   68  | 
|   71  |  | 
|   72 class Assembler : public ValueObject { |   69 class Assembler : public ValueObject { | 
|   73  public: |   70  public: | 
|   74   explicit Assembler(bool use_far_branches = false) : buffer_(), comments_() {} |   71   explicit Assembler(bool use_far_branches = false) : buffer_(), comments_() {} | 
|   75  |   72  | 
|   76   ~Assembler() {} |   73   ~Assembler() {} | 
|   77  |   74  | 
|   78   void Bind(Label* label); |   75   void Bind(Label* label); | 
|   79   void Jump(Label* label); |   76   void Jump(Label* label); | 
|   80  |   77  | 
|   81   // Misc. functionality |   78   // Misc. functionality | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  131  |  128  | 
|  132 #define PARAMS_0 |  129 #define PARAMS_0 | 
|  133 #define PARAMS_A_D uintptr_t ra, uintptr_t rd |  130 #define PARAMS_A_D uintptr_t ra, uintptr_t rd | 
|  134 #define PARAMS_D uintptr_t rd |  131 #define PARAMS_D uintptr_t rd | 
|  135 #define PARAMS_A_B_C uintptr_t ra, uintptr_t rb, uintptr_t rc |  132 #define PARAMS_A_B_C uintptr_t ra, uintptr_t rb, uintptr_t rc | 
|  136 #define PARAMS_A uintptr_t ra |  133 #define PARAMS_A uintptr_t ra | 
|  137 #define PARAMS_X intptr_t x |  134 #define PARAMS_X intptr_t x | 
|  138 #define PARAMS_T intptr_t x |  135 #define PARAMS_T intptr_t x | 
|  139 #define PARAMS_A_X uintptr_t ra, intptr_t x |  136 #define PARAMS_A_X uintptr_t ra, intptr_t x | 
|  140  |  137  | 
|  141  |  | 
|  142   BYTECODES_LIST(DECLARE_EMIT) |  138   BYTECODES_LIST(DECLARE_EMIT) | 
|  143  |  139  | 
|  144 #undef PARAMS_0 |  140 #undef PARAMS_0 | 
|  145 #undef PARAMS_A_D |  141 #undef PARAMS_A_D | 
|  146 #undef PARAMS_D |  142 #undef PARAMS_D | 
|  147 #undef PARAMS_A_B_C |  143 #undef PARAMS_A_B_C | 
|  148 #undef PARAMS_A |  144 #undef PARAMS_A | 
|  149 #undef PARAMS_X |  145 #undef PARAMS_X | 
|  150 #undef PARAMS_T |  146 #undef PARAMS_T | 
|  151 #undef PARAMS_A_X |  147 #undef PARAMS_A_X | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
|  178  |  174  | 
|  179     DISALLOW_COPY_AND_ASSIGN(CodeComment); |  175     DISALLOW_COPY_AND_ASSIGN(CodeComment); | 
|  180   }; |  176   }; | 
|  181  |  177  | 
|  182   GrowableArray<CodeComment*> comments_; |  178   GrowableArray<CodeComment*> comments_; | 
|  183  |  179  | 
|  184   DISALLOW_ALLOCATION(); |  180   DISALLOW_ALLOCATION(); | 
|  185   DISALLOW_COPY_AND_ASSIGN(Assembler); |  181   DISALLOW_COPY_AND_ASSIGN(Assembler); | 
|  186 }; |  182 }; | 
|  187  |  183  | 
|  188  |  | 
|  189 }  // namespace dart |  184 }  // namespace dart | 
|  190  |  185  | 
|  191 #endif  // RUNTIME_VM_ASSEMBLER_DBC_H_ |  186 #endif  // RUNTIME_VM_ASSEMBLER_DBC_H_ | 
| OLD | NEW |