28 #ifndef V8_REGEXP_MACRO_ASSEMBLER_TRACER_H_
29 #define V8_REGEXP_MACRO_ASSEMBLER_TRACER_H_
44 virtual void Bind(Label* label);
70 Label* on_not_in_range);
76 virtual void GoTo(Label* label);
77 virtual void IfRegisterGE(
int reg,
int comparand, Label* if_ge);
78 virtual void IfRegisterLT(
int reg,
int comparand, Label* if_lt);
82 Label* on_end_of_input,
83 bool check_bounds =
true,
94 virtual void SetRegister(
int register_index,
int to);
106 #endif // V8_REGEXP_MACRO_ASSEMBLER_TRACER_H_
virtual bool CanReadUnaligned()
virtual void CheckNotBackReferenceIgnoreCase(int start_reg, Label *on_no_match)
virtual void CheckCharacterLT(uc16 limit, Label *on_less)
virtual void IfRegisterLT(int reg, int comparand, Label *if_lt)
virtual void ClearRegisters(int reg_from, int reg_to)
virtual int stack_limit_slack()=0
virtual void ReadCurrentPositionFromRegister(int reg)
virtual void IfRegisterEqPos(int reg, Label *if_eq)
virtual ~RegExpMacroAssemblerTracer()
virtual void CheckCharacterNotInRange(uc16 from, uc16 to, Label *on_not_in_range)
virtual void PushCurrentPosition()
virtual void GoTo(Label *label)
virtual void PopCurrentPosition()
virtual void CheckNotCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_not_equal)
virtual void CheckNotCharacterAfterMinusAnd(uc16 c, uc16 minus, uc16 and_with, Label *on_not_equal)
virtual void WriteCurrentPositionToRegister(int reg, int cp_offset)
virtual bool CanReadUnaligned()
virtual void CheckBitInTable(Handle< ByteArray > table, Label *on_bit_set)
virtual int stack_limit_slack()
virtual void CheckGreedyLoop(Label *on_tos_equals_current_position)
virtual void CheckNotAtStart(Label *on_not_at_start)
virtual void LoadCurrentCharacter(int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1)
virtual void CheckCharacter(unsigned c, Label *on_equal)
virtual void CheckNotBackReference(int start_reg, Label *on_no_match)
virtual void SetCurrentPositionFromEnd(int by)
virtual void CheckCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_equal)
virtual Handle< HeapObject > GetCode(Handle< String > source)
virtual void IfRegisterGE(int reg, int comparand, Label *if_ge)
virtual void ReadStackPointerFromRegister(int reg)
virtual IrregexpImplementation Implementation()
virtual bool CheckSpecialCharacterClass(uc16 type, Label *on_no_match)
virtual void CheckCharacterInRange(uc16 from, uc16 to, Label *on_in_range)
virtual void CheckAtStart(Label *on_at_start)
virtual void CheckNotCharacter(unsigned c, Label *on_not_equal)
virtual void Bind(Label *label)
virtual void PushRegister(int register_index, StackCheckFlag check_stack_limit)
virtual void AdvanceRegister(int reg, int by)
RegExpMacroAssemblerTracer(RegExpMacroAssembler *assembler)
virtual void PushBacktrack(Label *label)
virtual void SetRegister(int register_index, int to)
virtual void PopRegister(int register_index)
virtual void WriteStackPointerToRegister(int reg)
virtual void AdvanceCurrentPosition(int by)
virtual void CheckCharacterGT(uc16 limit, Label *on_greater)