Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
roytam1 2023-03-09 21:15:31 +08:00
commit c5ab8d0feb
5 changed files with 16 additions and 12 deletions

View file

@ -63,10 +63,10 @@ using namespace js::jit;
* The tempN registers are free to use for computations. * The tempN registers are free to use for computations.
*/ */
NativeRegExpMacroAssembler::NativeRegExpMacroAssembler(LifoAlloc* alloc, RegExpShared* shared, NativeRegExpMacroAssembler::NativeRegExpMacroAssembler(JSContext* cx, LifoAlloc* alloc, RegExpShared* shared,
JSRuntime* rt, Mode mode, int registers_to_save) JSRuntime* rt, Mode mode, int registers_to_save)
: RegExpMacroAssembler(*alloc, shared, registers_to_save), : RegExpMacroAssembler(cx, *alloc, shared, registers_to_save),
runtime(rt), mode_(mode) cx(cx), runtime(rt), mode_(mode)
{ {
// Find physical registers for each compiler register. // Find physical registers for each compiler register.
AllocatableGeneralRegisterSet regs(GeneralRegisterSet::All()); AllocatableGeneralRegisterSet regs(GeneralRegisterSet::All());

View file

@ -87,7 +87,7 @@ class MOZ_STACK_CLASS NativeRegExpMacroAssembler final : public RegExpMacroAssem
// Type of input string to generate code for. // Type of input string to generate code for.
enum Mode { ASCII = 1, CHAR16 = 2 }; enum Mode { ASCII = 1, CHAR16 = 2 };
NativeRegExpMacroAssembler(LifoAlloc* alloc, RegExpShared* shared, NativeRegExpMacroAssembler(JSContext* cx, LifoAlloc* alloc, RegExpShared* shared,
JSRuntime* rt, Mode mode, int registers_to_save); JSRuntime* rt, Mode mode, int registers_to_save);
// Inherited virtual methods. // Inherited virtual methods.
@ -174,6 +174,7 @@ class MOZ_STACK_CLASS NativeRegExpMacroAssembler final : public RegExpMacroAssem
private: private:
jit::MacroAssembler masm; jit::MacroAssembler masm;
JSContext* cx;
JSRuntime* runtime; JSRuntime* runtime;
Mode mode_; Mode mode_;
jit::Label entry_label_; jit::Label entry_label_;

View file

@ -1350,10 +1350,10 @@ irregexp::CompilePattern(JSContext* cx, HandleRegExpShared shared, RegExpCompile
: NativeRegExpMacroAssembler::CHAR16; : NativeRegExpMacroAssembler::CHAR16;
ctx.emplace(cx, (jit::TempAllocator*) nullptr); ctx.emplace(cx, (jit::TempAllocator*) nullptr);
native_assembler.emplace(&alloc, shared, cx->runtime(), mode, (data->capture_count + 1) * 2); native_assembler.emplace(cx, &alloc, shared, cx->runtime(), mode, (data->capture_count + 1) * 2);
assembler = native_assembler.ptr(); assembler = native_assembler.ptr();
} else { } else {
interpreted_assembler.emplace(&alloc, shared, (data->capture_count + 1) * 2); interpreted_assembler.emplace(cx, &alloc, shared, (data->capture_count + 1) * 2);
assembler = interpreted_assembler.ptr(); assembler = interpreted_assembler.ptr();
} }

View file

@ -96,9 +96,10 @@ irregexp::CaseInsensitiveCompareUCStrings(const char16_t* substring1,
const char16_t* substring2, const char16_t* substring2,
size_t byteLength); size_t byteLength);
InterpretedRegExpMacroAssembler::InterpretedRegExpMacroAssembler(LifoAlloc* alloc, RegExpShared* shared, InterpretedRegExpMacroAssembler::InterpretedRegExpMacroAssembler(JSContext* cx, LifoAlloc* alloc,
RegExpShared* shared,
size_t numSavedRegisters) size_t numSavedRegisters)
: RegExpMacroAssembler(*alloc, shared, numSavedRegisters), : RegExpMacroAssembler(cx, *alloc, shared, numSavedRegisters),
pc_(0), pc_(0),
advance_current_start_(0), advance_current_start_(0),
advance_current_offset_(0), advance_current_offset_(0),

View file

@ -40,13 +40,14 @@ namespace irregexp {
class MOZ_STACK_CLASS RegExpMacroAssembler class MOZ_STACK_CLASS RegExpMacroAssembler
{ {
public: public:
RegExpMacroAssembler(LifoAlloc& alloc, RegExpShared* shared, size_t numSavedRegisters) RegExpMacroAssembler(JSContext* cx, LifoAlloc& alloc, RegExpShared* shared,
size_t numSavedRegisters)
: slow_safe_compiler_(false), : slow_safe_compiler_(false),
global_mode_(NOT_GLOBAL), global_mode_(NOT_GLOBAL),
alloc_(alloc), alloc_(alloc),
num_registers_(numSavedRegisters), num_registers_(numSavedRegisters),
num_saved_registers_(numSavedRegisters), num_saved_registers_(numSavedRegisters),
shared(shared) shared(cx, shared)
{} {}
enum StackCheckFlag { enum StackCheckFlag {
@ -214,7 +215,7 @@ class MOZ_STACK_CLASS RegExpMacroAssembler
} }
public: public:
RegExpShared* shared; RootedRegExpShared shared;
}; };
template <typename CharT> template <typename CharT>
@ -229,7 +230,8 @@ CaseInsensitiveCompareUCStrings(const CharT* substring1, const CharT* substring2
class MOZ_STACK_CLASS InterpretedRegExpMacroAssembler final : public RegExpMacroAssembler class MOZ_STACK_CLASS InterpretedRegExpMacroAssembler final : public RegExpMacroAssembler
{ {
public: public:
InterpretedRegExpMacroAssembler(LifoAlloc* alloc, RegExpShared* shared, size_t numSavedRegisters); InterpretedRegExpMacroAssembler(JSContext* cx, LifoAlloc* alloc, RegExpShared* shared,
size_t numSavedRegisters);
~InterpretedRegExpMacroAssembler(); ~InterpretedRegExpMacroAssembler();
// Inherited virtual methods. // Inherited virtual methods.