Skip to content

Commit

Permalink
Reduce repetition a bit.
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4342 ed541006-0bf7-43e9-8c4d-6fc63c346d47
  • Loading branch information
qbix79 committed May 22, 2020
1 parent 393cfff commit 53fc150
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 60 deletions.
4 changes: 4 additions & 0 deletions include/fpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ static INLINE void FPU_SET_C3(Bitu C){
if(C) fpu.sw |= 0x4000;
}

static INLINE void FPU_LOG_WARN(Bitu tree, bool ea, Bitu group, Bitu sub) {
LOG(LOG_FPU,LOG_WARN)("ESC %" sBitfs(d) "%s:Unhandled group %" sBitfs(d) " subfunction %" sBitfs(d),tree,ea?" EA":"",group,sub);
}

#define DB_FPU_STACK_CHECK_NONE 0
#define DB_FPU_STACK_CHECK_LOG 1
#define DB_FPU_STACK_CHECK_EXIT 2
Expand Down
48 changes: 25 additions & 23 deletions src/cpu/core_dyn_x86/dyn_fpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ static void dyn_fpu_esc1(){
break;
case 0x02: /* UNKNOWN */
case 0x03: /* ILLEGAL */
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
case 0x04: /* FTST */
gen_call_function((void*)&FPU_FTST,"");
Expand All @@ -183,7 +183,7 @@ static void dyn_fpu_esc1(){
break;
case 0x06: /* FTSTP (cyrix)*/
case 0x07: /* UNKNOWN */
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
}
break;
Expand Down Expand Up @@ -211,7 +211,7 @@ static void dyn_fpu_esc1(){
gen_call_function((void*)&FPU_FLDZ,"");
break;
case 0x07: /* ILLEGAL */
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
}
break;
Expand Down Expand Up @@ -242,7 +242,7 @@ static void dyn_fpu_esc1(){
gen_call_function((void*)&FPU_FINCSTP,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
}
break;
Expand Down Expand Up @@ -273,12 +273,12 @@ static void dyn_fpu_esc1(){
gen_call_function((void*)&FPU_FCOS,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 1:Unhandled group %X subfunction %X",group,sub);
FPU_LOG_WARN(1,false,group,sub);
break;
}
} else {
Expand All @@ -293,7 +293,7 @@ static void dyn_fpu_esc1(){
gen_call_function((void*)&FPU_FLD_F32,"%Drd%Drd",DREG(EA),DREG(TMPB));
break;
case 0x01: /* UNKNOWN */
LOG(LOG_FPU,LOG_WARN)("ESC EA 1:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(1,true,group,sub);
break;
case 0x02: /* FST float*/
gen_call_function((void*)&FPU_FST_F32,"%Drd",DREG(EA));
Expand All @@ -315,7 +315,7 @@ static void dyn_fpu_esc1(){
gen_call_function((void *)&FPU_FNSTCW,"%Drd",DREG(EA));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC EA 1:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(1,true,group,sub);
break;
}
}
Expand All @@ -340,12 +340,12 @@ static void dyn_fpu_esc2(){
gen_call_function((void *)&FPU_FPOP,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 2:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(2,false,5,sub);
break;
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 2:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(2,false,group,sub);
break;
}
} else {
Expand All @@ -366,7 +366,7 @@ static void dyn_fpu_esc3(){
switch (sub) {
case 0x00: //FNENI
case 0x01: //FNDIS
LOG(LOG_FPU,LOG_ERROR)("8087 only fpu code used esc 3: group 4: subfuntion :%d",sub);
LOG(LOG_FPU,LOG_ERROR)("8087 only fpu code used esc 3: group 4: subfuntion :%" sBitfs(d),sub);
break;
case 0x02: //FNCLEX FCLEX
gen_call_function((void*)&FPU_FCLEX,"");
Expand All @@ -379,11 +379,11 @@ static void dyn_fpu_esc3(){
// LOG(LOG_FPU,LOG_ERROR)("80267 protected mode (un)set. Nothing done");
break;
default:
E_Exit("ESC 3:ILLEGAL OPCODE group %d subfunction %d",group,sub);
E_Exit("ESC 3:ILLEGAL OPCODE group %" sBitfs(d) " subfunction %" sBitfs(d),group,sub);
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 3:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,false,group,sub);
break;
}
} else {
Expand All @@ -398,7 +398,7 @@ static void dyn_fpu_esc3(){
gen_call_function((void*)&FPU_FLD_I32,"%Drd%Drd",DREG(EA),DREG(TMPB));
break;
case 0x01: /* FISTTP */
LOG(LOG_FPU,LOG_WARN)("ESC 3 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,false,1,sub);
break;
case 0x02: /* FIST */
gen_call_function((void*)&FPU_FST_I32,"%Drd",DREG(EA));
Expand All @@ -416,7 +416,8 @@ static void dyn_fpu_esc3(){
gen_call_function((void*)&FPU_FPOP,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 3 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,true,group,sub);
break;
}
}
}
Expand Down Expand Up @@ -492,7 +493,7 @@ static void dyn_fpu_esc5(){
gen_call_function((void*)&FPU_FPOP,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 5:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(5,false,group,sub);
break;
}
gen_releasereg(DREG(EA));
Expand All @@ -507,7 +508,7 @@ static void dyn_fpu_esc5(){
gen_call_function((void*)&FPU_FLD_F64,"%Drd%Drd",DREG(EA),DREG(TMPB));
break;
case 0x01: /* FISTTP longint*/
LOG(LOG_FPU,LOG_WARN)("ESC 5 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(5,true,1,sub);
break;
case 0x02: /* FST double real*/
gen_call_function((void*)&FPU_FST_F64,"%Drd",DREG(EA));
Expand All @@ -530,7 +531,8 @@ static void dyn_fpu_esc5(){
gen_call_function((void*)&mem_writew,"%Drd%Drd",DREG(EA),DREG(TMPB));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 5 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(5,true,group,sub);
break;
}
}
}
Expand All @@ -553,7 +555,7 @@ static void dyn_fpu_esc6(){
break; /* TODO IS THIS ALLRIGHT ????????? */
case 0x03: /*FCOMPP*/
if(sub != 1) {
LOG(LOG_FPU,LOG_WARN)("ESC 6:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(6,false,3,sub);
return;
}
gen_load_host(&TOP,DREG(EA),4);
Expand Down Expand Up @@ -615,12 +617,12 @@ static void dyn_fpu_esc7(){
gen_mov_host(&fpu.sw,DREG(EAX),2);
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,false,4,sub);
break;
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,false,group,sub);
break;
}
} else {
Expand All @@ -632,7 +634,7 @@ static void dyn_fpu_esc7(){
gen_call_function((void*)&FPU_FLD_I16,"%Drd%Drd",DREG(EA),DREG(TMPB));
break;
case 0x01:
LOG(LOG_FPU,LOG_WARN)("ESC 7 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,true,group,sub);
break;
case 0x02: /* FIST Bit16s */
gen_call_function((void*)&FPU_FST_I16,"%Drd",DREG(EA));
Expand Down Expand Up @@ -660,7 +662,7 @@ static void dyn_fpu_esc7(){
gen_call_function((void*)&FPU_FPOP,"");
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,true,group,sub);
break;
}
}
Expand Down
28 changes: 15 additions & 13 deletions src/cpu/core_dyn_x86/dyn_fpu_dh.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ static void dh_fpu_esc1(){
dh_fpu_mem(0xd9);
break;
case 0x01: /* UNKNOWN */
LOG(LOG_FPU,LOG_WARN)("ESC EA 1:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(1,true,group,sub);
break;
case 0x02: /* FST float*/
dh_fpu_mem(0xd9);
Expand All @@ -211,7 +211,7 @@ static void dh_fpu_esc1(){
gen_call_function((void*)&FPU_FNSTCW_DH,"%Drd",DREG(EA));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC EA 1:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(1,true,group,sub);
break;
}
}
Expand Down Expand Up @@ -239,7 +239,7 @@ static void dh_fpu_esc3(){
switch (sub) {
case 0x00: //FNENI
case 0x01: //FNDIS
LOG(LOG_FPU,LOG_ERROR)("8087 only fpu code used esc 3: group 4: subfuntion :%d",sub);
LOG(LOG_FPU,LOG_ERROR)("8087 only fpu code used esc 3: group 4: subfuntion :%" sBitfs(d),sub);
break;
case 0x02: //FNCLEX FCLEX
cache_addb(0xdb);
Expand All @@ -255,11 +255,11 @@ static void dh_fpu_esc3(){
// LOG(LOG_FPU,LOG_ERROR)("80267 protected mode (un)set. Nothing done");
break;
default:
E_Exit("ESC 3:ILLEGAL OPCODE group %d subfunction %d",group,sub);
E_Exit("ESC 3:ILLEGAL OPCODE group %" sBitfs(d) " subfunction %" sBitfs(d),group,sub);
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 3:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,false,group,sub);
break;
}
} else {
Expand All @@ -272,7 +272,7 @@ static void dh_fpu_esc3(){
dh_fpu_mem(0xdb);
break;
case 0x01: /* FISTTP */
LOG(LOG_FPU,LOG_WARN)("ESC 3 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,true,1,sub);
break;
case 0x02: /* FIST */
dh_fpu_mem(0xdb);
Expand All @@ -291,7 +291,8 @@ static void dh_fpu_esc3(){
gen_call_function((void*)&FPU_FST_80,"%Drd",DREG(EA));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 3 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(3,true,group,sub);
break;
}
}
}
Expand Down Expand Up @@ -323,7 +324,7 @@ static void dh_fpu_esc5(){
dh_fpu_mem(0xdd);
break;
case 0x01: /* FISTTP longint*/
LOG(LOG_FPU,LOG_WARN)("ESC 5 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(5,true,1,sub);
break;
case 0x02: /* FST double real*/
dh_fpu_mem(0xdd);
Expand All @@ -347,7 +348,8 @@ static void dh_fpu_esc5(){
gen_call_function((void*)&FPU_FST_16,"%Drd",DREG(EA));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 5 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(5,true,group,sub);
break;
}
}
}
Expand Down Expand Up @@ -392,12 +394,12 @@ static void dh_fpu_esc7(){
gen_releasereg(DREG(TMPB));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,false,4,sub);
break;
}
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,false,group,sub);
break;
}
} else {
Expand All @@ -408,7 +410,7 @@ static void dh_fpu_esc7(){
dh_fpu_mem(0xdf);
break;
case 0x01:
LOG(LOG_FPU,LOG_WARN)("ESC 7 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,true,1,sub);
break;
case 0x02: /* FIST Bit16s */
dh_fpu_mem(0xdf);
Expand All @@ -435,7 +437,7 @@ static void dh_fpu_esc7(){
gen_call_function((void*)&FPU_FST_64,"%Drd",DREG(EA));
break;
default:
LOG(LOG_FPU,LOG_WARN)("ESC 7 EA:Unhandled group %d subfunction %d",group,sub);
FPU_LOG_WARN(7,true,group,sub);
break;
}
}
Expand Down
Loading

0 comments on commit 53fc150

Please sign in to comment.