sse4.2 string instruction do not required aligned mem access

This commit is contained in:
Stanislav Shwartsman 2010-05-22 19:55:12 +00:00
parent 1c00193616
commit c21a8fd935

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: sse_string.cc,v 1.16 2010-02-26 11:44:50 sshwarts Exp $
// $Id: sse_string.cc,v 1.17 2010-05-22 19:55:12 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2007-2009 Stanislav Shwartsman
@ -303,8 +303,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPESTRM_VdqWdqIb(bxInstruction_c *i)
}
else {
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
/* pointer, segment address pair */
readVirtualDQwordAligned(i->seg(), eaddr, (Bit8u *) &op2);
read_virtual_dqword(i->seg(), eaddr, (Bit8u *) &op2);
}
// compare all pairs of Ai, Bj
@ -370,8 +369,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPESTRI_VdqWdqIb(bxInstruction_c *i)
}
else {
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
/* pointer, segment address pair */
readVirtualDQwordAligned(i->seg(), eaddr, (Bit8u *) &op2);
read_virtual_dqword(i->seg(), eaddr, (Bit8u *) &op2);
}
// compare all pairs of Ai, Bj
@ -433,8 +431,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPISTRM_VdqWdqIb(bxInstruction_c *i)
}
else {
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
/* pointer, segment address pair */
readVirtualDQwordAligned(i->seg(), eaddr, (Bit8u *) &op2);
read_virtual_dqword(i->seg(), eaddr, (Bit8u *) &op2);
}
// compare all pairs of Ai, Bj
@ -491,8 +488,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::PCMPISTRI_VdqWdqIb(bxInstruction_c *i)
}
else {
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
/* pointer, segment address pair */
readVirtualDQwordAligned(i->seg(), eaddr, (Bit8u *) &op2);
read_virtual_dqword(i->seg(), eaddr, (Bit8u *) &op2);
}
// compare all pairs of Ai, Bj