diff options
Diffstat (limited to 'deps/v8/src/mips/macro-assembler-mips.h')
-rw-r--r-- | deps/v8/src/mips/macro-assembler-mips.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/deps/v8/src/mips/macro-assembler-mips.h b/deps/v8/src/mips/macro-assembler-mips.h index 8c70eb54a3..37d2c59270 100644 --- a/deps/v8/src/mips/macro-assembler-mips.h +++ b/deps/v8/src/mips/macro-assembler-mips.h @@ -19,12 +19,15 @@ constexpr Register kReturnRegister2 = a0; constexpr Register kJSFunctionRegister = a1; constexpr Register kContextRegister = s7; constexpr Register kAllocateSizeRegister = a0; +constexpr Register kSpeculationPoisonRegister = t3; constexpr Register kInterpreterAccumulatorRegister = v0; constexpr Register kInterpreterBytecodeOffsetRegister = t4; constexpr Register kInterpreterBytecodeArrayRegister = t5; constexpr Register kInterpreterDispatchTableRegister = t6; constexpr Register kJavaScriptCallArgCountRegister = a0; +constexpr Register kJavaScriptCallCodeStartRegister = a2; constexpr Register kJavaScriptCallNewTargetRegister = a3; +constexpr Register kOffHeapTrampolineRegister = at; constexpr Register kRuntimeCallFunctionRegister = a1; constexpr Register kRuntimeCallArgCountRegister = a0; @@ -559,6 +562,8 @@ class TurboAssembler : public Assembler { void Movf(Register rd, Register rs, uint16_t cc = 0); void Clz(Register rd, Register rs); + void Ctz(Register rd, Register rs); + void Popcnt(Register rd, Register rs); // Int64Lowering instructions void AddPair(Register dst_low, Register dst_high, Register left_low, @@ -731,8 +736,10 @@ class TurboAssembler : public Assembler { Mthc1(src_high, dst); } - void Move(FPURegister dst, float imm); - void Move(FPURegister dst, double imm); + void Move(FPURegister dst, float imm) { Move(dst, bit_cast<uint32_t>(imm)); } + void Move(FPURegister dst, double imm) { Move(dst, bit_cast<uint64_t>(imm)); } + void Move(FPURegister dst, uint32_t src); + void Move(FPURegister dst, uint64_t src); // ------------------------------------------------------------------------- // Overflow handling functions. @@ -844,6 +851,12 @@ class TurboAssembler : public Assembler { BranchF64(bd, target, nan, cc, cmp1, cmp2); } + // Compute the start of the generated instruction stream from the current PC. + // This is an alternative to embedding the {CodeObject} handle as a reference. + void ComputeCodeStartAddress(Register dst); + + void ResetSpeculationPoisonRegister(); + protected: void BranchLong(Label* L, BranchDelaySlot bdslot); @@ -1023,10 +1036,6 @@ class MacroAssembler : public TurboAssembler { void InvokeFunction(Register function, const ParameterCount& expected, const ParameterCount& actual, InvokeFlag flag); - void InvokeFunction(Handle<JSFunction> function, - const ParameterCount& expected, - const ParameterCount& actual, InvokeFlag flag); - // Frame restart support. void MaybeDropFrames(); @@ -1089,6 +1098,9 @@ const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT BranchDelaySlot bd = PROTECT, bool builtin_exit_frame = false); + // Generates a trampoline to jump to the off-heap instruction stream. + void JumpToInstructionStream(const InstructionStream* stream); + // ------------------------------------------------------------------------- // StatsCounter support. |