1
0
Fork 0

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:
Sjoerd van der Berg 2003-05-27 12:00:38 +00:00
parent a5075ffa25
commit 6295928842
2 changed files with 28 additions and 10 deletions

View file

@ -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:

View file

@ -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 },