| 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 |