| OLD | NEW | 
|---|
| 1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_REGEXP_ASSEMBLER_H_ | 5 #ifndef RUNTIME_VM_REGEXP_ASSEMBLER_H_ | 
| 6 #define RUNTIME_VM_REGEXP_ASSEMBLER_H_ | 6 #define RUNTIME_VM_REGEXP_ASSEMBLER_H_ | 
| 7 | 7 | 
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" | 
| 9 #include "vm/intermediate_language.h" | 9 #include "vm/intermediate_language.h" | 
| 10 #include "vm/object.h" | 10 #include "vm/object.h" | 
| 11 | 11 | 
| 12 namespace dart { | 12 namespace dart { | 
| 13 | 13 | 
| 14 // Utility function for the DotPrinter | 14 // Utility function for the DotPrinter | 
| 15 void PrintUtf16(uint16_t c); | 15 void PrintUtf16(uint16_t c); | 
| 16 | 16 | 
| 17 |  | 
| 18 /// Convenience wrapper around a BlockEntryInstr pointer. | 17 /// Convenience wrapper around a BlockEntryInstr pointer. | 
| 19 class BlockLabel : public ValueObject { | 18 class BlockLabel : public ValueObject { | 
| 20   // Used by the IR assembler. | 19   // Used by the IR assembler. | 
| 21  public: | 20  public: | 
| 22   BlockLabel(); | 21   BlockLabel(); | 
| 23 | 22 | 
| 24   JoinEntryInstr* block() const { return block_; } | 23   JoinEntryInstr* block() const { return block_; } | 
| 25 | 24 | 
| 26   bool IsBound() const { return is_bound_; } | 25   bool IsBound() const { return is_bound_; } | 
| 27   void SetBound(intptr_t block_id) { | 26   void SetBound(intptr_t block_id) { | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 69     pos_ = pos; | 68     pos_ = pos; | 
| 70     is_bound_ = false; | 69     is_bound_ = false; | 
| 71     is_linked_ = true; | 70     is_linked_ = true; | 
| 72     ASSERT(is_linked()); | 71     ASSERT(is_linked()); | 
| 73   } | 72   } | 
| 74 | 73 | 
| 75  private: | 74  private: | 
| 76   intptr_t pos_; | 75   intptr_t pos_; | 
| 77 }; | 76 }; | 
| 78 | 77 | 
| 79 |  | 
| 80 class RegExpMacroAssembler : public ZoneAllocated { | 78 class RegExpMacroAssembler : public ZoneAllocated { | 
| 81  public: | 79  public: | 
| 82   // The implementation must be able to handle at least: | 80   // The implementation must be able to handle at least: | 
| 83   static const intptr_t kMaxRegister = (1 << 16) - 1; | 81   static const intptr_t kMaxRegister = (1 << 16) - 1; | 
| 84   static const intptr_t kMaxCPOffset = (1 << 15) - 1; | 82   static const intptr_t kMaxCPOffset = (1 << 15) - 1; | 
| 85   static const intptr_t kMinCPOffset = -(1 << 15); | 83   static const intptr_t kMinCPOffset = -(1 << 15); | 
| 86 | 84 | 
| 87   static const intptr_t kTableSizeBits = 7; | 85   static const intptr_t kTableSizeBits = 7; | 
| 88   static const intptr_t kTableSize = 1 << kTableSizeBits; | 86   static const intptr_t kTableSize = 1 << kTableSizeBits; | 
| 89   static const intptr_t kTableMask = kTableSize - 1; | 87   static const intptr_t kTableMask = kTableSize - 1; | 
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 229 | 227 | 
| 230  private: | 228  private: | 
| 231   bool slow_safe_compiler_; | 229   bool slow_safe_compiler_; | 
| 232   bool global_mode_; | 230   bool global_mode_; | 
| 233   Zone* zone_; | 231   Zone* zone_; | 
| 234 }; | 232 }; | 
| 235 | 233 | 
| 236 }  // namespace dart | 234 }  // namespace dart | 
| 237 | 235 | 
| 238 #endif  // RUNTIME_VM_REGEXP_ASSEMBLER_H_ | 236 #endif  // RUNTIME_VM_REGEXP_ASSEMBLER_H_ | 
| OLD | NEW | 
|---|