mirror of https://github.com/bochs-emu/Bochs
Made some very minor mods, to make CPUID aware of CMOV instructions
for BX_CPU_LEVEL >= 6, and to have the CMOV instructions generate an undefined opcode exception after printing info that they were called, if BX_CPU_LEVEL <= 5. I suppose we could have a separate configure option, but mirroring Intel, CMOV is available as of Pentium Pro. For now, you have to compile with --enable-cpu-level=6 for CMOV support to be compiled in.
This commit is contained in:
parent
7a8d2dc61e
commit
d52b23daf1
|
@ -1,5 +1,5 @@
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: data_xfer16.cc,v 1.6 2001-10-03 13:10:37 bdenney Exp $
|
// $Id: data_xfer16.cc,v 1.7 2002-09-01 04:01:06 kevinlawton Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
|
@ -377,6 +377,7 @@ BX_CPU_C::CMOV_GwEw(BxInstruction_t *i)
|
||||||
BX_WRITE_16BIT_REG(i->nnn, op2_16);
|
BX_WRITE_16BIT_REG(i->nnn, op2_16);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
BX_PANIC(("cmov_gwew called"));
|
BX_INFO(("cmov_gwew called"));
|
||||||
|
UndefinedOpcode(i);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: data_xfer32.cc,v 1.6 2001-10-03 13:10:37 bdenney Exp $
|
// $Id: data_xfer32.cc,v 1.7 2002-09-01 04:01:13 kevinlawton Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
|
@ -317,6 +317,7 @@ BX_CPU_C::CMOV_GdEd(BxInstruction_t *i)
|
||||||
BX_WRITE_32BIT_REG(i->nnn, op2_32);
|
BX_WRITE_32BIT_REG(i->nnn, op2_32);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
BX_PANIC(("cmov_gded called"));
|
BX_INFO(("cmov_gded called"));
|
||||||
|
UndefinedOpcode(i);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
// $Id: proc_ctrl.cc,v 1.25 2002-08-10 12:06:26 cbothamy Exp $
|
// $Id: proc_ctrl.cc,v 1.26 2002-09-01 04:01:14 kevinlawton Exp $
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||||
|
@ -1029,6 +1029,7 @@ BX_CPU_C::CPUID(BxInstruction_t *i)
|
||||||
model = 1; // Pentium Pro
|
model = 1; // Pentium Pro
|
||||||
stepping = 3; // ???
|
stepping = 3; // ???
|
||||||
features |= (1<<4); // implement TSC
|
features |= (1<<4); // implement TSC
|
||||||
|
features |= (1<<15); // Implement CMOV instructions.
|
||||||
# if BX_SUPPORT_APIC
|
# if BX_SUPPORT_APIC
|
||||||
features |= (1<<9); // APIC on chip
|
features |= (1<<9); // APIC on chip
|
||||||
# endif
|
# endif
|
||||||
|
|
Loading…
Reference in New Issue