diff options
Diffstat (limited to 'deps/v8/src/mips/macro-assembler-mips.h')
-rw-r--r-- | deps/v8/src/mips/macro-assembler-mips.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/deps/v8/src/mips/macro-assembler-mips.h b/deps/v8/src/mips/macro-assembler-mips.h index f6c371923f..ae3138f85f 100644 --- a/deps/v8/src/mips/macro-assembler-mips.h +++ b/deps/v8/src/mips/macro-assembler-mips.h @@ -118,6 +118,9 @@ inline MemOperand CFunctionArgumentOperand(int index) { class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { public: + TurboAssembler(const AssemblerOptions& options, void* buffer, int buffer_size) + : TurboAssemblerBase(options, buffer, buffer_size) {} + TurboAssembler(Isolate* isolate, const AssemblerOptions& options, void* buffer, int buffer_size, CodeObjectRequired create_code_object) @@ -223,7 +226,7 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { void BranchMSA(Label* target, MSABranchDF df, MSABranchCondition cond, MSARegister wt, BranchDelaySlot bd = PROTECT); - void Branch(Label* L, Condition cond, Register rs, Heap::RootListIndex index, + void Branch(Label* L, Condition cond, Register rs, RootIndex index, BranchDelaySlot bdslot = PROTECT); // Load int32 in the rd register. @@ -233,6 +236,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { } void li(Register dst, Handle<HeapObject> value, LiFlags mode = OPTIMIZE_SIZE); void li(Register dst, ExternalReference value, LiFlags mode = OPTIMIZE_SIZE); + void li(Register dst, const StringConstantBase* string, + LiFlags mode = OPTIMIZE_SIZE); void LoadFromConstantsTable(Register destination, int constant_index) override; @@ -577,6 +582,15 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { Register left_high, Register right_low, Register right_high, Register scratch1, Register scratch2); + void AndPair(Register dst_low, Register dst_high, Register left_low, + Register left_high, Register right_low, Register right_high); + + void OrPair(Register dst_low, Register dst_high, Register left_low, + Register left_high, Register right_low, Register right_high); + + void XorPair(Register dst_low, Register dst_high, Register left_low, + Register left_high, Register right_low, Register right_high); + void MulPair(Register dst_low, Register dst_high, Register left_low, Register left_high, Register right_low, Register right_high, Register scratch1, Register scratch2); @@ -793,8 +807,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { Func GetLabelFunction); // Load an object from the root table. - void LoadRoot(Register destination, Heap::RootListIndex index) override; - void LoadRoot(Register destination, Heap::RootListIndex index, Condition cond, + void LoadRoot(Register destination, RootIndex index) override; + void LoadRoot(Register destination, RootIndex index, Condition cond, Register src1, const Operand& src2); // If the value is a NaN, canonicalize the value else, do nothing. @@ -901,10 +915,14 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { // MacroAssembler implements a collection of frequently used macros. class MacroAssembler : public TurboAssembler { public: + MacroAssembler(const AssemblerOptions& options, void* buffer, int size) + : TurboAssembler(options, buffer, size) {} + MacroAssembler(Isolate* isolate, void* buffer, int size, CodeObjectRequired create_code_object) : MacroAssembler(isolate, AssemblerOptions::Default(isolate), buffer, size, create_code_object) {} + MacroAssembler(Isolate* isolate, const AssemblerOptions& options, void* buffer, int size, CodeObjectRequired create_code_object); @@ -912,7 +930,7 @@ class MacroAssembler : public TurboAssembler { // less efficient form using xor instead of mov is emitted. void Swap(Register reg1, Register reg2, Register scratch = no_reg); - void PushRoot(Heap::RootListIndex index) { + void PushRoot(RootIndex index) { UseScratchRegisterScope temps(this); Register scratch = temps.Acquire(); LoadRoot(scratch, index); @@ -920,7 +938,7 @@ class MacroAssembler : public TurboAssembler { } // Compare the object in a register to a value and jump if they are equal. - void JumpIfRoot(Register with, Heap::RootListIndex index, Label* if_equal) { + void JumpIfRoot(Register with, RootIndex index, Label* if_equal) { UseScratchRegisterScope temps(this); Register scratch = temps.Acquire(); LoadRoot(scratch, index); @@ -928,8 +946,7 @@ class MacroAssembler : public TurboAssembler { } // Compare the object in a register to a value and jump if they are not equal. - void JumpIfNotRoot(Register with, Heap::RootListIndex index, - Label* if_not_equal) { + void JumpIfNotRoot(Register with, RootIndex index, Label* if_not_equal) { UseScratchRegisterScope temps(this); Register scratch = temps.Acquire(); LoadRoot(scratch, index); |