Added support for machine configs with a specific CPU stepping (also, fixed IMUL reg,r/m,imm disassembly)

This commit is contained in:
Jeff Parsons 2015-10-28 16:57:55 -07:00
commit 6dcb644a05
14 changed files with 1169 additions and 1096 deletions

View file

@ -34,7 +34,7 @@
var X86 = {
/*
* CPU model numbers
* CPU model numbers (supported)
*/
MODEL_8086: 8086,
MODEL_8088: 8088,
@ -43,6 +43,12 @@ var X86 = {
MODEL_80286: 80286,
MODEL_80386: 80386,
/*
* CPU stepping identifiers (supported)
*/
STEPPING_B1: 0xB1, // our version of the B1 stepping also includes the infamous 32-bit multiplication bug
STEPPING_B2: 0xB2, // this is an imaginary stepping that simply means "B1 without the 32-bit multiplication bug" (ie, a B1 with the "double sigma" stamp)
/*
* This constant is used to mark points in the code where the physical address being returned
* is invalid and should not be used. TODO: There are still functions that will use an invalid