V8 Project
v8::internal::RegExpMacroAssemblerX64 Class Reference

#include <regexp-macro-assembler-x64.h>

+ Inheritance diagram for v8::internal::RegExpMacroAssemblerX64:
+ Collaboration diagram for v8::internal::RegExpMacroAssemblerX64:

Public Member Functions

 RegExpMacroAssemblerX64 (Mode mode, int registers_to_save, Zone *zone)
 
virtual ~RegExpMacroAssemblerX64 ()
 
virtual int stack_limit_slack ()
 
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 (uint32_t c, Label *on_equal)
 
virtual void CheckCharacterAfterAnd (uint32_t c, uint32_t mask, 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 (uint32_t c, Label *on_not_equal)
 
virtual void CheckNotCharacterAfterAnd (uint32_t c, uint32_t mask, Label *on_not_equal)
 
virtual void CheckNotCharacterAfterMinusAnd (uc16 c, uc16 minus, uc16 mask, 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 void CheckPosition (int cp_offset, Label *on_outside_input)
 
virtual bool CheckSpecialCharacterClass (uc16 type, Label *on_no_match)
 
virtual void Fail ()
 
virtual Handle< HeapObjectGetCode (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)
 
- Public Member Functions inherited from v8::internal::NativeRegExpMacroAssembler
 NativeRegExpMacroAssembler (Zone *zone)
 
virtual ~NativeRegExpMacroAssembler ()
 
virtual bool CanReadUnaligned ()
 
- Public Member Functions inherited from v8::internal::RegExpMacroAssembler
 RegExpMacroAssembler (Zone *zone)
 
virtual ~RegExpMacroAssembler ()
 
virtual void CheckCharacter (unsigned c, Label *on_equal)=0
 
virtual void CheckCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_equal)=0
 
virtual void CheckNotCharacter (unsigned c, Label *on_not_equal)=0
 
virtual void CheckNotCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_not_equal)=0
 
void set_slow_safe (bool ssc)
 
bool slow_safe ()
 
void set_global_mode (GlobalMode mode)
 
bool global ()
 
bool global_with_zero_length_check ()
 
Zonezone () const
 

Static Public Member Functions

static Result Match (Handle< Code > regexp, Handle< String > subject, int *offsets_vector, int offsets_vector_length, int previous_index, Isolate *isolate)
 
static Result Execute (Code *code, String *input, int start_offset, const byte *input_start, const byte *input_end, int *output, bool at_start)
 
static int CheckStackGuardState (Address *return_address, Code *re_code, Address re_frame)
 
- Static Public Member Functions inherited from v8::internal::NativeRegExpMacroAssembler
static Result Match (Handle< Code > regexp, Handle< String > subject, int *offsets_vector, int offsets_vector_length, int previous_index, Isolate *isolate)
 
static int CaseInsensitiveCompareUC16 (Address byte_offset1, Address byte_offset2, size_t byte_length, Isolate *isolate)
 
static Address GrowStack (Address stack_pointer, Address *stack_top, Isolate *isolate)
 
static const byteStringCharacterPosition (String *subject, int start_index)
 
static Address word_character_map_address ()
 
static Result Execute (Code *code, String *input, int start_offset, const byte *input_start, const byte *input_end, int *output, int output_size, Isolate *isolate)
 

Private Member Functions

void LoadCurrentCharacterUnchecked (int cp_offset, int character_count)
 
void CheckPreemption ()
 
void CheckStackLimit ()
 
void CallCheckStackGuardState ()
 
Operand register_location (int register_index)
 
Register current_character ()
 
Register backtrack_stackpointer ()
 
Register code_object_pointer ()
 
int char_size ()
 
void BranchOrBacktrack (Condition condition, Label *to)
 
void MarkPositionForCodeRelativeFixup ()
 
void FixupCodeRelativePositions ()
 
void SafeCall (Label *to)
 
void SafeCallTarget (Label *label)
 
void SafeReturn ()
 
void Push (Register source)
 
void Push (Immediate value)
 
void Push (Label *label)
 
void Pop (Register target)
 
void Drop ()
 
void ReadPositionFromRegister (Register dst, int reg)
 
Isolateisolate () const
 

Private Attributes

MacroAssembler masm_
 
MacroAssembler::NoRootArrayScope no_root_array_scope_
 
ZoneList< intcode_relative_fixup_positions_
 
Mode mode_
 
int num_registers_
 
int num_saved_registers_
 
Label entry_label_
 
Label start_label_
 
Label success_label_
 
Label backtrack_label_
 
Label exit_label_
 
Label check_preempt_label_
 
Label stack_overflow_label_
 

Static Private Attributes

static const int kFramePointer = 0
 
static const int kReturn_eip = kFramePointer + kRegisterSize
 
static const int kFrameAlign = kReturn_eip + kRegisterSize
 
static const int kInputString = kFramePointer - kRegisterSize
 
static const int kStartIndex = kInputString - kRegisterSize
 
static const int kInputStart = kStartIndex - kRegisterSize
 
static const int kInputEnd = kInputStart - kRegisterSize
 
static const int kRegisterOutput = kInputEnd - kRegisterSize
 
static const int kNumOutputRegisters = kRegisterOutput - kRegisterSize
 
static const int kStackHighEnd = kFrameAlign
 
static const int kDirectCall = kStackHighEnd + kRegisterSize
 
static const int kIsolate = kDirectCall + kRegisterSize
 
static const int kBackup_rbx = kNumOutputRegisters - kRegisterSize
 
static const int kLastCalleeSaveRegister = kBackup_rbx
 
static const int kSuccessfulCaptures = kLastCalleeSaveRegister - kPointerSize
 
static const int kInputStartMinusOne = kSuccessfulCaptures - kPointerSize
 
static const int kRegisterZero = kInputStartMinusOne - kPointerSize
 
static const size_t kRegExpCodeSize = 1024
 

Additional Inherited Members

- Public Types inherited from v8::internal::NativeRegExpMacroAssembler
enum  Mode { LATIN1 = 1 , UC16 = 2 }
 
enum  Result { RETRY = -2 , EXCEPTION = -1 , FAILURE = 0 , SUCCESS = 1 }
 
- Public Types inherited from v8::internal::RegExpMacroAssembler
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 Public Attributes inherited from v8::internal::NativeRegExpMacroAssembler
static const byte word_character_map [256]
 
- Static Public Attributes inherited from v8::internal::RegExpMacroAssembler
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
 

Detailed Description

Definition at line 18 of file regexp-macro-assembler-x64.h.

Constructor & Destructor Documentation

◆ RegExpMacroAssemblerX64()

v8::internal::RegExpMacroAssemblerX64::RegExpMacroAssemblerX64 ( Mode  mode,
int  registers_to_save,
Zone zone 
)

◆ ~RegExpMacroAssemblerX64()

virtual v8::internal::RegExpMacroAssemblerX64::~RegExpMacroAssemblerX64 ( )
virtual

Member Function Documentation

◆ AdvanceCurrentPosition()

virtual void v8::internal::RegExpMacroAssemblerX64::AdvanceCurrentPosition ( int  by)
virtual

◆ AdvanceRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::AdvanceRegister ( int  reg,
int  by 
)
virtual

◆ Backtrack()

virtual void v8::internal::RegExpMacroAssemblerX64::Backtrack ( )
virtual

◆ backtrack_stackpointer()

Register v8::internal::RegExpMacroAssemblerX64::backtrack_stackpointer ( )
inlineprivate

Definition at line 203 of file regexp-macro-assembler-x64.h.

203 { return rcx; }
const Register rcx

References v8::internal::rcx.

◆ Bind()

virtual void v8::internal::RegExpMacroAssemblerX64::Bind ( Label *  label)
virtual

◆ BranchOrBacktrack()

void v8::internal::RegExpMacroAssemblerX64::BranchOrBacktrack ( Condition  condition,
Label *  to 
)
private

◆ CallCheckStackGuardState()

void v8::internal::RegExpMacroAssemblerX64::CallCheckStackGuardState ( )
private

◆ char_size()

int v8::internal::RegExpMacroAssemblerX64::char_size ( )
inlineprivate

Definition at line 209 of file regexp-macro-assembler-x64.h.

209 { return static_cast<int>(mode_); }

References mode_.

◆ CheckAtStart()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckAtStart ( Label *  on_at_start)
virtual

◆ CheckBitInTable()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckBitInTable ( Handle< ByteArray table,
Label *  on_bit_set 
)
virtual

◆ CheckCharacter()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacter ( uint32_t  c,
Label *  on_equal 
)
virtual

◆ CheckCharacterAfterAnd()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacterAfterAnd ( uint32_t  c,
uint32_t  mask,
Label *  on_equal 
)
virtual

◆ CheckCharacterGT()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacterGT ( uc16  limit,
Label *  on_greater 
)
virtual

◆ CheckCharacterInRange()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacterInRange ( uc16  from,
uc16  to,
Label *  on_in_range 
)
virtual

◆ CheckCharacterLT()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacterLT ( uc16  limit,
Label *  on_less 
)
virtual

◆ CheckCharacterNotInRange()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckCharacterNotInRange ( uc16  from,
uc16  to,
Label *  on_not_in_range 
)
virtual

◆ CheckGreedyLoop()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckGreedyLoop ( Label *  on_tos_equals_current_position)
virtual

◆ CheckNotAtStart()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotAtStart ( Label *  on_not_at_start)
virtual

◆ CheckNotBackReference()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotBackReference ( int  start_reg,
Label *  on_no_match 
)
virtual

◆ CheckNotBackReferenceIgnoreCase()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotBackReferenceIgnoreCase ( int  start_reg,
Label *  on_no_match 
)
virtual

◆ CheckNotCharacter()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotCharacter ( uint32_t  c,
Label *  on_not_equal 
)
virtual

◆ CheckNotCharacterAfterAnd()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotCharacterAfterAnd ( uint32_t  c,
uint32_t  mask,
Label *  on_not_equal 
)
virtual

◆ CheckNotCharacterAfterMinusAnd()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckNotCharacterAfterMinusAnd ( uc16  c,
uc16  minus,
uc16  mask,
Label *  on_not_equal 
)
virtual

◆ CheckPosition()

virtual void v8::internal::RegExpMacroAssemblerX64::CheckPosition ( int  cp_offset,
Label *  on_outside_input 
)
virtual

◆ CheckPreemption()

void v8::internal::RegExpMacroAssemblerX64::CheckPreemption ( )
private

◆ CheckSpecialCharacterClass()

virtual bool v8::internal::RegExpMacroAssemblerX64::CheckSpecialCharacterClass ( uc16  type,
Label *  on_no_match 
)
virtual

◆ CheckStackGuardState()

static int v8::internal::RegExpMacroAssemblerX64::CheckStackGuardState ( Address return_address,
Code re_code,
Address  re_frame 
)
static

◆ CheckStackLimit()

void v8::internal::RegExpMacroAssemblerX64::CheckStackLimit ( )
private

◆ ClearRegisters()

virtual void v8::internal::RegExpMacroAssemblerX64::ClearRegisters ( int  reg_from,
int  reg_to 
)
virtual

◆ code_object_pointer()

Register v8::internal::RegExpMacroAssemblerX64::code_object_pointer ( )
inlineprivate

Definition at line 206 of file regexp-macro-assembler-x64.h.

206 { return r8; }
const Register r8

References v8::internal::r8.

◆ current_character()

Register v8::internal::RegExpMacroAssemblerX64::current_character ( )
inlineprivate

Definition at line 199 of file regexp-macro-assembler-x64.h.

199 { return rdx; }
const Register rdx

References v8::internal::rdx.

◆ Drop()

void v8::internal::RegExpMacroAssemblerX64::Drop ( )
inlineprivate

◆ Execute()

static Result v8::internal::RegExpMacroAssemblerX64::Execute ( Code code,
String input,
int  start_offset,
const byte input_start,
const byte input_end,
int output,
bool  at_start 
)
static

◆ Fail()

virtual void v8::internal::RegExpMacroAssemblerX64::Fail ( )
virtual

◆ FixupCodeRelativePositions()

void v8::internal::RegExpMacroAssemblerX64::FixupCodeRelativePositions ( )
private

◆ GetCode()

virtual Handle<HeapObject> v8::internal::RegExpMacroAssemblerX64::GetCode ( Handle< String source)
virtual

◆ GoTo()

virtual void v8::internal::RegExpMacroAssemblerX64::GoTo ( Label *  label)
virtual

◆ IfRegisterEqPos()

virtual void v8::internal::RegExpMacroAssemblerX64::IfRegisterEqPos ( int  reg,
Label *  if_eq 
)
virtual

◆ IfRegisterGE()

virtual void v8::internal::RegExpMacroAssemblerX64::IfRegisterGE ( int  reg,
int  comparand,
Label *  if_ge 
)
virtual

◆ IfRegisterLT()

virtual void v8::internal::RegExpMacroAssemblerX64::IfRegisterLT ( int  reg,
int  comparand,
Label *  if_lt 
)
virtual

◆ Implementation()

virtual IrregexpImplementation v8::internal::RegExpMacroAssemblerX64::Implementation ( )
virtual

◆ isolate()

Isolate* v8::internal::RegExpMacroAssemblerX64::isolate ( ) const
inlineprivate

Definition at line 250 of file regexp-macro-assembler-x64.h.

250 { return masm_.isolate(); }
Isolate * isolate() const
Definition: assembler.h:62

References v8::internal::AssemblerBase::isolate(), and masm_.

+ Here is the call graph for this function:

◆ LoadCurrentCharacter()

virtual void v8::internal::RegExpMacroAssemblerX64::LoadCurrentCharacter ( int  cp_offset,
Label *  on_end_of_input,
bool  check_bounds = true,
int  characters = 1 
)
virtual

◆ LoadCurrentCharacterUnchecked()

void v8::internal::RegExpMacroAssemblerX64::LoadCurrentCharacterUnchecked ( int  cp_offset,
int  character_count 
)
private

◆ MarkPositionForCodeRelativeFixup()

void v8::internal::RegExpMacroAssemblerX64::MarkPositionForCodeRelativeFixup ( )
inlineprivate

Definition at line 215 of file regexp-macro-assembler-x64.h.

215  {
217  }
void Add(const T &element, AllocationPolicy allocator=AllocationPolicy())
Definition: list-inl.h:17

References v8::internal::List< T, AllocationPolicy >::Add(), code_relative_fixup_positions_, masm_, v8::internal::AssemblerBase::pc_offset(), and v8::internal::RegExpMacroAssembler::zone().

+ Here is the call graph for this function:

◆ Match()

static Result v8::internal::RegExpMacroAssemblerX64::Match ( Handle< Code regexp,
Handle< String subject,
int offsets_vector,
int  offsets_vector_length,
int  previous_index,
Isolate isolate 
)
static

◆ Pop()

void v8::internal::RegExpMacroAssemblerX64::Pop ( Register  target)
inlineprivate

◆ PopCurrentPosition()

virtual void v8::internal::RegExpMacroAssemblerX64::PopCurrentPosition ( )
virtual

◆ PopRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::PopRegister ( int  register_index)
virtual

◆ Push() [1/3]

void v8::internal::RegExpMacroAssemblerX64::Push ( Immediate  value)
inlineprivate

◆ Push() [2/3]

void v8::internal::RegExpMacroAssemblerX64::Push ( Label *  label)
inlineprivate

◆ Push() [3/3]

void v8::internal::RegExpMacroAssemblerX64::Push ( Register  source)
inlineprivate

◆ PushBacktrack()

virtual void v8::internal::RegExpMacroAssemblerX64::PushBacktrack ( Label *  label)
virtual

◆ PushCurrentPosition()

virtual void v8::internal::RegExpMacroAssemblerX64::PushCurrentPosition ( )
virtual

◆ PushRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::PushRegister ( int  register_index,
StackCheckFlag  check_stack_limit 
)
virtual

◆ ReadCurrentPositionFromRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::ReadCurrentPositionFromRegister ( int  reg)
virtual

◆ ReadPositionFromRegister()

void v8::internal::RegExpMacroAssemblerX64::ReadPositionFromRegister ( Register  dst,
int  reg 
)
inlineprivate

◆ ReadStackPointerFromRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::ReadStackPointerFromRegister ( int  reg)
virtual

◆ register_location()

Operand v8::internal::RegExpMacroAssemblerX64::register_location ( int  register_index)
private

◆ SafeCall()

void v8::internal::RegExpMacroAssemblerX64::SafeCall ( Label *  to)
inlineprivate

◆ SafeCallTarget()

void v8::internal::RegExpMacroAssemblerX64::SafeCallTarget ( Label *  label)
inlineprivate

◆ SafeReturn()

void v8::internal::RegExpMacroAssemblerX64::SafeReturn ( )
inlineprivate

◆ SetCurrentPositionFromEnd()

virtual void v8::internal::RegExpMacroAssemblerX64::SetCurrentPositionFromEnd ( int  by)
virtual

◆ SetRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::SetRegister ( int  register_index,
int  to 
)
virtual

◆ stack_limit_slack()

virtual int v8::internal::RegExpMacroAssemblerX64::stack_limit_slack ( )
virtual

◆ Succeed()

virtual bool v8::internal::RegExpMacroAssemblerX64::Succeed ( )
virtual

◆ WriteCurrentPositionToRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::WriteCurrentPositionToRegister ( int  reg,
int  cp_offset 
)
virtual

◆ WriteStackPointerToRegister()

virtual void v8::internal::RegExpMacroAssemblerX64::WriteStackPointerToRegister ( int  reg)
virtual

Member Data Documentation

◆ backtrack_label_

Label v8::internal::RegExpMacroAssemblerX64::backtrack_label_
private

Definition at line 271 of file regexp-macro-assembler-x64.h.

◆ check_preempt_label_

Label v8::internal::RegExpMacroAssemblerX64::check_preempt_label_
private

Definition at line 273 of file regexp-macro-assembler-x64.h.

◆ code_relative_fixup_positions_

ZoneList<int> v8::internal::RegExpMacroAssemblerX64::code_relative_fixup_positions_
private

Definition at line 255 of file regexp-macro-assembler-x64.h.

Referenced by MarkPositionForCodeRelativeFixup().

◆ entry_label_

Label v8::internal::RegExpMacroAssemblerX64::entry_label_
private

Definition at line 268 of file regexp-macro-assembler-x64.h.

◆ exit_label_

Label v8::internal::RegExpMacroAssemblerX64::exit_label_
private

Definition at line 272 of file regexp-macro-assembler-x64.h.

◆ kBackup_rbx

const int v8::internal::RegExpMacroAssemblerX64::kBackup_rbx = kNumOutputRegisters - kRegisterSize
staticprivate

Definition at line 167 of file regexp-macro-assembler-x64.h.

◆ kDirectCall

const int v8::internal::RegExpMacroAssemblerX64::kDirectCall = kStackHighEnd + kRegisterSize
staticprivate

Definition at line 152 of file regexp-macro-assembler-x64.h.

◆ kFrameAlign

const int v8::internal::RegExpMacroAssemblerX64::kFrameAlign = kReturn_eip + kRegisterSize
staticprivate

Definition at line 115 of file regexp-macro-assembler-x64.h.

◆ kFramePointer

const int v8::internal::RegExpMacroAssemblerX64::kFramePointer = 0
staticprivate

Definition at line 112 of file regexp-macro-assembler-x64.h.

◆ kInputEnd

const int v8::internal::RegExpMacroAssemblerX64::kInputEnd = kInputStart - kRegisterSize
staticprivate

Definition at line 144 of file regexp-macro-assembler-x64.h.

◆ kInputStart

const int v8::internal::RegExpMacroAssemblerX64::kInputStart = kStartIndex - kRegisterSize
staticprivate

Definition at line 143 of file regexp-macro-assembler-x64.h.

◆ kInputStartMinusOne

const int v8::internal::RegExpMacroAssemblerX64::kInputStartMinusOne = kSuccessfulCaptures - kPointerSize
staticprivate

Definition at line 174 of file regexp-macro-assembler-x64.h.

◆ kInputString

const int v8::internal::RegExpMacroAssemblerX64::kInputString = kFramePointer - kRegisterSize
staticprivate

Definition at line 141 of file regexp-macro-assembler-x64.h.

◆ kIsolate

const int v8::internal::RegExpMacroAssemblerX64::kIsolate = kDirectCall + kRegisterSize
staticprivate

Definition at line 153 of file regexp-macro-assembler-x64.h.

◆ kLastCalleeSaveRegister

const int v8::internal::RegExpMacroAssemblerX64::kLastCalleeSaveRegister = kBackup_rbx
staticprivate

Definition at line 168 of file regexp-macro-assembler-x64.h.

◆ kNumOutputRegisters

const int v8::internal::RegExpMacroAssemblerX64::kNumOutputRegisters = kRegisterOutput - kRegisterSize
staticprivate

Definition at line 150 of file regexp-macro-assembler-x64.h.

◆ kRegExpCodeSize

const size_t v8::internal::RegExpMacroAssemblerX64::kRegExpCodeSize = 1024
staticprivate

Definition at line 180 of file regexp-macro-assembler-x64.h.

◆ kRegisterOutput

const int v8::internal::RegExpMacroAssemblerX64::kRegisterOutput = kInputEnd - kRegisterSize
staticprivate

Definition at line 145 of file regexp-macro-assembler-x64.h.

◆ kRegisterZero

const int v8::internal::RegExpMacroAssemblerX64::kRegisterZero = kInputStartMinusOne - kPointerSize
staticprivate

Definition at line 177 of file regexp-macro-assembler-x64.h.

◆ kReturn_eip

const int v8::internal::RegExpMacroAssemblerX64::kReturn_eip = kFramePointer + kRegisterSize
staticprivate

Definition at line 114 of file regexp-macro-assembler-x64.h.

◆ kStackHighEnd

const int v8::internal::RegExpMacroAssemblerX64::kStackHighEnd = kFrameAlign
staticprivate

Definition at line 151 of file regexp-macro-assembler-x64.h.

◆ kStartIndex

const int v8::internal::RegExpMacroAssemblerX64::kStartIndex = kInputString - kRegisterSize
staticprivate

Definition at line 142 of file regexp-macro-assembler-x64.h.

◆ kSuccessfulCaptures

const int v8::internal::RegExpMacroAssemblerX64::kSuccessfulCaptures = kLastCalleeSaveRegister - kPointerSize
staticprivate

Definition at line 171 of file regexp-macro-assembler-x64.h.

◆ masm_

MacroAssembler v8::internal::RegExpMacroAssemblerX64::masm_
private

Definition at line 252 of file regexp-macro-assembler-x64.h.

Referenced by isolate(), and MarkPositionForCodeRelativeFixup().

◆ mode_

Mode v8::internal::RegExpMacroAssemblerX64::mode_
private

Definition at line 258 of file regexp-macro-assembler-x64.h.

Referenced by char_size().

◆ no_root_array_scope_

MacroAssembler::NoRootArrayScope v8::internal::RegExpMacroAssemblerX64::no_root_array_scope_
private

Definition at line 253 of file regexp-macro-assembler-x64.h.

◆ num_registers_

int v8::internal::RegExpMacroAssemblerX64::num_registers_
private

Definition at line 261 of file regexp-macro-assembler-x64.h.

◆ num_saved_registers_

int v8::internal::RegExpMacroAssemblerX64::num_saved_registers_
private

Definition at line 265 of file regexp-macro-assembler-x64.h.

◆ stack_overflow_label_

Label v8::internal::RegExpMacroAssemblerX64::stack_overflow_label_
private

Definition at line 274 of file regexp-macro-assembler-x64.h.

◆ start_label_

Label v8::internal::RegExpMacroAssemblerX64::start_label_
private

Definition at line 269 of file regexp-macro-assembler-x64.h.

◆ success_label_

Label v8::internal::RegExpMacroAssemblerX64::success_label_
private

Definition at line 270 of file regexp-macro-assembler-x64.h.


The documentation for this class was generated from the following file: