![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <regexp-macro-assembler-riscv.h>
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< HeapObject > | GetCode (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 |
| Isolate * | isolate () const |
| Zone * | zone () 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) |
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< MacroAssembler > | masm_ |
| 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_ |
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< ByteArray > | GetOrAddRangeArray (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] |
Definition at line 16 of file regexp-macro-assembler-riscv.h.
| 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.
|
override |
Definition at line 114 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 131 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 138 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1346 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 148 of file regexp-macro-assembler-riscv.cc.
|
inlinestaticconstexprprivate |
Definition at line 198 of file regexp-macro-assembler-riscv.h.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 173 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1277 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1408 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1165 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 215 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 204 of file regexp-macro-assembler-riscv.h.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 184 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 487 of file regexp-macro-assembler-riscv.cc.
|
override |
Definition at line 175 of file regexp-macro-assembler-riscv.cc.
|
override |
Definition at line 448 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 179 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 472 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 233 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 200 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 480 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 240 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 205 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 192 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 380 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 247 of file regexp-macro-assembler-riscv.cc.
|
override |
Definition at line 443 of file regexp-macro-assembler-riscv.cc.
|
override |
Definition at line 456 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 464 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Reimplemented from v8::internal::RegExpMacroAssembler.
Definition at line 1265 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1326 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Reimplemented from v8::internal::RegExpMacroAssembler.
Definition at line 514 of file regexp-macro-assembler-riscv.cc.
|
static |
Definition at line 1238 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1335 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1153 of file regexp-macro-assembler-riscv.cc.
|
inlinestaticconstexprprivate |
Definition at line 201 of file regexp-macro-assembler-riscv.h.
|
inlinestaticconstexprprivate |
Definition at line 185 of file regexp-macro-assembler-riscv.h.
|
inlinestaticconstexprprivate |
Definition at line 182 of file regexp-macro-assembler-riscv.h.
|
inlinestaticconstexprprivate |
Definition at line 188 of file regexp-macro-assembler-riscv.h.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 619 of file regexp-macro-assembler-riscv.cc.
|
inlinestaticconstexprprivate |
Definition at line 192 of file regexp-macro-assembler-riscv.h.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 662 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1017 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1038 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1026 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1032 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1044 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 231 of file regexp-macro-assembler-riscv.h.
|
overridevirtual |
Implements v8::internal::NativeRegExpMacroAssembler.
Definition at line 1367 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 624 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 1320 of file regexp-macro-assembler-riscv.cc.
|
private |
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1048 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 650 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1052 of file regexp-macro-assembler-riscv.cc.
| void v8::internal::RegExpMacroAssemblerRISCV::print_regexp_frame_constants | ( | ) |
|
inlineprivate |
Definition at line 1313 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1057 of file regexp-macro-assembler-riscv.cc.
|
private |
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1082 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 639 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1087 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1098 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1111 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 1256 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 1296 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 1307 of file regexp-macro-assembler-riscv.cc.
|
inlineprivate |
Definition at line 1301 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1120 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1132 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 501 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 127 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 631 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1138 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1143 of file regexp-macro-assembler-riscv.cc.
|
overridevirtual |
Implements v8::internal::RegExpMacroAssembler.
Definition at line 1102 of file regexp-macro-assembler-riscv.cc.
|
private |
Definition at line 250 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 252 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 247 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 251 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 255 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 254 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 146 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 128 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 104 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 119 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 159 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 133 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 135 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 138 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 127 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 153 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 112 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 129 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 151 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 131 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 155 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 113 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 117 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 136 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 108 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 144 of file regexp-macro-assembler-riscv.h.
|
staticconstexprprivate |
Definition at line 142 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 233 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 237 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 234 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 240 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 244 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 253 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 248 of file regexp-macro-assembler-riscv.h.
|
private |
Definition at line 249 of file regexp-macro-assembler-riscv.h.