diff --git a/src/cpu/core_full/op.h b/src/cpu/core_full/op.h index 1d2c3241..3d755dc0 100644 --- a/src/cpu/core_full/op.h +++ b/src/cpu/core_full/op.h @@ -538,6 +538,9 @@ switch (inst.code.op) { case O_BSWAP: BSWAP(inst.op1.d); break; + case O_FPU: + LOG_MSG("FPU opcode %X unhandled",inst.entry); + break; case 0: break; default: diff --git a/src/cpu/core_full/optable.h b/src/cpu/core_full/optable.h index 7999ef97..03534e70 100644 --- a/src/cpu/core_full/optable.h +++ b/src/cpu/core_full/optable.h @@ -153,10 +153,10 @@ static OpCode OpCodeTable[1024]={ {D_SETALC ,0 ,0 ,0 },{D_XLATw ,0 ,0 ,0 }, //TODO FPU /* 0xd8 - 0xdf */ -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, /* 0xe0 - 0xe7 */ {L_Ibx ,O_LOOPNZ ,S_AIPw ,0 },{L_Ibx ,O_LOOPZ ,S_AIPw ,0 }, @@ -510,10 +510,10 @@ static OpCode OpCodeTable[1024]={ {L_Ib ,O_AAM ,0 ,0 },{L_Ib ,O_AAD ,0 ,0 }, {D_SETALC ,0 ,0 ,0 },{D_XLATd ,0 ,0 ,0 }, /* 0x2d8 - 0x2df */ -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, -{L_MODRM ,0 ,0 ,0 },{L_MODRM ,0 ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, +{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,0 ,0 }, /* 0x2e0 - 0x2e7 */ {L_Ibx ,O_LOOPNZ ,S_AIPd ,0 },{L_Ibx ,O_LOOPZ ,S_AIPd ,0 }, diff --git a/src/cpu/core_full/support.h b/src/cpu/core_full/support.h index abaa6143..5a9e9634 100644 --- a/src/cpu/core_full/support.h +++ b/src/cpu/core_full/support.h @@ -90,6 +90,7 @@ enum { O_BSFw,O_BSRw, O_BSWAP, + O_FPU, };