Commit d6846787 authored by Predrag Rudic's avatar Predrag Rudic Committed by Commit Bot

MIPS64 Correct LLD and SCD implementation in simulator.

Change-Id: I18300c788d1a0eecb280e4cac72e52db81dd681d
Reviewed-on: https://chromium-review.googlesource.com/c/1322452Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#57313}
parent 47764c76
......@@ -7041,13 +7041,13 @@ void Simulator::DecodeTypeImmediate() {
case LLD: {
// LL/SC sequence cannot be simulated properly
DCHECK_EQ(kArchVariant, kMips64r2);
set_register(rt_reg, ReadD(rs + se_imm16, instr_.instr()));
set_register(rt_reg, Read2W(rs + se_imm16, instr_.instr()));
break;
}
case SCD: {
// LL/SC sequence cannot be simulated properly
DCHECK_EQ(kArchVariant, kMips64r2);
WriteD(rs + se_imm16, rt, instr_.instr());
Write2W(rs + se_imm16, rt, instr_.instr());
set_register(rt_reg, 1);
break;
}
......@@ -7149,7 +7149,7 @@ void Simulator::DecodeTypeImmediate() {
DCHECK_EQ(kArchVariant, kMips64r6);
int64_t base = get_register(instr_.BaseValue());
int32_t offset9 = instr_.Imm9Value();
set_register(rt_reg, ReadD(base + offset9, instr_.instr()));
set_register(rt_reg, Read2W(base + offset9, instr_.instr()));
break;
}
case SC_R6: {
......@@ -7166,7 +7166,7 @@ void Simulator::DecodeTypeImmediate() {
DCHECK_EQ(kArchVariant, kMips64r6);
int64_t base = get_register(instr_.BaseValue());
int32_t offset9 = instr_.Imm9Value();
WriteD(base + offset9, rt, instr_.instr());
Write2W(base + offset9, rt, instr_.instr());
set_register(rt_reg, 1);
break;
}
......
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