5#ifndef RUNTIME_VM_REGEXP_ASSEMBLER_BYTECODE_H_
6#define RUNTIME_VM_REGEXP_ASSEMBLER_BYTECODE_H_
47 virtual void SetRegister(intptr_t register_index, intptr_t to);
56 intptr_t characters = 1);
112 const Smi& start_index,
120 inline void Emit32(uint32_t
x);
121 inline void Emit16(uint32_t
x);
122 inline void Emit8(uint32_t
x);
123 inline void Emit(uint32_t bc, uint32_t arg);
135 intptr_t advance_current_start_;
136 intptr_t advance_current_offset_;
137 intptr_t advance_current_end_;
139 static constexpr int kInvalidPC = -1;
void check_bounds(skiatest::Reporter *reporter, const SkPath &path)
Convenience wrapper around a BlockEntryInstr pointer.
virtual void SetCurrentPositionFromEnd(intptr_t by)
virtual void CheckAtStart(BlockLabel *on_at_start)
virtual void GoTo(BlockLabel *label)
virtual void CheckCharacterInRange(uint16_t from, uint16_t to, BlockLabel *on_in_range)
virtual void CheckBitInTable(const TypedData &table, BlockLabel *on_bit_set)
virtual bool IsClosed() const
virtual IrregexpImplementation Implementation()
virtual void CheckCharacterAfterAnd(unsigned c, unsigned mask, BlockLabel *on_equal)
BytecodeRegExpMacroAssembler(ZoneGrowableArray< uint8_t > *buffer, Zone *zone)
virtual void CheckCharacterLT(uint16_t limit, BlockLabel *on_less)
virtual void AdvanceRegister(intptr_t reg, intptr_t by)
virtual void CheckNotCharacterAfterAnd(unsigned c, unsigned mask, BlockLabel *on_not_equal)
virtual ~BytecodeRegExpMacroAssembler()
virtual void Print(const char *str)
virtual void ReadCurrentPositionFromRegister(intptr_t reg)
virtual void IfRegisterGE(intptr_t register_index, intptr_t comparand, BlockLabel *if_ge)
virtual void PopRegister(intptr_t register_index)
virtual void CheckNotCharacter(unsigned c, BlockLabel *on_not_equal)
virtual void PopCurrentPosition()
virtual void WriteStackPointerToRegister(intptr_t reg)
virtual void ReadStackPointerFromRegister(intptr_t reg)
virtual void CheckCharacter(unsigned c, BlockLabel *on_equal)
virtual void PrintBlocks()
virtual void IfRegisterEqPos(intptr_t register_index, BlockLabel *if_eq)
virtual void ClearRegisters(intptr_t reg_from, intptr_t reg_to)
virtual void CheckCharacterNotInRange(uint16_t from, uint16_t to, BlockLabel *on_not_in_range)
virtual void PushBacktrack(BlockLabel *label)
virtual void AdvanceCurrentPosition(intptr_t by)
virtual void LoadCurrentCharacter(intptr_t cp_offset, BlockLabel *on_end_of_input, bool check_bounds=true, intptr_t characters=1)
virtual void WriteCurrentPositionToRegister(intptr_t reg, intptr_t cp_offset)
TypedDataPtr GetBytecode()
virtual void PushRegister(intptr_t register_index)
virtual void BindBlock(BlockLabel *label)
virtual void CheckNotCharacterAfterMinusAnd(uint16_t c, uint16_t minus, uint16_t mask, BlockLabel *on_not_equal)
virtual void PushCurrentPosition()
virtual void IfRegisterLT(intptr_t register_index, intptr_t comparand, BlockLabel *if_lt)
virtual void SetRegister(intptr_t register_index, intptr_t to)
static ObjectPtr Interpret(const RegExp ®exp, const String &str, const Smi &start_index, bool is_sticky, Zone *zone)
virtual intptr_t stack_limit_slack()
virtual void CheckNotAtStart(intptr_t cp_offset, BlockLabel *on_not_at_start)
virtual void CheckGreedyLoop(BlockLabel *on_tos_equals_current_position)
virtual bool CanReadUnaligned()
virtual void CheckCharacterGT(uint16_t limit, BlockLabel *on_greater)
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)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer