rename one more mem access handler

This commit is contained in:
Stanislav Shwartsman 2014-10-21 19:11:21 +00:00
parent 1de7a35031
commit 25ad64f75a
3 changed files with 7 additions and 7 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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