This commit is contained in:
Stanislav Shwartsman 2010-03-05 19:49:22 +00:00
parent 895c6729eb
commit 23b1f058e0
2 changed files with 8 additions and 2 deletions

View File

@ -1,5 +1,5 @@
////////////////////////////////////////////////////////////////////////
// $Id: ctrl_xfer_pro.cc,v 1.82 2010-01-31 18:06:44 sshwarts Exp $
// $Id: ctrl_xfer_pro.cc,v 1.83 2010-03-05 19:49:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001-2009 The Bochs Project
@ -150,6 +150,8 @@ void BX_CPU_C::branch_far64(bx_selector_t *selector,
else
#endif
{
rip &= 0xffffffff;
/* instruction pointer must be in code segment limit else #GP(0) */
if (rip > descriptor->u.segment.limit_scaled) {
BX_ERROR(("branch_far64: RIP > limit"));

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.cc,v 1.255 2010-02-26 11:44:50 sshwarts Exp $
// $Id: fetchdecode.cc,v 1.256 2010-03-05 19:49:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001-2009 The Bochs Project
@ -2937,6 +2937,10 @@ void BX_CPU_C::init_FetchDecodeTables(void)
Bit32u features = BX_CPU_THIS_PTR cpuid_features_bitmask;
if (! features)
BX_PANIC(("init_FetchDecodeTables: CPU features bitmask is empty !"));
if (BX_IA_LAST > 0xffff)
BX_PANIC(("init_FetchDecodeTables: too many opcodes defined !"));
for (unsigned n=0; n < BX_IA_LAST; n++) {
Bit32u ia_opcode_features = BxOpcodeFeatures[n];