diff options
Diffstat (limited to 'deps/v8/src/mips/assembler-mips.h')
-rw-r--r-- | deps/v8/src/mips/assembler-mips.h | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/deps/v8/src/mips/assembler-mips.h b/deps/v8/src/mips/assembler-mips.h index 682c6602da..054695483f 100644 --- a/deps/v8/src/mips/assembler-mips.h +++ b/deps/v8/src/mips/assembler-mips.h @@ -457,30 +457,28 @@ class Assembler : public AssemblerBase { // Read/Modify the code target address in the branch/call instruction at pc. static Address target_address_at(Address pc); - static void set_target_address_at(Address pc, - Address target, - ICacheFlushMode icache_flush_mode = - FLUSH_ICACHE_IF_NEEDED); + static void set_target_address_at( + Isolate* isolate, Address pc, Address target, + ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED); // On MIPS there is no Constant Pool so we skip that parameter. INLINE(static Address target_address_at(Address pc, Address constant_pool)) { return target_address_at(pc); } INLINE(static void set_target_address_at( - Address pc, Address constant_pool, Address target, + Isolate* isolate, Address pc, Address constant_pool, Address target, ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED)) { - set_target_address_at(pc, target, icache_flush_mode); + set_target_address_at(isolate, pc, target, icache_flush_mode); } INLINE(static Address target_address_at(Address pc, Code* code)) { Address constant_pool = code ? code->constant_pool() : NULL; return target_address_at(pc, constant_pool); } - INLINE(static void set_target_address_at(Address pc, - Code* code, - Address target, - ICacheFlushMode icache_flush_mode = - FLUSH_ICACHE_IF_NEEDED)) { + INLINE(static void set_target_address_at( + Isolate* isolate, Address pc, Code* code, Address target, + ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED)) { Address constant_pool = code ? code->constant_pool() : NULL; - set_target_address_at(pc, constant_pool, target, icache_flush_mode); + set_target_address_at(isolate, pc, constant_pool, target, + icache_flush_mode); } // Return the code target address at a call site from the return address @@ -493,16 +491,17 @@ class Assembler : public AssemblerBase { // This is for calls and branches within generated code. The serializer // has already deserialized the lui/ori instructions etc. inline static void deserialization_set_special_target_at( - Address instruction_payload, Code* code, Address target) { + Isolate* isolate, Address instruction_payload, Code* code, + Address target) { set_target_address_at( - instruction_payload - kInstructionsFor32BitConstant * kInstrSize, - code, + isolate, + instruction_payload - kInstructionsFor32BitConstant * kInstrSize, code, target); } // This sets the internal reference at the pc. inline static void deserialization_set_target_internal_reference_at( - Address pc, Address target, + Isolate* isolate, Address pc, Address target, RelocInfo::Mode mode = RelocInfo::INTERNAL_REFERENCE); // Size of an instruction. @@ -752,6 +751,8 @@ class Assembler : public AssemblerBase { void rotr(Register rd, Register rt, uint16_t sa); void rotrv(Register rd, Register rt, Register rs); + // Address computing instructions with shift. + void lsa(Register rd, Register rt, Register rs, uint8_t sa); // ------------Memory-instructions------------- @@ -1012,7 +1013,7 @@ class Assembler : public AssemblerBase { void RecordGeneratorContinuation(); // Mark address of a debug break slot. - void RecordDebugBreakSlot(RelocInfo::Mode mode, int argc = 0); + void RecordDebugBreakSlot(RelocInfo::Mode mode); // Record the AST id of the CallIC being compiled, so that it can be placed // in the relocation information. @@ -1048,9 +1049,6 @@ class Assembler : public AssemblerBase { void dp(uintptr_t data) { dd(data); } void dd(Label* label); - // Emits the address of the code stub's first instruction. - void emit_code_stub_address(Code* stub); - PositionsRecorder* positions_recorder() { return &positions_recorder_; } // Postpone the generation of the trampoline pool for the specified number of @@ -1260,6 +1258,11 @@ class Assembler : public AssemblerBase { void GrowBuffer(); inline void emit(Instr x, CompactBranchType is_compact_branch = CompactBranchType::NO); + inline void emit(uint64_t x); + inline void CheckForEmitInForbiddenSlot(); + template <typename T> + inline void EmitHelper(T x); + inline void EmitHelper(Instr x, CompactBranchType is_compact_branch); // Instruction generation. // We have 3 different kind of encoding layout on MIPS. |