Added support to call the FPU opcode handlers
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1018
This commit is contained in:
parent
a5075ffa25
commit
6295928842
2 changed files with 28 additions and 10 deletions
|
@ -539,8 +539,26 @@ switch (inst.code.op) {
|
|||
BSWAP(inst.op1.d);
|
||||
break;
|
||||
case O_FPU:
|
||||
LOG_MSG("FPU opcode %X unhandled",inst.entry);
|
||||
break;
|
||||
switch (((inst.rm>=0xc0) << 3) | inst.code.save) {
|
||||
case 0x00: FPU_ESC0_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x01: FPU_ESC1_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x02: FPU_ESC2_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x03: FPU_ESC3_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x04: FPU_ESC4_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x05: FPU_ESC5_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x06: FPU_ESC6_EA(inst.rm,inst.rm_eaa);break;
|
||||
case 0x07: FPU_ESC7_EA(inst.rm,inst.rm_eaa);break;
|
||||
|
||||
case 0x08: FPU_ESC0_Normal(inst.rm);break;
|
||||
case 0x09: FPU_ESC1_Normal(inst.rm);break;
|
||||
case 0x0a: FPU_ESC2_Normal(inst.rm);break;
|
||||
case 0x0b: FPU_ESC3_Normal(inst.rm);break;
|
||||
case 0x0c: FPU_ESC4_Normal(inst.rm);break;
|
||||
case 0x0d: FPU_ESC5_Normal(inst.rm);break;
|
||||
case 0x0e: FPU_ESC6_Normal(inst.rm);break;
|
||||
case 0x0f: FPU_ESC7_Normal(inst.rm);break;
|
||||
}
|
||||
goto nextopcode;
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -153,10 +153,10 @@ static OpCode OpCodeTable[1024]={
|
|||
{D_SETALC ,0 ,0 ,0 },{D_XLATw ,0 ,0 ,0 },
|
||||
//TODO FPU
|
||||
/* 0xd8 - 0xdf */
|
||||
{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 },
|
||||
{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,1 ,0 },
|
||||
{L_MODRM ,O_FPU ,2 ,0 },{L_MODRM ,O_FPU ,3 ,0 },
|
||||
{L_MODRM ,O_FPU ,4 ,0 },{L_MODRM ,O_FPU ,5 ,0 },
|
||||
{L_MODRM ,O_FPU ,6 ,0 },{L_MODRM ,O_FPU ,7 ,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 ,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 },
|
||||
{L_MODRM ,O_FPU ,0 ,0 },{L_MODRM ,O_FPU ,1 ,0 },
|
||||
{L_MODRM ,O_FPU ,2 ,0 },{L_MODRM ,O_FPU ,3 ,0 },
|
||||
{L_MODRM ,O_FPU ,4 ,0 },{L_MODRM ,O_FPU ,5 ,0 },
|
||||
{L_MODRM ,O_FPU ,6 ,0 },{L_MODRM ,O_FPU ,7 ,0 },
|
||||
|
||||
/* 0x2e0 - 0x2e7 */
|
||||
{L_Ibx ,O_LOOPNZ ,S_AIPd ,0 },{L_Ibx ,O_LOOPZ ,S_AIPd ,0 },
|
||||
|
|
Loading…
Add table
Reference in a new issue