Flutter Engine
The Flutter Engine
|
#include <regexp_assembler_ir.h>
Public Types | |
enum | Mode { ASCII = 1 , UC16 = 2 } |
enum | Result { RETRY = -2 , EXCEPTION = -1 , FAILURE = 0 , SUCCESS = 1 } |
Public Types inherited from dart::RegExpMacroAssembler | |
enum | { kParamRegExpIndex = 0 , kParamStringIndex , kParamStartOffsetIndex , kParamCount } |
enum | IrregexpImplementation { kBytecodeImplementation , kIRImplementation } |
enum | GlobalMode { NOT_GLOBAL , GLOBAL , GLOBAL_NO_ZERO_LENGTH_CHECK , GLOBAL_UNICODE } |
Public Member Functions | |
IRRegExpMacroAssembler (intptr_t specialization_cid, intptr_t capture_count, const ParsedFunction *parsed_function, const ZoneGrowableArray< const ICData * > &ic_data_array, intptr_t osr_id, Zone *zone) | |
virtual | ~IRRegExpMacroAssembler () |
virtual bool | CanReadUnaligned () |
virtual bool | IsClosed () const |
virtual intptr_t | stack_limit_slack () |
virtual void | AdvanceCurrentPosition (intptr_t by) |
virtual void | AdvanceRegister (intptr_t reg, intptr_t by) |
virtual void | Backtrack () |
virtual void | BindBlock (BlockLabel *label) |
virtual void | CheckAtStart (BlockLabel *on_at_start) |
virtual void | CheckCharacter (uint32_t c, BlockLabel *on_equal) |
virtual void | CheckCharacterAfterAnd (uint32_t c, uint32_t mask, BlockLabel *on_equal) |
virtual void | CheckCharacterGT (uint16_t limit, BlockLabel *on_greater) |
virtual void | CheckCharacterLT (uint16_t limit, BlockLabel *on_less) |
virtual void | CheckGreedyLoop (BlockLabel *on_tos_equals_current_position) |
virtual void | CheckNotAtStart (intptr_t cp_offset, BlockLabel *on_not_at_start) |
virtual void | CheckNotBackReference (intptr_t start_reg, bool read_backward, BlockLabel *on_no_match) |
virtual void | CheckNotBackReferenceIgnoreCase (intptr_t start_reg, bool read_backward, bool unicode, BlockLabel *on_no_match) |
virtual void | CheckNotCharacter (uint32_t c, BlockLabel *on_not_equal) |
virtual void | CheckNotCharacterAfterAnd (uint32_t c, uint32_t mask, BlockLabel *on_not_equal) |
virtual void | CheckNotCharacterAfterMinusAnd (uint16_t c, uint16_t minus, uint16_t mask, BlockLabel *on_not_equal) |
virtual void | CheckCharacterInRange (uint16_t from, uint16_t to, BlockLabel *on_in_range) |
virtual void | CheckCharacterNotInRange (uint16_t from, uint16_t to, BlockLabel *on_not_in_range) |
virtual void | CheckBitInTable (const TypedData &table, BlockLabel *on_bit_set) |
virtual void | CheckPosition (intptr_t cp_offset, BlockLabel *on_outside_input) |
virtual bool | CheckSpecialCharacterClass (uint16_t type, BlockLabel *on_no_match) |
virtual void | Fail () |
virtual void | IfRegisterGE (intptr_t reg, intptr_t comparand, BlockLabel *if_ge) |
virtual void | IfRegisterLT (intptr_t reg, intptr_t comparand, BlockLabel *if_lt) |
virtual void | IfRegisterEqPos (intptr_t reg, BlockLabel *if_eq) |
virtual IrregexpImplementation | Implementation () |
virtual void | GoTo (BlockLabel *to) |
virtual void | LoadCurrentCharacter (intptr_t cp_offset, BlockLabel *on_end_of_input, bool check_bounds=true, intptr_t characters=1) |
virtual void | PopCurrentPosition () |
virtual void | PopRegister (intptr_t register_index) |
virtual void | Print (const char *str) |
virtual void | PushBacktrack (BlockLabel *label) |
virtual void | PushCurrentPosition () |
virtual void | PushRegister (intptr_t register_index) |
virtual void | ReadCurrentPositionFromRegister (intptr_t reg) |
virtual void | ReadStackPointerFromRegister (intptr_t reg) |
virtual void | SetCurrentPositionFromEnd (intptr_t by) |
virtual void | SetRegister (intptr_t register_index, intptr_t to) |
virtual bool | Succeed () |
virtual void | WriteCurrentPositionToRegister (intptr_t reg, intptr_t cp_offset) |
virtual void | ClearRegisters (intptr_t reg_from, intptr_t reg_to) |
virtual void | WriteStackPointerToRegister (intptr_t reg) |
virtual void | PrintBlocks () |
IndirectGotoInstr * | backtrack_goto () const |
GraphEntryInstr * | graph_entry () const |
intptr_t | num_stack_locals () const |
intptr_t | num_blocks () const |
void | GenerateBacktrackBlock () |
void | FinalizeRegistersArray () |
Public Member Functions inherited from dart::RegExpMacroAssembler | |
RegExpMacroAssembler (Zone *zone) | |
virtual | ~RegExpMacroAssembler () |
virtual intptr_t | stack_limit_slack ()=0 |
virtual bool | CanReadUnaligned ()=0 |
virtual void | AdvanceCurrentPosition (intptr_t by)=0 |
virtual void | AdvanceRegister (intptr_t reg, intptr_t by)=0 |
virtual void | Backtrack ()=0 |
virtual void | BindBlock (BlockLabel *label)=0 |
virtual void | CheckAtStart (BlockLabel *on_at_start)=0 |
virtual void | CheckCharacter (unsigned c, BlockLabel *on_equal)=0 |
virtual void | CheckCharacterAfterAnd (unsigned c, unsigned and_with, BlockLabel *on_equal)=0 |
virtual void | CheckCharacterGT (uint16_t limit, BlockLabel *on_greater)=0 |
virtual void | CheckCharacterLT (uint16_t limit, BlockLabel *on_less)=0 |
virtual void | CheckGreedyLoop (BlockLabel *on_tos_equals_current_position)=0 |
virtual void | CheckNotAtStart (intptr_t cp_offset, BlockLabel *on_not_at_start)=0 |
virtual void | CheckNotBackReference (intptr_t start_reg, bool read_backward, BlockLabel *on_no_match)=0 |
virtual void | CheckNotBackReferenceIgnoreCase (intptr_t start_reg, bool read_backward, bool unicode, BlockLabel *on_no_match)=0 |
virtual void | CheckNotCharacter (unsigned c, BlockLabel *on_not_equal)=0 |
virtual void | CheckNotCharacterAfterAnd (unsigned c, unsigned and_with, BlockLabel *on_not_equal)=0 |
virtual void | CheckNotCharacterAfterMinusAnd (uint16_t c, uint16_t minus, uint16_t and_with, BlockLabel *on_not_equal)=0 |
virtual void | CheckCharacterInRange (uint16_t from, uint16_t to, BlockLabel *on_in_range)=0 |
virtual void | CheckCharacterNotInRange (uint16_t from, uint16_t to, BlockLabel *on_not_in_range)=0 |
virtual void | CheckBitInTable (const TypedData &table, BlockLabel *on_bit_set)=0 |
virtual void | CheckPreemption (bool is_backtrack) |
virtual void | CheckPosition (intptr_t cp_offset, BlockLabel *on_outside_input) |
virtual bool | CheckSpecialCharacterClass (uint16_t type, BlockLabel *on_no_match) |
virtual void | Fail ()=0 |
virtual void | IfRegisterGE (intptr_t reg, intptr_t comparand, BlockLabel *if_ge)=0 |
virtual void | IfRegisterLT (intptr_t reg, intptr_t comparand, BlockLabel *if_lt)=0 |
virtual void | IfRegisterEqPos (intptr_t reg, BlockLabel *if_eq)=0 |
virtual IrregexpImplementation | Implementation ()=0 |
virtual bool | IsClosed () const =0 |
virtual void | GoTo (BlockLabel *to)=0 |
virtual void | LoadCurrentCharacter (intptr_t cp_offset, BlockLabel *on_end_of_input, bool check_bounds=true, intptr_t characters=1)=0 |
virtual void | PopCurrentPosition ()=0 |
virtual void | PopRegister (intptr_t register_index)=0 |
virtual void | Print (const char *str)=0 |
virtual void | PrintBlocks ()=0 |
virtual void | PushBacktrack (BlockLabel *label)=0 |
virtual void | PushCurrentPosition ()=0 |
virtual void | PushRegister (intptr_t register_index)=0 |
virtual void | ReadCurrentPositionFromRegister (intptr_t reg)=0 |
virtual void | ReadStackPointerFromRegister (intptr_t reg)=0 |
virtual void | SetCurrentPositionFromEnd (intptr_t by)=0 |
virtual void | SetRegister (intptr_t register_index, intptr_t to)=0 |
virtual bool | Succeed ()=0 |
virtual void | WriteCurrentPositionToRegister (intptr_t reg, intptr_t cp_offset)=0 |
virtual void | ClearRegisters (intptr_t reg_from, intptr_t reg_to)=0 |
virtual void | WriteStackPointerToRegister (intptr_t reg)=0 |
void | CheckNotInSurrogatePair (intptr_t cp_offset, BlockLabel *on_failure) |
void | set_slow_safe (bool ssc) |
bool | slow_safe () |
void | set_global_mode (GlobalMode mode) |
bool | global () |
bool | global_with_zero_length_check () |
bool | global_unicode () |
Zone * | zone () const |
Public Member Functions inherited from dart::ZoneAllocated | |
ZoneAllocated () | |
void * | operator new (size_t size) |
void * | operator new (size_t size, Zone *zone) |
void | operator delete (void *pointer) |
Static Public Member Functions | |
static ArrayPtr | Execute (const RegExp ®exp, const String &input, const Smi &start_offset, bool sticky, Zone *zone) |
Additional Inherited Members | |
Static Public Attributes inherited from dart::RegExpMacroAssembler | |
static constexpr intptr_t | kMaxRegister = (1 << 16) - 1 |
static constexpr intptr_t | kMaxCPOffset = (1 << 15) - 1 |
static constexpr intptr_t | kMinCPOffset = -(1 << 15) |
static constexpr intptr_t | kTableSizeBits = 7 |
static constexpr intptr_t | kTableSize = 1 << kTableSizeBits |
static constexpr intptr_t | kTableMask = kTableSize - 1 |
Definition at line 15 of file regexp_assembler_ir.h.
dart::IRRegExpMacroAssembler::IRRegExpMacroAssembler | ( | intptr_t | specialization_cid, |
intptr_t | capture_count, | ||
const ParsedFunction * | parsed_function, | ||
const ZoneGrowableArray< const ICData * > & | ic_data_array, | ||
intptr_t | osr_id, | ||
Zone * | zone | ||
) |
Definition at line 66 of file regexp_assembler_ir.cc.
|
virtual |
Definition at line 134 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 631 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 642 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 657 of file regexp_assembler_ir.cc.
|
inline |
Definition at line 124 of file regexp_assembler_ir.h.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 665 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 281 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 731 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1166 of file regexp_assembler_ir.cc.
|
virtual |
Definition at line 715 of file regexp_assembler_ir.cc.
|
virtual |
Definition at line 1074 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 723 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1129 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 758 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1150 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 766 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 744 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 960 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 783 of file regexp_assembler_ir.cc.
|
virtual |
Definition at line 1066 of file regexp_assembler_ir.cc.
|
virtual |
Definition at line 1090 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1107 of file regexp_assembler_ir.cc.
|
virtual |
Reimplemented from dart::RegExpMacroAssembler.
Definition at line 1589 of file regexp_assembler_ir.cc.
|
virtual |
Reimplemented from dart::RegExpMacroAssembler.
Definition at line 1187 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1559 of file regexp_assembler_ir.cc.
|
static |
Definition at line 285 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1321 of file regexp_assembler_ir.cc.
void dart::IRRegExpMacroAssembler::FinalizeRegistersArray | ( | ) |
Definition at line 273 of file regexp_assembler_ir.cc.
void dart::IRRegExpMacroAssembler::GenerateBacktrackBlock | ( | ) |
Definition at line 212 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 585 of file regexp_assembler_ir.cc.
|
inline |
Definition at line 125 of file regexp_assembler_ir.h.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1348 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1330 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1339 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1356 of file regexp_assembler_ir.cc.
|
inlinevirtual |
Implements dart::RegExpMacroAssembler.
Definition at line 47 of file regexp_assembler_ir.h.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1360 of file regexp_assembler_ir.cc.
|
inline |
Definition at line 128 of file regexp_assembler_ir.h.
|
inline |
Definition at line 127 of file regexp_assembler_ir.h.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1376 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1381 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 609 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 621 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1420 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1436 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1441 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1498 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1504 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1510 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1531 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 627 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1538 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1544 of file regexp_assembler_ir.cc.
|
virtual |
Implements dart::RegExpMacroAssembler.
Definition at line 1578 of file regexp_assembler_ir.cc.