diff --git a/bochs/cpu/access64.cc b/bochs/cpu/access64.cc index 8d16ab04d..77baefe48 100644 --- a/bochs/cpu/access64.cc +++ b/bochs/cpu/access64.cc @@ -797,7 +797,7 @@ BX_CPU_C::read_RMW_virtual_qword_64(unsigned s, Bit64u laddr) return data; } -void BX_CPU_C::read_RMW_virtual_dqword_aligned_64(unsigned s, Bit64u laddr, Bit64u *hi, Bit64u *lo) +void BX_CPU_C::read_RMW_linear_dqword_aligned_64(unsigned s, Bit64u laddr, Bit64u *hi, Bit64u *lo) { BX_ASSERT(BX_CPU_THIS_PTR cpu_mode == BX_MODE_LONG_64); @@ -836,7 +836,7 @@ void BX_CPU_C::read_RMW_virtual_dqword_aligned_64(unsigned s, Bit64u laddr, Bit6 *hi = data.xmm64u(1); } -void BX_CPU_C::write_RMW_virtual_dqword(Bit64u hi, Bit64u lo) +void BX_CPU_C::write_RMW_linear_dqword(Bit64u hi, Bit64u lo) { write_RMW_virtual_qword(lo); diff --git a/bochs/cpu/arith64.cc b/bochs/cpu/arith64.cc index ddadccd4e..254075862 100644 --- a/bochs/cpu/arith64.cc +++ b/bochs/cpu/arith64.cc @@ -599,18 +599,18 @@ BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::CMPXCHG16B(bxInstruction_c *i) Bit64u op1_64_lo, op1_64_hi, diff; // check write permission for following write - read_RMW_virtual_dqword_aligned_64(i->seg(), get_laddr64(i->seg(), eaddr), &op1_64_hi, &op1_64_lo); + read_RMW_linear_dqword_aligned_64(i->seg(), get_laddr64(i->seg(), eaddr), &op1_64_hi, &op1_64_lo); diff = RAX - op1_64_lo; diff |= RDX - op1_64_hi; if (diff == 0) { // if accumulator == dest - write_RMW_virtual_dqword(RCX, RBX); + write_RMW_linear_dqword(RCX, RBX); assert_ZF(); } else { clear_ZF(); - write_RMW_virtual_dqword(op1_64_hi, op1_64_lo); + write_RMW_linear_dqword(op1_64_hi, op1_64_lo); // accumulator <-- dest RAX = op1_64_lo; RDX = op1_64_hi; diff --git a/bochs/cpu/cpu.h b/bochs/cpu/cpu.h index 66b6170af..36505bb19 100644 --- a/bochs/cpu/cpu.h +++ b/bochs/cpu/cpu.h @@ -4525,8 +4525,8 @@ public: // for now... BX_SMF Bit32u read_RMW_virtual_dword_64(unsigned seg, Bit64u laddr) BX_CPP_AttrRegparmN(2); BX_SMF Bit64u read_RMW_virtual_qword_64(unsigned seg, Bit64u laddr) BX_CPP_AttrRegparmN(2); - BX_SMF void read_RMW_virtual_dqword_aligned_64(unsigned seg, Bit64u laddr, Bit64u *hi, Bit64u *lo); - BX_SMF void write_RMW_virtual_dqword(Bit64u hi, Bit64u lo); + BX_SMF void read_RMW_linear_dqword_aligned_64(unsigned seg, Bit64u laddr, Bit64u *hi, Bit64u *lo); + BX_SMF void write_RMW_linear_dqword(Bit64u hi, Bit64u lo); #endif // write of word/dword to new stack could happen only in legacy mode