MIPS[64]: Fix failing several Liftoff tests

Failing test are: cctest/cctest/test-run-wasm/RunWasmLiftoff*.
Test started to fail after this commit: 56b8ab5d07
This patch also fixes MIPS big endian build failure.

Change-Id: I333450f2a8f9c9a61db9aea18e5e973f48742d52
Reviewed-on: https://chromium-review.googlesource.com/c/1286348
Reviewed-by: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56742}
This commit is contained in:
Predrag Rudic 2018-10-17 14:15:18 +02:00 committed by Commit Bot
parent 708be823a1
commit 221305e98f
2 changed files with 7 additions and 1 deletions

View File

@ -403,6 +403,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
Register dst = no_reg;
MemOperand dst_op = MemOperand(dst_addr, offset_imm);
if (offset_reg != no_reg) {
if (is_store_mem) {
pinned.set(src);
}
dst = GetUnusedRegister(kGpReg, pinned).gp();
emit_ptrsize_add(dst, dst_addr, offset_reg);
dst_op = MemOperand(dst, offset_imm);
@ -410,7 +413,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
#if defined(V8_TARGET_BIG_ENDIAN)
if (is_store_mem) {
pinned |= LiftoffRegList::ForRegs(dst_op.rm(), src);
pinned = pinned | LiftoffRegList::ForRegs(dst_op.rm(), src);
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
Move(tmp, src, type.value_type());

View File

@ -340,6 +340,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
Register dst = no_reg;
MemOperand dst_op = MemOperand(dst_addr, offset_imm);
if (offset_reg != no_reg) {
if (is_store_mem) {
pinned.set(src);
}
dst = GetUnusedRegister(kGpReg, pinned).gp();
emit_ptrsize_add(dst, dst_addr, offset_reg);
dst_op = MemOperand(dst, offset_imm);