Commit 221305e9 authored by Predrag Rudic's avatar Predrag Rudic Committed by Commit Bot

MIPS[64]: Fix failing several Liftoff tests

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

Change-Id: I333450f2a8f9c9a61db9aea18e5e973f48742d52
Reviewed-on: https://chromium-review.googlesource.com/c/1286348Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56742}
parent 708be823
...@@ -403,6 +403,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, ...@@ -403,6 +403,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
Register dst = no_reg; Register dst = no_reg;
MemOperand dst_op = MemOperand(dst_addr, offset_imm); MemOperand dst_op = MemOperand(dst_addr, offset_imm);
if (offset_reg != no_reg) { if (offset_reg != no_reg) {
if (is_store_mem) {
pinned.set(src);
}
dst = GetUnusedRegister(kGpReg, pinned).gp(); dst = GetUnusedRegister(kGpReg, pinned).gp();
emit_ptrsize_add(dst, dst_addr, offset_reg); emit_ptrsize_add(dst, dst_addr, offset_reg);
dst_op = MemOperand(dst, offset_imm); dst_op = MemOperand(dst, offset_imm);
...@@ -410,7 +413,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, ...@@ -410,7 +413,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
#if defined(V8_TARGET_BIG_ENDIAN) #if defined(V8_TARGET_BIG_ENDIAN)
if (is_store_mem) { 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); LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value. // Save original value.
Move(tmp, src, type.value_type()); Move(tmp, src, type.value_type());
......
...@@ -340,6 +340,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, ...@@ -340,6 +340,9 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
Register dst = no_reg; Register dst = no_reg;
MemOperand dst_op = MemOperand(dst_addr, offset_imm); MemOperand dst_op = MemOperand(dst_addr, offset_imm);
if (offset_reg != no_reg) { if (offset_reg != no_reg) {
if (is_store_mem) {
pinned.set(src);
}
dst = GetUnusedRegister(kGpReg, pinned).gp(); dst = GetUnusedRegister(kGpReg, pinned).gp();
emit_ptrsize_add(dst, dst_addr, offset_reg); emit_ptrsize_add(dst, dst_addr, offset_reg);
dst_op = MemOperand(dst, offset_imm); dst_op = MemOperand(dst, offset_imm);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment