[riscv64] Port 3217193: [regexp] Various refactors

Change-Id: I2d9cb95d8b04a96f436b6f8eae1ce87d80df7f6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3218710
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Commit-Queue: ji qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#77331}
This commit is contained in:
Lu Yahan 2021-10-12 12:45:47 +08:00 committed by Yahan Lu
parent 62d26420c3
commit 85e287c9cb
2 changed files with 9 additions and 14 deletions

View File

@ -335,10 +335,9 @@ void RegExpMacroAssemblerRISCV::CheckNotBackReferenceIgnoreCase(
{
AllowExternalCallThatCantCauseGC scope(masm_.get());
ExternalReference function =
unicode ? ExternalReference::re_case_insensitive_compare_unicode(
isolate())
: ExternalReference::re_case_insensitive_compare_non_unicode(
isolate());
unicode
? ExternalReference::re_case_insensitive_compare_unicode()
: ExternalReference::re_case_insensitive_compare_non_unicode();
__ CallCFunction(function, argument_count);
}
@ -552,8 +551,7 @@ bool RegExpMacroAssemblerRISCV::CheckSpecialCharacterClass(base::uc16 type,
BranchOrBacktrack(on_no_match, Ugreater, current_character(),
Operand('z'));
}
ExternalReference map =
ExternalReference::re_word_character_map(isolate());
ExternalReference map = ExternalReference::re_word_character_map();
__ li(a0, Operand(map));
__ Add64(a0, a0, current_character());
__ Lbu(a0, MemOperand(a0, 0));
@ -566,8 +564,7 @@ bool RegExpMacroAssemblerRISCV::CheckSpecialCharacterClass(base::uc16 type,
// Table is 256 entries, so all Latin1 characters can be tested.
__ BranchShort(&done, Ugreater, current_character(), Operand('z'));
}
ExternalReference map =
ExternalReference::re_word_character_map(isolate());
ExternalReference map = ExternalReference::re_word_character_map();
__ li(a0, Operand(map));
__ Add64(a0, a0, current_character());
__ Lbu(a0, MemOperand(a0, 0));
@ -929,8 +926,7 @@ Handle<HeapObject> RegExpMacroAssemblerRISCV::GetCode(Handle<String> source) {
static constexpr int kNumArguments = 1;
__ PrepareCallCFunction(kNumArguments, 0, a0);
__ li(a0, ExternalReference::isolate_address(isolate()));
ExternalReference grow_stack =
ExternalReference::re_grow_stack(isolate());
ExternalReference grow_stack = ExternalReference::re_grow_stack();
__ CallCFunction(grow_stack, kNumArguments);
// If nullptr is returned, we have failed to grow the stack, and must exit
// with a stack-overflow exception.
@ -1107,8 +1103,7 @@ void RegExpMacroAssemblerRISCV::ClearRegisters(int reg_from, int reg_to) {
}
}
bool RegExpMacroAssemblerRISCV::CanReadUnaligned() { return false; }
bool RegExpMacroAssemblerRISCV::CanReadUnaligned() const { return false; }
// Private methods:
@ -1147,7 +1142,7 @@ void RegExpMacroAssemblerRISCV::CallCheckStackGuardState(Register scratch) {
__ mv(a0, sp);
ExternalReference stack_guard_check =
ExternalReference::re_check_stack_guard_state(masm_->isolate());
ExternalReference::re_check_stack_guard_state();
__ li(t6, Operand(stack_guard_check));
EmbeddedData d = EmbeddedData::FromBlob();

View File

@ -78,7 +78,7 @@ class V8_EXPORT_PRIVATE RegExpMacroAssemblerRISCV
virtual void WriteCurrentPositionToRegister(int reg, int cp_offset);
virtual void ClearRegisters(int reg_from, int reg_to);
virtual void WriteStackPointerToRegister(int reg);
virtual bool CanReadUnaligned();
virtual bool CanReadUnaligned() const;
// Called from RegExp if the stack-guard is triggered.
// If the code object is relocated, the return address is fixed before