5#ifndef V8_REGEXP_REGEXP_MACRO_ASSEMBLER_TRACER_H_
6#define V8_REGEXP_REGEXP_MACRO_ASSEMBLER_TRACER_H_
32 Label* on_equal)
override;
39 Label* on_no_match)
override;
42 Label* on_no_match)
override;
45 Label* on_not_equal)
override;
48 Label* on_not_equal)
override;
50 Label* on_in_range)
override;
52 Label* on_not_in_range)
override;
54 Label* on_in_range)
override;
56 Label* on_not_in_range)
override;
63 int advance_by)
override;
66 Label* on_no_match)
override;
76 bool check_bounds,
int characters,
77 int eats_at_least)
override;
87 void SetRegister(
int register_index,
int to)
override;
void ReadStackPointerFromRegister(int reg) override
bool CheckCharacterInRangeArray(const ZoneList< CharacterRange > *ranges, Label *on_in_range) override
void IfRegisterGE(int reg, int comparand, Label *if_ge) override
void GoTo(Label *label) override
void SetRegister(int register_index, int to) override
void CheckNotBackReferenceIgnoreCase(int start_reg, bool read_backward, bool unicode, Label *on_no_match) override
void AdvanceRegister(int reg, int by) override
void CheckCharacterLT(base::uc16 limit, Label *on_less) override
void WriteCurrentPositionToRegister(int reg, int cp_offset) override
void CheckCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_equal) override
void CheckNotAtStart(int cp_offset, Label *on_not_at_start) override
void AdvanceCurrentPosition(int by) override
void ClearRegisters(int reg_from, int reg_to) override
void CheckPosition(int cp_offset, Label *on_outside_input) override
bool CheckCharacterNotInRangeArray(const ZoneList< CharacterRange > *ranges, Label *on_not_in_range) override
void PushCurrentPosition() override
void CheckNotCharacterAfterMinusAnd(base::uc16 c, base::uc16 minus, base::uc16 and_with, Label *on_not_equal) override
void CheckCharacterInRange(base::uc16 from, base::uc16 to, Label *on_in_range) override
RegExpMacroAssemblerTracer(Isolate *isolate, RegExpMacroAssembler *assembler)
void WriteStackPointerToRegister(int reg) override
void CheckCharacterGT(base::uc16 limit, Label *on_greater) override
void PopRegister(int register_index) override
void CheckAtStart(int cp_offset, Label *on_at_start) override
void CheckNotBackReference(int start_reg, bool read_backward, Label *on_no_match) override
void IfRegisterEqPos(int reg, Label *if_eq) override
void CheckNotCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_not_equal) override
void CheckCharacterNotInRange(base::uc16 from, base::uc16 to, Label *on_not_in_range) override
~RegExpMacroAssemblerTracer() override
DirectHandle< HeapObject > GetCode(DirectHandle< String > source, RegExpFlags flags) override
void AbortedCodeGeneration() override
bool SkipUntilBitInTableUseSimd(int advance_by) override
void PushRegister(int register_index, StackCheckFlag check_stack_limit) override
void SetCurrentPositionFromEnd(int by) override
void PopCurrentPosition() override
void CheckGreedyLoop(Label *on_tos_equals_current_position) override
IrregexpImplementation Implementation() override
void CheckBitInTable(Handle< ByteArray > table, Label *on_bit_set) override
void CheckNotCharacter(unsigned c, Label *on_not_equal) override
void ReadCurrentPositionFromRegister(int reg) override
void Backtrack() override
void CheckCharacter(unsigned c, Label *on_equal) override
bool CanReadUnaligned() const override
RegExpMacroAssembler * assembler_
void SkipUntilBitInTable(int cp_offset, Handle< ByteArray > table, Handle< ByteArray > nibble_table, int advance_by) override
void LoadCurrentCharacterImpl(int cp_offset, Label *on_end_of_input, bool check_bounds, int characters, int eats_at_least) override
void PushBacktrack(Label *label) override
void IfRegisterLT(int reg, int comparand, Label *if_lt) override
void Bind(Label *label) override
int stack_limit_slack_slot_count() override
bool CheckSpecialClassRanges(StandardCharacterSet type, Label *on_no_match) override
virtual int stack_limit_slack_slot_count()=0
virtual bool CanReadUnaligned() const =0
virtual bool SkipUntilBitInTableUseSimd(int advance_by)