diff options
Diffstat (limited to 'chromium/v8/src/codegen/mips/macro-assembler-mips.cc')
-rw-r--r-- | chromium/v8/src/codegen/mips/macro-assembler-mips.cc | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/chromium/v8/src/codegen/mips/macro-assembler-mips.cc b/chromium/v8/src/codegen/mips/macro-assembler-mips.cc index 79373c1b5be..2e4698a9e71 100644 --- a/chromium/v8/src/codegen/mips/macro-assembler-mips.cc +++ b/chromium/v8/src/codegen/mips/macro-assembler-mips.cc @@ -330,8 +330,9 @@ void MacroAssembler::RecordWrite(Register object, Register address, Operand(value)); } - if (remembered_set_action == OMIT_REMEMBERED_SET && - !FLAG_incremental_marking) { + if ((remembered_set_action == OMIT_REMEMBERED_SET && + !FLAG_incremental_marking) || + FLAG_disable_write_barriers) { return; } @@ -1302,6 +1303,18 @@ void TurboAssembler::Sdc1(FPURegister fd, const MemOperand& src) { CheckTrampolinePoolQuick(1); } +void TurboAssembler::Lw(Register rd, const MemOperand& rs) { + MemOperand source = rs; + AdjustBaseAndOffset(source); + lw(rd, source); +} + +void TurboAssembler::Sw(Register rd, const MemOperand& rs) { + MemOperand dest = rs; + AdjustBaseAndOffset(dest); + sw(rd, dest); +} + void TurboAssembler::Ll(Register rd, const MemOperand& rs) { bool is_one_instruction = IsMipsArchVariant(kMips32r6) ? is_int9(rs.offset()) @@ -3839,6 +3852,13 @@ void TurboAssembler::Jump(Handle<Code> code, RelocInfo::Mode rmode, Jump(static_cast<intptr_t>(code.address()), rmode, cond, rs, rt, bd); } +void TurboAssembler::Jump(const ExternalReference& reference) { + UseScratchRegisterScope temps(this); + Register scratch = temps.Acquire(); + li(scratch, reference); + Jump(scratch); +} + void MacroAssembler::JumpIfIsInRange(Register value, unsigned lower_limit, unsigned higher_limit, Label* on_in_range) { |