v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::RegExpMacroAssemblerRISCV Class Reference

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

Inheritance diagram for v8::internal::RegExpMacroAssemblerRISCV:
Collaboration diagram for v8::internal::RegExpMacroAssemblerRISCV:

Public Member Functions

 RegExpMacroAssemblerRISCV (Isolate *isolate, Zone *zone, Mode mode, int registers_to_save)
 
 ~RegExpMacroAssemblerRISCV () override
 
int stack_limit_slack_slot_count () override
 
void AdvanceCurrentPosition (int by) override
 
void AdvanceRegister (int reg, int by) override
 
void Backtrack () override
 
void Bind (Label *label) override
 
void CheckAtStart (int cp_offset, Label *on_at_start) override
 
void CheckCharacter (uint32_t c, Label *on_equal) override
 
void CheckCharacterAfterAnd (uint32_t c, uint32_t mask, Label *on_equal) override
 
void CheckCharacterGT (base::uc16 limit, Label *on_greater) override
 
void CheckCharacterLT (base::uc16 limit, Label *on_less) override
 
void CheckGreedyLoop (Label *on_tos_equals_current_position) override
 
void CheckNotAtStart (int cp_offset, Label *on_not_at_start) override
 
void CheckNotBackReference (int start_reg, bool read_backward, Label *on_no_match) override
 
void CheckNotBackReferenceIgnoreCase (int start_reg, bool read_backward, bool unicode, Label *on_no_match) override
 
void CheckNotCharacter (uint32_t c, Label *on_not_equal) override
 
void CheckNotCharacterAfterAnd (uint32_t c, uint32_t mask, Label *on_not_equal) override
 
void CheckNotCharacterAfterMinusAnd (base::uc16 c, base::uc16 minus, base::uc16 mask, Label *on_not_equal) override
 
void CheckCharacterInRange (base::uc16 from, base::uc16 to, Label *on_in_range) override
 
void CheckCharacterNotInRange (base::uc16 from, base::uc16 to, Label *on_not_in_range) override
 
bool CheckCharacterInRangeArray (const ZoneList< CharacterRange > *ranges, Label *on_in_range) override
 
bool CheckCharacterNotInRangeArray (const ZoneList< CharacterRange > *ranges, Label *on_not_in_range) override
 
void CheckBitInTable (Handle< ByteArray > table, Label *on_bit_set) override
 
void SkipUntilBitInTable (int cp_offset, Handle< ByteArray > table, Handle< ByteArray > nibble_table, int advance_by) override
 
void CheckPosition (int cp_offset, Label *on_outside_input) override
 
bool CheckSpecialClassRanges (StandardCharacterSet type, Label *on_no_match) override
 
void Fail () override
 
DirectHandle< HeapObjectGetCode (DirectHandle< String > source, RegExpFlags flags) override
 
void GoTo (Label *label) override
 
void IfRegisterGE (int reg, int comparand, Label *if_ge) override
 
void IfRegisterLT (int reg, int comparand, Label *if_lt) override
 
void IfRegisterEqPos (int reg, Label *if_eq) override
 
IrregexpImplementation Implementation () override
 
void LoadCurrentCharacterUnchecked (int cp_offset, int character_count) override
 
void PopCurrentPosition () override
 
void PopRegister (int register_index) override
 
void PushBacktrack (Label *label) override
 
void PushCurrentPosition () override
 
void PushRegister (int register_index, StackCheckFlag check_stack_limit) override
 
void ReadCurrentPositionFromRegister (int reg) override
 
void ReadStackPointerFromRegister (int reg) override
 
void SetCurrentPositionFromEnd (int by) override
 
void SetRegister (int register_index, int to) override
 
bool Succeed () override
 
void WriteCurrentPositionToRegister (int reg, int cp_offset) override
 
void ClearRegisters (int reg_from, int reg_to) override
 
void WriteStackPointerToRegister (int reg) override
 
void print_regexp_frame_constants ()
 
- Public Member Functions inherited from v8::internal::NativeRegExpMacroAssembler
 NativeRegExpMacroAssembler (Isolate *isolate, Zone *zone)
 
 ~NativeRegExpMacroAssembler () override=default
 
bool CanReadUnaligned () const override
 
void LoadCurrentCharacterImpl (int cp_offset, Label *on_end_of_input, bool check_bounds, int characters, int eats_at_least) override
 
- Public Member Functions inherited from v8::internal::RegExpMacroAssembler
 RegExpMacroAssembler (Isolate *isolate, Zone *zone)
 
virtual ~RegExpMacroAssembler ()=default
 
virtual void AbortedCodeGeneration ()
 
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
 
virtual bool SkipUntilBitInTableUseSimd (int advance_by)
 
virtual void BindJumpTarget (Label *label)
 
V8_EXPORT_PRIVATE void LoadCurrentCharacter (int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1, int eats_at_least=kUseCharactersValue)
 
void CheckNotInSurrogatePair (int cp_offset, Label *on_failure)
 
const char * ImplementationToString (IrregexpImplementation impl)
 
void set_slow_safe (bool ssc)
 
bool slow_safe () const
 
void set_backtrack_limit (uint32_t backtrack_limit)
 
void set_can_fallback (bool val)
 
void set_global_mode (GlobalMode mode)
 
bool global () const
 
bool global_with_zero_length_check () const
 
bool global_unicode () const
 
Isolateisolate () const
 
Zonezone () const
 

Static Public Member Functions

static int64_t CheckStackGuardState (Address *return_address, Address raw_code, Address re_frame, uintptr_t extra_space)
 
- Static Public Member Functions inherited from v8::internal::NativeRegExpMacroAssembler
static int Match (DirectHandle< IrRegExpData > regexp_data, DirectHandle< String > subject, int *offsets_vector, int offsets_vector_length, int previous_index, Isolate *isolate)
 
static V8_EXPORT_PRIVATE int ExecuteForTesting (Tagged< String > input, int start_offset, const uint8_t *input_start, const uint8_t *input_end, int *output, int output_size, Isolate *isolate, Tagged< JSRegExp > regexp)
 
static Address GrowStack (Isolate *isolate)
 
static int CheckStackGuardState (Isolate *isolate, int start_index, RegExp::CallOrigin call_origin, Address *return_address, Tagged< InstructionStream > re_code, Address *subject, const uint8_t **input_start, const uint8_t **input_end, uintptr_t gap)
 
static Address word_character_map_address ()
 
- Static Public Member Functions inherited from v8::internal::RegExpMacroAssembler
static int CaseInsensitiveCompareNonUnicode (Address byte_offset1, Address byte_offset2, size_t byte_length, Isolate *isolate)
 
static int CaseInsensitiveCompareUnicode (Address byte_offset1, Address byte_offset2, size_t byte_length, Isolate *isolate)
 
static uint32_t IsCharacterInRangeArray (uint32_t current_char, Address raw_byte_array)
 

Private Member Functions

void CallCFunctionFromIrregexpCode (ExternalReference function, int num_arguments)
 
void PushCallerSavedRegisters ()
 
void PopCallerSavedRegisters ()
 
void CheckPreemption ()
 
void CheckStackLimit ()
 
void AssertAboveStackLimitMinusSlack ()
 
void CallCheckStackGuardState (Register scratch, Operand extra_space_for_variables=Operand(0))
 
void CallIsCharacterInRangeArray (const ZoneList< CharacterRange > *ranges)
 
MemOperand register_location (int register_index)
 
int char_size () const
 
void BranchOrBacktrack (Label *to, Condition condition, Register rs, const Operand &rt)
 
void SafeCall (Label *to, Condition cond, Register rs, const Operand &rt)
 
void SafeReturn ()
 
void SafeCallTarget (Label *name)
 
void Push (Register source)
 
void Pop (Register target)
 
void LoadRegExpStackPointerFromMemory (Register dst)
 
void StoreRegExpStackPointerToMemory (Register src, Register scratch)
 
void PushRegExpBasePointer (Register stack_pointer, Register scratch)
 
void PopRegExpBasePointer (Register stack_pointer_out, Register scratch)
 
Isolateisolate () const
 

Static Private Member Functions

static constexpr Register current_input_offset ()
 
static constexpr Register current_character ()
 
static constexpr Register end_of_input_address ()
 
static constexpr Register frame_pointer ()
 
static constexpr Register backtrack_stackpointer ()
 
static constexpr Register code_pointer ()
 

Private Attributes

const std::unique_ptr< MacroAssemblermasm_
 
const NoRootArrayScope no_root_array_scope_
 
const Mode mode_
 
int num_registers_
 
const 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_
 
Label internal_failure_label_
 
Label fallback_label_
 

Static Private Attributes

static constexpr int kFramePointerOffset = 0
 
static constexpr int kStoredRegistersOffset = kFramePointerOffset
 
static constexpr int kNumCalleeRegsToRetain = 12
 
static constexpr int kReturnAddressOffset
 
static constexpr int kStackFrameHeaderOffset = kReturnAddressOffset
 
static constexpr int kFrameTypeOffset
 
static constexpr int kIsolateOffset = kFrameTypeOffset - kSystemPointerSize
 
static constexpr int kDirectCallOffset = kIsolateOffset - kSystemPointerSize
 
static constexpr int kNumOutputRegistersOffset
 
static constexpr int kRegisterOutputOffset
 
static constexpr int kInputEndOffset
 
static constexpr int kInputStartOffset = kInputEndOffset - kSystemPointerSize
 
static constexpr int kStartIndexOffset
 
static constexpr int kInputStringOffset
 
static constexpr int kSuccessfulCapturesOffset
 
static constexpr int kStringStartMinusOneOffset
 
static constexpr int kBacktrackCountOffset
 
static constexpr int kRegExpStackBasePointerOffset
 
static constexpr int kNumberOfStackLocals = 4
 
static constexpr int kRegisterZeroOffset
 
static constexpr int kInitialBufferSize = 1024
 

Additional Inherited Members

- Public Types inherited from v8::internal::NativeRegExpMacroAssembler
enum  Mode { LATIN1 = 1 , UC16 = 2 }
 
enum  Result {
  FAILURE = RegExp::kInternalRegExpFailure , SUCCESS = RegExp::kInternalRegExpSuccess , EXCEPTION = RegExp::kInternalRegExpException , RETRY = RegExp::kInternalRegExpRetry ,
  FALLBACK_TO_EXPERIMENTAL = RegExp::kInternalRegExpFallbackToExperimental , SMALLEST_REGEXP_RESULT = RegExp::kInternalRegExpSmallestResult
}
 
- Public Types inherited from v8::internal::RegExpMacroAssembler
enum  StackCheckFlag { kNoStackLimitCheck = false , kCheckStackLimit = true }
 
enum  IrregexpImplementation
 
enum  GlobalMode { NOT_GLOBAL , GLOBAL_NO_ZERO_LENGTH_CHECK , GLOBAL , GLOBAL_UNICODE }
 
- Static Public Attributes inherited from v8::internal::RegExpMacroAssembler
static constexpr int kMaxRegisterCount = (1 << 16)
 
static constexpr int kMaxRegister = kMaxRegisterCount - 1
 
static constexpr int kMaxCaptures = (kMaxRegister - 1) / 2
 
static constexpr int kMaxCPOffset = (1 << 15) - 1
 
static constexpr int kMinCPOffset = -(1 << 15)
 
static constexpr int kTableSizeBits = 7
 
static constexpr int kTableSize = 1 << kTableSizeBits
 
static constexpr int kTableMask = kTableSize - 1
 
static constexpr int kUseCharactersValue = -1
 
- Protected Member Functions inherited from v8::internal::NativeRegExpMacroAssembler
Handle< ByteArrayGetOrAddRangeArray (const ZoneList< CharacterRange > *ranges)
 
- Protected Member Functions inherited from v8::internal::RegExpMacroAssembler
bool has_backtrack_limit () const
 
uint32_t backtrack_limit () const
 
bool can_fallback () const
 
- Static Protected Attributes inherited from v8::internal::NativeRegExpMacroAssembler
static const uint8_t word_character_map [256]
 

Detailed Description

Definition at line 16 of file regexp-macro-assembler-riscv.h.

Constructor & Destructor Documentation

◆ RegExpMacroAssemblerRISCV()

v8::internal::RegExpMacroAssemblerRISCV::RegExpMacroAssemblerRISCV ( Isolate * isolate,
Zone * zone,
Mode mode,
int registers_to_save )

Definition at line 87 of file regexp-macro-assembler-riscv.cc.

◆ ~RegExpMacroAssemblerRISCV()

v8::internal::RegExpMacroAssemblerRISCV::~RegExpMacroAssemblerRISCV ( )
override

Definition at line 114 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AdvanceCurrentPosition()

void v8::internal::RegExpMacroAssemblerRISCV::AdvanceCurrentPosition ( int by)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 131 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AdvanceRegister()

void v8::internal::RegExpMacroAssemblerRISCV::AdvanceRegister ( int reg,
int by )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 138 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ AssertAboveStackLimitMinusSlack()

void v8::internal::RegExpMacroAssemblerRISCV::AssertAboveStackLimitMinusSlack ( )
private

Definition at line 1346 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Backtrack()

void v8::internal::RegExpMacroAssemblerRISCV::Backtrack ( )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 148 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ backtrack_stackpointer()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::backtrack_stackpointer ( )
inlinestaticconstexprprivate

Definition at line 198 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ Bind()

void v8::internal::RegExpMacroAssemblerRISCV::Bind ( Label * label)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 173 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ BranchOrBacktrack()

void v8::internal::RegExpMacroAssemblerRISCV::BranchOrBacktrack ( Label * to,
Condition condition,
Register rs,
const Operand & rt )
private

Definition at line 1277 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CallCFunctionFromIrregexpCode()

void v8::internal::RegExpMacroAssemblerRISCV::CallCFunctionFromIrregexpCode ( ExternalReference function,
int num_arguments )
private

Definition at line 1408 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ CallCheckStackGuardState()

void v8::internal::RegExpMacroAssemblerRISCV::CallCheckStackGuardState ( Register scratch,
Operand extra_space_for_variables = Operand(0) )
private

Definition at line 1165 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CallIsCharacterInRangeArray()

void v8::internal::RegExpMacroAssemblerRISCV::CallIsCharacterInRangeArray ( const ZoneList< CharacterRange > * ranges)
private

Definition at line 215 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ char_size()

int v8::internal::RegExpMacroAssemblerRISCV::char_size ( ) const
inlineprivate

Definition at line 204 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ CheckAtStart()

void v8::internal::RegExpMacroAssemblerRISCV::CheckAtStart ( int cp_offset,
Label * on_at_start )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 184 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckBitInTable()

void v8::internal::RegExpMacroAssemblerRISCV::CheckBitInTable ( Handle< ByteArray > table,
Label * on_bit_set )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 487 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckCharacter()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacter ( uint32_t c,
Label * on_equal )
override

Definition at line 175 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterAfterAnd()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterAfterAnd ( uint32_t c,
uint32_t mask,
Label * on_equal )
override

Definition at line 448 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterGT()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterGT ( base::uc16 limit,
Label * on_greater )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 179 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterInRange()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterInRange ( base::uc16 from,
base::uc16 to,
Label * on_in_range )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 472 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterInRangeArray()

bool v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterInRangeArray ( const ZoneList< CharacterRange > * ranges,
Label * on_in_range )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 233 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterLT()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterLT ( base::uc16 limit,
Label * on_less )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 200 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterNotInRange()

void v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterNotInRange ( base::uc16 from,
base::uc16 to,
Label * on_not_in_range )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 480 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckCharacterNotInRangeArray()

bool v8::internal::RegExpMacroAssemblerRISCV::CheckCharacterNotInRangeArray ( const ZoneList< CharacterRange > * ranges,
Label * on_not_in_range )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 240 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckGreedyLoop()

void v8::internal::RegExpMacroAssemblerRISCV::CheckGreedyLoop ( Label * on_tos_equals_current_position)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 205 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotAtStart()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotAtStart ( int cp_offset,
Label * on_not_at_start )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 192 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotBackReference()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotBackReference ( int start_reg,
bool read_backward,
Label * on_no_match )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 380 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotBackReferenceIgnoreCase()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotBackReferenceIgnoreCase ( int start_reg,
bool read_backward,
bool unicode,
Label * on_no_match )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 247 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotCharacter()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotCharacter ( uint32_t c,
Label * on_not_equal )
override

Definition at line 443 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotCharacterAfterAnd()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotCharacterAfterAnd ( uint32_t c,
uint32_t mask,
Label * on_not_equal )
override

Definition at line 456 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckNotCharacterAfterMinusAnd()

void v8::internal::RegExpMacroAssemblerRISCV::CheckNotCharacterAfterMinusAnd ( base::uc16 c,
base::uc16 minus,
base::uc16 mask,
Label * on_not_equal )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 464 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckPosition()

void v8::internal::RegExpMacroAssemblerRISCV::CheckPosition ( int cp_offset,
Label * on_outside_input )
overridevirtual

Reimplemented from v8::internal::RegExpMacroAssembler.

Definition at line 1265 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckPreemption()

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

Definition at line 1326 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckSpecialClassRanges()

bool v8::internal::RegExpMacroAssemblerRISCV::CheckSpecialClassRanges ( StandardCharacterSet type,
Label * on_no_match )
overridevirtual

Reimplemented from v8::internal::RegExpMacroAssembler.

Definition at line 514 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckStackGuardState()

int64_t v8::internal::RegExpMacroAssemblerRISCV::CheckStackGuardState ( Address * return_address,
Address raw_code,
Address re_frame,
uintptr_t extra_space )
static

Definition at line 1238 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ CheckStackLimit()

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

Definition at line 1335 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearRegisters()

void v8::internal::RegExpMacroAssemblerRISCV::ClearRegisters ( int reg_from,
int reg_to )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1153 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ code_pointer()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::code_pointer ( )
inlinestaticconstexprprivate

Definition at line 201 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ current_character()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::current_character ( )
inlinestaticconstexprprivate

Definition at line 185 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ current_input_offset()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::current_input_offset ( )
inlinestaticconstexprprivate

Definition at line 182 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ end_of_input_address()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::end_of_input_address ( )
inlinestaticconstexprprivate

Definition at line 188 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ Fail()

void v8::internal::RegExpMacroAssemblerRISCV::Fail ( )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 619 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ frame_pointer()

static constexpr Register v8::internal::RegExpMacroAssemblerRISCV::frame_pointer ( )
inlinestaticconstexprprivate

Definition at line 192 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ GetCode()

DirectHandle< HeapObject > v8::internal::RegExpMacroAssemblerRISCV::GetCode ( DirectHandle< String > source,
RegExpFlags flags )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 662 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ GoTo()

void v8::internal::RegExpMacroAssemblerRISCV::GoTo ( Label * label)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1017 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IfRegisterEqPos()

void v8::internal::RegExpMacroAssemblerRISCV::IfRegisterEqPos ( int reg,
Label * if_eq )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1038 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ IfRegisterGE()

void v8::internal::RegExpMacroAssemblerRISCV::IfRegisterGE ( int reg,
int comparand,
Label * if_ge )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1026 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ IfRegisterLT()

void v8::internal::RegExpMacroAssemblerRISCV::IfRegisterLT ( int reg,
int comparand,
Label * if_lt )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1032 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ Implementation()

RegExpMacroAssembler::IrregexpImplementation v8::internal::RegExpMacroAssemblerRISCV::Implementation ( )
overridevirtual

◆ isolate()

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

Definition at line 231 of file regexp-macro-assembler-riscv.h.

Here is the caller graph for this function:

◆ LoadCurrentCharacterUnchecked()

void v8::internal::RegExpMacroAssemblerRISCV::LoadCurrentCharacterUnchecked ( int cp_offset,
int character_count )
overridevirtual

Implements v8::internal::NativeRegExpMacroAssembler.

Definition at line 1367 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadRegExpStackPointerFromMemory()

void v8::internal::RegExpMacroAssemblerRISCV::LoadRegExpStackPointerFromMemory ( Register dst)
private

Definition at line 624 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Pop()

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

Definition at line 1320 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PopCallerSavedRegisters()

void v8::internal::RegExpMacroAssemblerRISCV::PopCallerSavedRegisters ( )
private

◆ PopCurrentPosition()

void v8::internal::RegExpMacroAssemblerRISCV::PopCurrentPosition ( )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1048 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ PopRegExpBasePointer()

void v8::internal::RegExpMacroAssemblerRISCV::PopRegExpBasePointer ( Register stack_pointer_out,
Register scratch )
private

Definition at line 650 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PopRegister()

void v8::internal::RegExpMacroAssemblerRISCV::PopRegister ( int register_index)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1052 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ print_regexp_frame_constants()

void v8::internal::RegExpMacroAssemblerRISCV::print_regexp_frame_constants ( )

◆ Push()

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

Definition at line 1313 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PushBacktrack()

void v8::internal::RegExpMacroAssemblerRISCV::PushBacktrack ( Label * label)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1057 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ PushCallerSavedRegisters()

void v8::internal::RegExpMacroAssemblerRISCV::PushCallerSavedRegisters ( )
private

◆ PushCurrentPosition()

void v8::internal::RegExpMacroAssemblerRISCV::PushCurrentPosition ( )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1082 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ PushRegExpBasePointer()

void v8::internal::RegExpMacroAssemblerRISCV::PushRegExpBasePointer ( Register stack_pointer,
Register scratch )
private

Definition at line 639 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PushRegister()

void v8::internal::RegExpMacroAssemblerRISCV::PushRegister ( int register_index,
StackCheckFlag check_stack_limit )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1087 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ ReadCurrentPositionFromRegister()

void v8::internal::RegExpMacroAssemblerRISCV::ReadCurrentPositionFromRegister ( int reg)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1098 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ ReadStackPointerFromRegister()

void v8::internal::RegExpMacroAssemblerRISCV::ReadStackPointerFromRegister ( int reg)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1111 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ register_location()

MemOperand v8::internal::RegExpMacroAssemblerRISCV::register_location ( int register_index)
private

Definition at line 1256 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SafeCall()

void v8::internal::RegExpMacroAssemblerRISCV::SafeCall ( Label * to,
Condition cond,
Register rs,
const Operand & rt )
inlineprivate

Definition at line 1296 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ SafeCallTarget()

void v8::internal::RegExpMacroAssemblerRISCV::SafeCallTarget ( Label * name)
inlineprivate

Definition at line 1307 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ SafeReturn()

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

Definition at line 1301 of file regexp-macro-assembler-riscv.cc.

Here is the caller graph for this function:

◆ SetCurrentPositionFromEnd()

void v8::internal::RegExpMacroAssemblerRISCV::SetCurrentPositionFromEnd ( int by)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1120 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ SetRegister()

void v8::internal::RegExpMacroAssemblerRISCV::SetRegister ( int register_index,
int to )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1132 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ SkipUntilBitInTable()

void v8::internal::RegExpMacroAssemblerRISCV::SkipUntilBitInTable ( int cp_offset,
Handle< ByteArray > table,
Handle< ByteArray > nibble_table,
int advance_by )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 501 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ stack_limit_slack_slot_count()

int v8::internal::RegExpMacroAssemblerRISCV::stack_limit_slack_slot_count ( )
overridevirtual

◆ StoreRegExpStackPointerToMemory()

void v8::internal::RegExpMacroAssemblerRISCV::StoreRegExpStackPointerToMemory ( Register src,
Register scratch )
private

Definition at line 631 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Succeed()

bool v8::internal::RegExpMacroAssemblerRISCV::Succeed ( )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1138 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ WriteCurrentPositionToRegister()

void v8::internal::RegExpMacroAssemblerRISCV::WriteCurrentPositionToRegister ( int reg,
int cp_offset )
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1143 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

◆ WriteStackPointerToRegister()

void v8::internal::RegExpMacroAssemblerRISCV::WriteStackPointerToRegister ( int reg)
overridevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 1102 of file regexp-macro-assembler-riscv.cc.

Here is the call graph for this function:

Member Data Documentation

◆ backtrack_label_

Label v8::internal::RegExpMacroAssemblerRISCV::backtrack_label_
private

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

◆ check_preempt_label_

Label v8::internal::RegExpMacroAssemblerRISCV::check_preempt_label_
private

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

◆ entry_label_

Label v8::internal::RegExpMacroAssemblerRISCV::entry_label_
private

Definition at line 247 of file regexp-macro-assembler-riscv.h.

◆ exit_label_

Label v8::internal::RegExpMacroAssemblerRISCV::exit_label_
private

Definition at line 251 of file regexp-macro-assembler-riscv.h.

◆ fallback_label_

Label v8::internal::RegExpMacroAssemblerRISCV::fallback_label_
private

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

◆ internal_failure_label_

Label v8::internal::RegExpMacroAssemblerRISCV::internal_failure_label_
private

Definition at line 254 of file regexp-macro-assembler-riscv.h.

◆ kBacktrackCountOffset

int v8::internal::RegExpMacroAssemblerRISCV::kBacktrackCountOffset
staticconstexprprivate
Initial value:

Definition at line 146 of file regexp-macro-assembler-riscv.h.

◆ kDirectCallOffset

int v8::internal::RegExpMacroAssemblerRISCV::kDirectCallOffset = kIsolateOffset - kSystemPointerSize
staticconstexprprivate

Definition at line 128 of file regexp-macro-assembler-riscv.h.

◆ kFramePointerOffset

int v8::internal::RegExpMacroAssemblerRISCV::kFramePointerOffset = 0
staticconstexprprivate

Definition at line 104 of file regexp-macro-assembler-riscv.h.

◆ kFrameTypeOffset

int v8::internal::RegExpMacroAssemblerRISCV::kFrameTypeOffset
staticconstexprprivate

◆ kInitialBufferSize

int v8::internal::RegExpMacroAssemblerRISCV::kInitialBufferSize = 1024
staticconstexprprivate

Definition at line 159 of file regexp-macro-assembler-riscv.h.

◆ kInputEndOffset

int v8::internal::RegExpMacroAssemblerRISCV::kInputEndOffset
staticconstexprprivate

◆ kInputStartOffset

int v8::internal::RegExpMacroAssemblerRISCV::kInputStartOffset = kInputEndOffset - kSystemPointerSize
staticconstexprprivate

Definition at line 135 of file regexp-macro-assembler-riscv.h.

◆ kInputStringOffset

int v8::internal::RegExpMacroAssemblerRISCV::kInputStringOffset
staticconstexprprivate

◆ kIsolateOffset

int v8::internal::RegExpMacroAssemblerRISCV::kIsolateOffset = kFrameTypeOffset - kSystemPointerSize
staticconstexprprivate

Definition at line 127 of file regexp-macro-assembler-riscv.h.

◆ kNumberOfStackLocals

int v8::internal::RegExpMacroAssemblerRISCV::kNumberOfStackLocals = 4
staticconstexprprivate

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

◆ kNumCalleeRegsToRetain

int v8::internal::RegExpMacroAssemblerRISCV::kNumCalleeRegsToRetain = 12
staticconstexprprivate

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

◆ kNumOutputRegistersOffset

int v8::internal::RegExpMacroAssemblerRISCV::kNumOutputRegistersOffset
staticconstexprprivate

◆ kRegExpStackBasePointerOffset

int v8::internal::RegExpMacroAssemblerRISCV::kRegExpStackBasePointerOffset
staticconstexprprivate

◆ kRegisterOutputOffset

int v8::internal::RegExpMacroAssemblerRISCV::kRegisterOutputOffset
staticconstexprprivate

◆ kRegisterZeroOffset

int v8::internal::RegExpMacroAssemblerRISCV::kRegisterZeroOffset
staticconstexprprivate

◆ kReturnAddressOffset

int v8::internal::RegExpMacroAssemblerRISCV::kReturnAddressOffset
staticconstexprprivate

◆ kStackFrameHeaderOffset

int v8::internal::RegExpMacroAssemblerRISCV::kStackFrameHeaderOffset = kReturnAddressOffset
staticconstexprprivate

Definition at line 117 of file regexp-macro-assembler-riscv.h.

◆ kStartIndexOffset

int v8::internal::RegExpMacroAssemblerRISCV::kStartIndexOffset
staticconstexprprivate

◆ kStoredRegistersOffset

int v8::internal::RegExpMacroAssemblerRISCV::kStoredRegistersOffset = kFramePointerOffset
staticconstexprprivate

Definition at line 108 of file regexp-macro-assembler-riscv.h.

◆ kStringStartMinusOneOffset

int v8::internal::RegExpMacroAssemblerRISCV::kStringStartMinusOneOffset
staticconstexprprivate

◆ kSuccessfulCapturesOffset

int v8::internal::RegExpMacroAssemblerRISCV::kSuccessfulCapturesOffset
staticconstexprprivate

◆ masm_

const std::unique_ptr<MacroAssembler> v8::internal::RegExpMacroAssemblerRISCV::masm_
private

Definition at line 233 of file regexp-macro-assembler-riscv.h.

◆ mode_

const Mode v8::internal::RegExpMacroAssemblerRISCV::mode_
private

Definition at line 237 of file regexp-macro-assembler-riscv.h.

◆ no_root_array_scope_

const NoRootArrayScope v8::internal::RegExpMacroAssemblerRISCV::no_root_array_scope_
private

Definition at line 234 of file regexp-macro-assembler-riscv.h.

◆ num_registers_

int v8::internal::RegExpMacroAssemblerRISCV::num_registers_
private

Definition at line 240 of file regexp-macro-assembler-riscv.h.

◆ num_saved_registers_

const int v8::internal::RegExpMacroAssemblerRISCV::num_saved_registers_
private

Definition at line 244 of file regexp-macro-assembler-riscv.h.

◆ stack_overflow_label_

Label v8::internal::RegExpMacroAssemblerRISCV::stack_overflow_label_
private

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

◆ start_label_

Label v8::internal::RegExpMacroAssemblerRISCV::start_label_
private

Definition at line 248 of file regexp-macro-assembler-riscv.h.

◆ success_label_

Label v8::internal::RegExpMacroAssemblerRISCV::success_label_
private

Definition at line 249 of file regexp-macro-assembler-riscv.h.


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