v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <regexp-macro-assembler.h>
Public Types | |
enum | IrregexpImplementation { kIA32Implementation, kARMImplementation, kMIPSImplementation, kX64Implementation, kBytecodeImplementation } |
enum | StackCheckFlag { kNoStackLimitCheck = false, kCheckStackLimit = true } |
enum | GlobalMode { NOT_GLOBAL, GLOBAL, GLOBAL_NO_ZERO_LENGTH_CHECK } |
Public Member Functions | |
RegExpMacroAssembler (Zone *zone) | |
virtual | ~RegExpMacroAssembler () |
virtual int | stack_limit_slack ()=0 |
virtual bool | CanReadUnaligned () |
virtual void | AdvanceCurrentPosition (int by)=0 |
virtual void | AdvanceRegister (int reg, int by)=0 |
virtual void | Backtrack ()=0 |
virtual void | Bind (Label *label)=0 |
virtual void | CheckAtStart (Label *on_at_start)=0 |
virtual void | CheckCharacter (unsigned c, Label *on_equal)=0 |
virtual void | CheckCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_equal)=0 |
virtual void | CheckCharacterGT (uc16 limit, Label *on_greater)=0 |
virtual void | CheckCharacterLT (uc16 limit, Label *on_less)=0 |
virtual void | CheckCharacters (Vector< const uc16 > str, int cp_offset, Label *on_failure, bool check_eos)=0 |
virtual void | CheckGreedyLoop (Label *on_tos_equals_current_position)=0 |
virtual void | CheckNotAtStart (Label *on_not_at_start)=0 |
virtual void | CheckNotBackReference (int start_reg, Label *on_no_match)=0 |
virtual void | CheckNotBackReferenceIgnoreCase (int start_reg, Label *on_no_match)=0 |
virtual void | CheckNotCharacter (unsigned c, Label *on_not_equal)=0 |
virtual void | CheckNotCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_not_equal)=0 |
virtual void | CheckNotCharacterAfterMinusAnd (uc16 c, uc16 minus, uc16 and_with, Label *on_not_equal)=0 |
virtual void | CheckCharacterInRange (uc16 from, uc16 to, Label *on_in_range)=0 |
virtual void | CheckCharacterNotInRange (uc16 from, uc16 to, Label *on_not_in_range)=0 |
virtual void | CheckBitInTable (Handle< ByteArray > table, Label *on_bit_set)=0 |
virtual void | CheckPosition (int cp_offset, Label *on_outside_input) |
virtual bool | CheckSpecialCharacterClass (uc16 type, Label *on_no_match) |
virtual void | Fail ()=0 |
virtual Handle< HeapObject > | GetCode (Handle< String > source)=0 |
virtual void | GoTo (Label *label)=0 |
virtual void | IfRegisterGE (int reg, int comparand, Label *if_ge)=0 |
virtual void | IfRegisterLT (int reg, int comparand, Label *if_lt)=0 |
virtual void | IfRegisterEqPos (int reg, Label *if_eq)=0 |
virtual IrregexpImplementation | Implementation ()=0 |
virtual void | LoadCurrentCharacter (int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1)=0 |
virtual void | PopCurrentPosition ()=0 |
virtual void | PopRegister (int register_index)=0 |
virtual void | PushBacktrack (Label *label)=0 |
virtual void | PushCurrentPosition ()=0 |
virtual void | PushRegister (int register_index, StackCheckFlag check_stack_limit)=0 |
virtual void | ReadCurrentPositionFromRegister (int reg)=0 |
virtual void | ReadStackPointerFromRegister (int reg)=0 |
virtual void | SetCurrentPositionFromEnd (int by)=0 |
virtual void | SetRegister (int register_index, int to)=0 |
virtual bool | Succeed ()=0 |
virtual void | WriteCurrentPositionToRegister (int reg, int cp_offset)=0 |
virtual void | ClearRegisters (int reg_from, int reg_to)=0 |
virtual void | WriteStackPointerToRegister (int reg)=0 |
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 |
Static Public Attributes | |
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 42 of file regexp-macro-assembler.h.
enum GlobalMode |
Enumerator | |
---|---|
NOT_GLOBAL | |
GLOBAL | |
GLOBAL_NO_ZERO_LENGTH_CHECK |
Definition at line 183 of file regexp-macro-assembler.h.
Enumerator | |
---|---|
kIA32Implementation | |
kARMImplementation | |
kMIPSImplementation | |
kX64Implementation | |
kBytecodeImplementation |
Definition at line 53 of file regexp-macro-assembler.h.
enum StackCheckFlag |
Enumerator | |
---|---|
kNoStackLimitCheck | |
kCheckStackLimit |
Definition at line 61 of file regexp-macro-assembler.h.
|
explicit |
Definition at line 38 of file regexp-macro-assembler.cc.
|
virtual |
Definition at line 45 of file regexp-macro-assembler.cc.
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::AdvanceCurrentPosition(), ChoiceNode::Emit(), LoopChoiceNode::Emit(), BoyerMooreLookahead::EmitSkipInstructions(), and Trace::Flush().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::AdvanceRegister().
|
pure virtual |
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpCompiler::Assemble(), RegExpMacroAssemblerTracer::Bind(), ActionNode::Emit(), AssertionNode::Emit(), EndNode::Emit(), NegativeSubmatchSuccess::Emit(), ChoiceNode::Emit(), BoyerMooreLookahead::EmitSkipInstructions(), Trace::Flush(), and RegExpNode::LimitVersions().
|
virtual |
Reimplemented in NativeRegExpMacroAssembler, RegExpMacroAssemblerMIPS, RegExpMacroAssemblerARM, and RegExpMacroAssemblerTracer.
Definition at line 49 of file regexp-macro-assembler.cc.
Referenced by RegExpMacroAssemblerTracer::CanReadUnaligned(), and RegExpNode::EmitQuickCheck().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckAtStart().
|
pure virtual |
Implemented in RegExpMacroAssemblerARM, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacter(), RegExpNode::EmitQuickCheck(), and BoyerMooreLookahead::EmitSkipInstructions().
|
pure virtual |
Implemented in RegExpMacroAssemblerARM, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacterAfterAnd(), RegExpNode::EmitQuickCheck(), and BoyerMooreLookahead::EmitSkipInstructions().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacterGT().
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacterInRange().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacterLT().
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacterNotInRange().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckCharacters().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckGreedyLoop(), and ChoiceNode::Emit().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckNotAtStart(), and AssertionNode::Emit().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckNotBackReference(), and BackReferenceNode::Emit().
|
pure virtual |
|
pure virtual |
Implemented in RegExpMacroAssemblerARM, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckNotCharacter(), and RegExpNode::EmitQuickCheck().
|
pure virtual |
Implemented in RegExpMacroAssemblerARM, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::CheckNotCharacterAfterAnd(), and RegExpNode::EmitQuickCheck().
|
inlinevirtual |
Reimplemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, and RegExpMacroAssemblerIA32.
Definition at line 133 of file regexp-macro-assembler.h.
References RegExpMacroAssembler::LoadCurrentCharacter().
Referenced by AssertionNode::Emit().
|
inlinevirtual |
Reimplemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Definition at line 140 of file regexp-macro-assembler.h.
Referenced by RegExpMacroAssemblerTracer::CheckSpecialCharacterClass().
|
pure virtual |
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpCompiler::Assemble(), and RegExpMacroAssemblerTracer::Fail().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpCompiler::Assemble(), and RegExpMacroAssemblerTracer::GetCode().
|
inline |
Definition at line 187 of file regexp-macro-assembler.h.
References RegExpMacroAssembler::NOT_GLOBAL.
|
inline |
Definition at line 188 of file regexp-macro-assembler.h.
References RegExpMacroAssembler::GLOBAL.
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ActionNode::Emit(), AssertionNode::Emit(), EndNode::Emit(), ChoiceNode::Emit(), LoopChoiceNode::Emit(), BoyerMooreLookahead::EmitSkipInstructions(), Trace::Flush(), RegExpMacroAssemblerTracer::GoTo(), and RegExpNode::LimitVersions().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ActionNode::Emit(), and RegExpMacroAssemblerTracer::IfRegisterEqPos().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::IfRegisterGE().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ActionNode::Emit(), and RegExpMacroAssemblerTracer::IfRegisterLT().
|
pure virtual |
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssembler::CheckPosition(), RegExpNode::EmitQuickCheck(), BoyerMooreLookahead::EmitSkipInstructions(), and RegExpMacroAssemblerTracer::LoadCurrentCharacter().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by Trace::Flush(), and RegExpMacroAssemblerTracer::PopCurrentPosition().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::PopRegister().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpCompiler::Assemble(), Trace::Flush(), and RegExpMacroAssemblerTracer::PushBacktrack().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ChoiceNode::Emit(), Trace::Flush(), and RegExpMacroAssemblerTracer::PushCurrentPosition().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::PushRegister().
|
pure virtual |
|
pure virtual |
|
inline |
Definition at line 186 of file regexp-macro-assembler.h.
|
inline |
Definition at line 180 of file regexp-macro-assembler.h.
Referenced by RegExpCompiler::Assemble().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::SetCurrentPositionFromEnd().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::SetRegister().
|
inline |
Definition at line 181 of file regexp-macro-assembler.h.
Referenced by NativeRegExpMacroAssembler::CanReadUnaligned().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by RegExpMacroAssemblerTracer::stack_limit_slack().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by EndNode::Emit(), and RegExpMacroAssemblerTracer::Succeed().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ActionNode::Emit(), and RegExpMacroAssemblerTracer::WriteCurrentPositionToRegister().
|
pure virtual |
Implemented in RegExpMacroAssemblerMIPS, RegExpMacroAssemblerX64, RegExpMacroAssemblerARM, RegExpMacroAssemblerIA32, and RegExpMacroAssemblerTracer.
Referenced by ActionNode::Emit(), and RegExpMacroAssemblerTracer::WriteStackPointerToRegister().
|
inline |
Definition at line 192 of file regexp-macro-assembler.h.
|
static |
Definition at line 46 of file regexp-macro-assembler.h.
Referenced by Trace::AdvanceCurrentPositionInTrace(), and TextNode::Emit().
|
static |
Definition at line 45 of file regexp-macro-assembler.h.
Referenced by RegExpCompiler::AllocateRegister(), RegExpEngine::Compile(), and RegExpCompiler::RegExpCompiler().
|
static |
Definition at line 47 of file regexp-macro-assembler.h.
|
static |
Definition at line 51 of file regexp-macro-assembler.h.
Referenced by RegExpMacroAssemblerTracer::CheckBitInTable(), FrequencyCollator::CountCharacter(), BoyerMooreLookahead::EmitSkipInstructions(), and FrequencyCollator::Frequency().
|
static |
Definition at line 50 of file regexp-macro-assembler.h.
Referenced by RegExpMacroAssemblerTracer::CheckBitInTable(), BoyerMooreLookahead::EmitSkipInstructions(), and FrequencyCollator::FrequencyCollator().
|
static |
Definition at line 49 of file regexp-macro-assembler.h.