- Avoid 32-bit EIP wrap in prefetch()

This commit is contained in:
Stanislav Shwartsman 2008-10-06 22:19:22 +00:00
parent 446b1f9977
commit 52a0eb2143

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.cc,v 1.243 2008-10-01 09:44:40 sshwarts Exp $
// $Id: cpu.cc,v 1.244 2008-10-06 22:19:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -632,6 +632,7 @@ void BX_CPU_C::prefetch(void)
else
#endif
{
BX_CLEAR_64BIT_HIGH(BX_64BIT_REG_RIP); /* avoid 32-bit EIP wrap */
Bit32u temp_limit = BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled;
if (EIP > temp_limit) {
BX_ERROR(("prefetch: EIP [%08x] > CS.limit [%08x]", EIP, temp_limit));