V8 Project
|
#include <regexp-macro-assembler-tracer.h>
Public Member Functions | |
RegExpMacroAssemblerTracer (RegExpMacroAssembler *assembler) | |
virtual | ~RegExpMacroAssemblerTracer () |
virtual int | stack_limit_slack () |
virtual bool | CanReadUnaligned () |
virtual void | AdvanceCurrentPosition (int by) |
virtual void | AdvanceRegister (int reg, int by) |
virtual void | Backtrack () |
virtual void | Bind (Label *label) |
virtual void | CheckAtStart (Label *on_at_start) |
virtual void | CheckCharacter (unsigned c, Label *on_equal) |
virtual void | CheckCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_equal) |
virtual void | CheckCharacterGT (uc16 limit, Label *on_greater) |
virtual void | CheckCharacterLT (uc16 limit, Label *on_less) |
virtual void | CheckGreedyLoop (Label *on_tos_equals_current_position) |
virtual void | CheckNotAtStart (Label *on_not_at_start) |
virtual void | CheckNotBackReference (int start_reg, Label *on_no_match) |
virtual void | CheckNotBackReferenceIgnoreCase (int start_reg, Label *on_no_match) |
virtual void | CheckNotCharacter (unsigned c, Label *on_not_equal) |
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 | CheckCharacterInRange (uc16 from, uc16 to, Label *on_in_range) |
virtual void | CheckCharacterNotInRange (uc16 from, uc16 to, Label *on_not_in_range) |
virtual void | CheckBitInTable (Handle< ByteArray > table, Label *on_bit_set) |
virtual bool | CheckSpecialCharacterClass (uc16 type, Label *on_no_match) |
virtual void | Fail () |
virtual Handle< HeapObject > | GetCode (Handle< String > source) |
virtual void | GoTo (Label *label) |
virtual void | IfRegisterGE (int reg, int comparand, Label *if_ge) |
virtual void | IfRegisterLT (int reg, int comparand, Label *if_lt) |
virtual void | IfRegisterEqPos (int reg, Label *if_eq) |
virtual IrregexpImplementation | Implementation () |
virtual void | LoadCurrentCharacter (int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1) |
virtual void | PopCurrentPosition () |
virtual void | PopRegister (int register_index) |
virtual void | PushBacktrack (Label *label) |
virtual void | PushCurrentPosition () |
virtual void | PushRegister (int register_index, StackCheckFlag check_stack_limit) |
virtual void | ReadCurrentPositionFromRegister (int reg) |
virtual void | ReadStackPointerFromRegister (int reg) |
virtual void | SetCurrentPositionFromEnd (int by) |
virtual void | SetRegister (int register_index, int to) |
virtual bool | Succeed () |
virtual void | WriteCurrentPositionToRegister (int reg, int cp_offset) |
virtual void | ClearRegisters (int reg_from, int reg_to) |
virtual void | WriteStackPointerToRegister (int reg) |
![]() | |
RegExpMacroAssembler (Zone *zone) | |
virtual | ~RegExpMacroAssembler () |
virtual void | CheckPosition (int cp_offset, Label *on_outside_input) |
void | set_slow_safe (bool ssc) |
bool | slow_safe () |
void | set_global_mode (GlobalMode mode) |
bool | global () |
bool | global_with_zero_length_check () |
Zone * | zone () const |
Private Attributes | |
RegExpMacroAssembler * | assembler_ |
Additional Inherited Members | |
![]() | |
enum | IrregexpImplementation { kIA32Implementation , kARMImplementation , kARM64Implementation , kMIPSImplementation , kX64Implementation , kX87Implementation , kBytecodeImplementation } |
enum | StackCheckFlag { kNoStackLimitCheck = false , kCheckStackLimit = true } |
enum | GlobalMode { NOT_GLOBAL , GLOBAL , GLOBAL_NO_ZERO_LENGTH_CHECK } |
![]() | |
static const int | kMaxRegister = (1 << 16) - 1 |
static const int | kMaxCPOffset = (1 << 15) - 1 |
static const int | kMinCPOffset = -(1 << 15) |
static const int | kTableSizeBits = 7 |
static const int | kTableSize = 1 << kTableSizeBits |
static const int | kTableMask = kTableSize - 1 |
Definition at line 12 of file regexp-macro-assembler-tracer.h.
|
explicit |
Definition at line 14 of file regexp-macro-assembler-tracer.cc.
References DCHECK, v8::internal::RegExpMacroAssembler::Implementation(), and v8::internal::PrintF().
|
virtual |
Definition at line 26 of file regexp-macro-assembler-tracer.cc.
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 43 of file regexp-macro-assembler-tracer.cc.
References v8::internal::RegExpMacroAssembler::AdvanceCurrentPosition(), assembler_, and v8::internal::PrintF().
Implements v8::internal::RegExpMacroAssembler.
Definition at line 114 of file regexp-macro-assembler-tracer.cc.
References v8::internal::RegExpMacroAssembler::AdvanceRegister(), assembler_, and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 67 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::Backtrack(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 37 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::Bind(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
inlinevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 17 of file regexp-macro-assembler-tracer.h.
References assembler_, and v8::internal::RegExpMacroAssembler::CanReadUnaligned().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 235 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckAtStart(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 334 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckBitInTable(), v8::internal::RegExpMacroAssembler::kTableMask, v8::internal::RegExpMacroAssembler::kTableSize, v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 225 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacter(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 258 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterAfterAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 214 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterGT(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 301 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterInRange(), v8::internal::LabelToInt(), v8::internal::PrintF(), and to().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 204 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterLT(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 317 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterNotInRange(), v8::internal::LabelToInt(), v8::internal::PrintF(), and to().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 49 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckGreedyLoop(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 241 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotAtStart(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 348 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotBackReference(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 356 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotBackReferenceIgnoreCase(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 247 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacter(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 272 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacterAfterAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 286 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacterAfterMinusAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Reimplemented from v8::internal::RegExpMacroAssembler.
Definition at line 365 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::CheckSpecialCharacterClass(), v8::internal::LabelToInt(), and v8::internal::PrintF().
Implements v8::internal::RegExpMacroAssembler.
Definition at line 141 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::ClearRegisters(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 92 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::Fail(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 408 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::GetCode(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 73 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::GoTo(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 386 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterEqPos(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 394 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterGE(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 378 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterLT(), v8::internal::LabelToInt(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 403 of file regexp-macro-assembler-tracer.cc.
References assembler_, and v8::internal::RegExpMacroAssembler::Implementation().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 165 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::LabelToInt(), v8::internal::RegExpMacroAssembler::LoadCurrentCharacter(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 55 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::PopCurrentPosition(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 98 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::RegExpMacroAssembler::PopRegister(), and v8::internal::PrintF().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 79 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::LabelToInt(), v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushBacktrack().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 61 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushCurrentPosition().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 104 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushRegister().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 147 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::ReadCurrentPositionFromRegister().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 159 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::ReadStackPointerFromRegister().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 120 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::SetCurrentPositionFromEnd().
Implements v8::internal::RegExpMacroAssembler.
Definition at line 126 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), v8::internal::RegExpMacroAssembler::SetRegister(), and to().
|
inlinevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 16 of file regexp-macro-assembler-tracer.h.
References assembler_, and v8::internal::RegExpMacroAssembler::stack_limit_slack().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 85 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::Succeed().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 132 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::WriteCurrentPositionToRegister().
|
virtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 153 of file regexp-macro-assembler-tracer.cc.
References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::WriteStackPointerToRegister().
|
private |
Definition at line 78 of file regexp-macro-assembler-tracer.h.
Referenced by AdvanceCurrentPosition(), AdvanceRegister(), Backtrack(), Bind(), CanReadUnaligned(), CheckAtStart(), CheckBitInTable(), CheckCharacter(), CheckCharacterAfterAnd(), CheckCharacterGT(), CheckCharacterInRange(), CheckCharacterLT(), CheckCharacterNotInRange(), CheckGreedyLoop(), CheckNotAtStart(), CheckNotBackReference(), CheckNotBackReferenceIgnoreCase(), CheckNotCharacter(), CheckNotCharacterAfterAnd(), CheckNotCharacterAfterMinusAnd(), CheckSpecialCharacterClass(), ClearRegisters(), Fail(), GetCode(), GoTo(), IfRegisterEqPos(), IfRegisterGE(), IfRegisterLT(), Implementation(), LoadCurrentCharacter(), PopCurrentPosition(), PopRegister(), PushBacktrack(), PushCurrentPosition(), PushRegister(), ReadCurrentPositionFromRegister(), ReadStackPointerFromRegister(), SetCurrentPositionFromEnd(), SetRegister(), stack_limit_slack(), Succeed(), WriteCurrentPositionToRegister(), and WriteStackPointerToRegister().