| 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 VM_REGEXP_ASSEMBLER_H_ | 5 #ifndef VM_REGEXP_ASSEMBLER_H_ |
| 6 #define VM_REGEXP_ASSEMBLER_H_ | 6 #define 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" |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 | 462 |
| 463 PushArgumentInstr* PushArgument(Value* value); | 463 PushArgumentInstr* PushArgument(Value* value); |
| 464 PushArgumentInstr* PushLocal(LocalVariable* local); | 464 PushArgumentInstr* PushLocal(LocalVariable* local); |
| 465 | 465 |
| 466 // Load a number of characters at the given offset from the | 466 // Load a number of characters at the given offset from the |
| 467 // current position, into the current-character register. | 467 // current position, into the current-character register. |
| 468 void LoadCurrentCharacterUnchecked(intptr_t cp_offset, | 468 void LoadCurrentCharacterUnchecked(intptr_t cp_offset, |
| 469 intptr_t character_count); | 469 intptr_t character_count); |
| 470 | 470 |
| 471 // Returns the character within the passed string at the specified index. | 471 // Returns the character within the passed string at the specified index. |
| 472 Value* CharacterAt(Definition* index); | 472 Value* CharacterAt(LocalVariable* index); |
| 473 | 473 |
| 474 // Load a number of characters starting from index in the pattern string. | 474 // Load a number of characters starting from index in the pattern string. |
| 475 Value* LoadCodeUnitsAt(Value* pattern, | 475 Value* LoadCodeUnitsAt(LocalVariable* index, intptr_t character_count); |
| 476 Value* index, | |
| 477 intptr_t character_count); | |
| 478 | 476 |
| 479 // Check whether preemption has been requested. | 477 // Check whether preemption has been requested. |
| 480 void CheckPreemption(); | 478 void CheckPreemption(); |
| 481 | 479 |
| 482 // Byte size of chars in the string to match (decided by the Mode argument) | 480 // Byte size of chars in the string to match (decided by the Mode argument) |
| 483 inline intptr_t char_size() { return static_cast<int>(mode_); } | 481 inline intptr_t char_size() { return static_cast<int>(mode_); } |
| 484 | 482 |
| 485 // Equivalent to a conditional branch to the label, unless the label | 483 // Equivalent to a conditional branch to the label, unless the label |
| 486 // is NULL, in which case it is a conditional Backtrack. | 484 // is NULL, in which case it is a conditional Backtrack. |
| 487 void BranchOrBacktrack(ComparisonInstr* comparison, | 485 void BranchOrBacktrack(ComparisonInstr* comparison, |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 599 // The start index within the string, passed as a function parameter. | 597 // The start index within the string, passed as a function parameter. |
| 600 LocalVariable* start_index_param_; | 598 LocalVariable* start_index_param_; |
| 601 | 599 |
| 602 // An assortment of utility variables. | 600 // An assortment of utility variables. |
| 603 LocalVariable* capture_length_; | 601 LocalVariable* capture_length_; |
| 604 LocalVariable* match_start_index_; | 602 LocalVariable* match_start_index_; |
| 605 LocalVariable* capture_start_index_; | 603 LocalVariable* capture_start_index_; |
| 606 LocalVariable* match_end_index_; | 604 LocalVariable* match_end_index_; |
| 607 LocalVariable* char_in_capture_; | 605 LocalVariable* char_in_capture_; |
| 608 LocalVariable* char_in_match_; | 606 LocalVariable* char_in_match_; |
| 607 LocalVariable* index_temp_; |
| 609 | 608 |
| 610 LocalVariable* result_; | 609 LocalVariable* result_; |
| 611 | 610 |
| 612 // Stored positions containing group bounds. Generated as needed. | 611 // Stored positions containing group bounds. Generated as needed. |
| 613 const intptr_t position_registers_count_; | 612 const intptr_t position_registers_count_; |
| 614 GrowableArray<LocalVariable*> position_registers_; | 613 GrowableArray<LocalVariable*> position_registers_; |
| 615 | 614 |
| 616 // The actual array object used as the stack. | 615 // The actual array object used as the stack. |
| 617 GrowableObjectArray& stack_array_; | 616 GrowableObjectArray& stack_array_; |
| 618 | 617 |
| 619 IdAllocator block_id_; | 618 IdAllocator block_id_; |
| 620 IdAllocator temp_id_; | 619 IdAllocator temp_id_; |
| 621 IdAllocator arg_id_; | 620 IdAllocator arg_id_; |
| 622 IdAllocator local_id_; | 621 IdAllocator local_id_; |
| 623 IdAllocator indirect_id_; | 622 IdAllocator indirect_id_; |
| 624 }; | 623 }; |
| 625 | 624 |
| 626 | 625 |
| 627 } // namespace dart | 626 } // namespace dart |
| 628 | 627 |
| 629 #endif // VM_REGEXP_ASSEMBLER_H_ | 628 #endif // VM_REGEXP_ASSEMBLER_H_ |
| OLD | NEW |