removed a few leftover DPRINT..s
This commit is contained in:
@@ -149,12 +149,9 @@ extern "C" { /* Use "C" linkage when in C++ mode */
|
||||
void X86EMU_exec(void);
|
||||
void X86EMU_halt_sys(void);
|
||||
|
||||
#ifdef DEBUG
|
||||
#ifdef DBG_X86EMU
|
||||
#define HALT_SYS() \
|
||||
DPRINT("halt_sys: file "); \
|
||||
DPRINT(__FILE__); \
|
||||
DPRINTVAL(", line ", __LINE__); \
|
||||
DPRINT("\r\n"); \
|
||||
dbg("%s: halt_sys: file %s line %d\r\n", __FUNCTION__, __FILE__, __LINE__);\
|
||||
X86EMU_halt_sys();
|
||||
#else
|
||||
#define HALT_SYS() X86EMU_halt_sys()
|
||||
|
||||
@@ -65,12 +65,6 @@
|
||||
|
||||
#include "radeonfb.h"
|
||||
|
||||
#ifdef DEBUG_X86EMU
|
||||
#define DEBUG /* => see also sys.c */
|
||||
#else
|
||||
#undef DEBUG
|
||||
#endif
|
||||
|
||||
#include "x86emu.h"
|
||||
#include "x86regs.h"
|
||||
#include "x86decode.h"
|
||||
|
||||
@@ -80,7 +80,8 @@ struct x86_fpu_reg {
|
||||
|
||||
#define X86_FPU_STKTOP 0
|
||||
|
||||
struct x86_fpu_registers {
|
||||
struct x86_fpu_registers
|
||||
{
|
||||
struct x86_fpu_reg x86_fpu_stack[8];
|
||||
int x86_fpu_flags;
|
||||
int x86_fpu_config; /* rounding modes, etc. */
|
||||
@@ -102,7 +103,7 @@ struct x86_fpu_registers {
|
||||
|
||||
#endif /* X86_FPU_SUPPORT */
|
||||
|
||||
#ifdef DEBUG
|
||||
#ifdef DBG_X86EMU
|
||||
#define DECODE_PRINTINSTR32(t, mod, rh, rl) \
|
||||
DECODE_PRINTF(t[(mod << 3) + (rh)]);
|
||||
#define DECODE_PRINTINSTR256(t, mod, rh, rl) \
|
||||
|
||||
149
x86emu/x86fpu.c
149
x86emu/x86fpu.c
@@ -55,7 +55,8 @@ void x86emuOp_esc_coprocess_d8(uint8_t X86EMU_UNUSED(op1))
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
|
||||
static char *x86emu_fpu_op_d9_tab[] = {
|
||||
static char *x86emu_fpu_op_d9_tab[] =
|
||||
{
|
||||
"FLD\tDWORD PTR ", "ESC_D9\t", "FST\tDWORD PTR ", "FSTP\tDWORD PTR ",
|
||||
"FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
|
||||
|
||||
@@ -66,7 +67,8 @@ static char *x86emu_fpu_op_d9_tab[] = {
|
||||
"FLDENV\t", "FLDCW\t", "FSTENV\t", "FSTCW\t",
|
||||
};
|
||||
|
||||
static char *x86emu_fpu_op_d9_tab1[] = {
|
||||
static char *x86emu_fpu_op_d9_tab1[] =
|
||||
{
|
||||
"FLD\t", "FLD\t", "FLD\t", "FLD\t",
|
||||
"FLD\t", "FLD\t", "FLD\t", "FLD\t",
|
||||
|
||||
@@ -104,13 +106,17 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
#ifdef DBG_X86EMU
|
||||
if (mod != 3) {
|
||||
if (mod != 3)
|
||||
{
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_d9_tab, mod, rh, rl);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
DECODE_PRINTF(x86emu_fpu_op_d9_tab1[(rh << 3) + rl]);
|
||||
}
|
||||
#endif
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -125,18 +131,23 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
case 3: /* register to register */
|
||||
stkelem = (uint8_t)rl;
|
||||
if (rh < 4) {
|
||||
if (rh < 4)
|
||||
{
|
||||
DECODE_PRINTF2("ST(%d)\r\n", stkelem);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
DECODE_PRINTF("\r\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
/* execute */
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_fld(X86EMU_FPU_STKTOP, stkelem);
|
||||
break;
|
||||
@@ -144,7 +155,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
x86emu_fpu_R_fxch(X86EMU_FPU_STKTOP, stkelem);
|
||||
break;
|
||||
case 2:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_nop();
|
||||
break;
|
||||
@@ -156,7 +168,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
x86emu_fpu_R_fstp(X86EMU_FPU_STKTOP, stkelem);
|
||||
break;
|
||||
case 4:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_fchs(X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -177,7 +190,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
|
||||
case 5:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_fld1(X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -207,7 +221,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
|
||||
case 6:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_f2xm1(X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -236,7 +251,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
|
||||
case 7:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_fprem(X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -264,7 +280,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fld(X86EMU_FPU_FLOAT, destoffset);
|
||||
break;
|
||||
@@ -299,7 +316,8 @@ void x86emuOp_esc_coprocess_d9(uint8_t X86EMU_UNUSED(op1))
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
|
||||
char *x86emu_fpu_op_da_tab[] = {
|
||||
char *x86emu_fpu_op_da_tab[] =
|
||||
{
|
||||
"FIADD\tDWORD PTR ", "FIMUL\tDWORD PTR ", "FICOM\tDWORD PTR ",
|
||||
"FICOMP\tDWORD PTR ",
|
||||
"FISUB\tDWORD PTR ", "FISUBR\tDWORD PTR ", "FIDIV\tDWORD PTR ",
|
||||
@@ -318,7 +336,6 @@ char *x86emu_fpu_op_da_tab[] = {
|
||||
"ESC_DA ", "ESC_DA ", "ESC_DA ", "ESC_DA ",
|
||||
"ESC_DA ", "ESC_DA ", "ESC_DA ", "ESC_DA ",
|
||||
};
|
||||
|
||||
#endif /* DBG_X86EMU */
|
||||
|
||||
/* opcode=0xda */
|
||||
@@ -331,7 +348,8 @@ void x86emuOp_esc_coprocess_da(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_da_tab, mod, rh, rl);
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -350,12 +368,14 @@ void x86emuOp_esc_coprocess_da(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
x86emu_fpu_illegal();
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_iadd(X86EMU_FPU_SHORT, destoffset);
|
||||
break;
|
||||
@@ -389,7 +409,8 @@ void x86emuOp_esc_coprocess_da(uint8_t X86EMU_UNUSED(op1))
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
|
||||
char *x86emu_fpu_op_db_tab[] = {
|
||||
char *x86emu_fpu_op_db_tab[] =
|
||||
{
|
||||
"FILD\tDWORD PTR ", "ESC_DB\t19", "FIST\tDWORD PTR ", "FISTP\tDWORD PTR ",
|
||||
"ESC_DB\t1C", "FLD\tTBYTE PTR ", "ESC_DB\t1E", "FSTP\tTBYTE PTR ",
|
||||
|
||||
@@ -411,10 +432,14 @@ void x86emuOp_esc_coprocess_db(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
#ifdef DBG_X86EMU
|
||||
if (mod != 3) {
|
||||
if (mod != 3)
|
||||
{
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_db_tab, mod, rh, rl);
|
||||
} else if (rh == 4) { /* === 11 10 0 nnn */
|
||||
switch (rl) {
|
||||
}
|
||||
else if (rh == 4)
|
||||
{ /* === 11 10 0 nnn */
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
DECODE_PRINTF("FENI\r\n");
|
||||
break;
|
||||
@@ -428,11 +453,14 @@ void x86emuOp_esc_coprocess_db(uint8_t X86EMU_UNUSED(op1))
|
||||
DECODE_PRINTF("FINIT\r\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
DECODE_PRINTF2("ESC_DB %0x\r\n", (mod << 6) + (rh << 3) + (rl));
|
||||
}
|
||||
#endif /* DBG_X86EMU */
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
break;
|
||||
@@ -447,11 +475,14 @@ void x86emuOp_esc_coprocess_db(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
/* execute */
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 4:
|
||||
switch (rl) {
|
||||
switch (rl)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_feni();
|
||||
break;
|
||||
@@ -475,7 +506,8 @@ void x86emuOp_esc_coprocess_db(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fild(X86EMU_FPU_SHORT, destoffset);
|
||||
break;
|
||||
@@ -508,7 +540,8 @@ void x86emuOp_esc_coprocess_db(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
char *x86emu_fpu_op_dc_tab[] = {
|
||||
char *x86emu_fpu_op_dc_tab[] =
|
||||
{
|
||||
"FADD\tQWORD PTR ", "FMUL\tQWORD PTR ", "FCOM\tQWORD PTR ",
|
||||
"FCOMP\tQWORD PTR ",
|
||||
"FSUB\tQWORD PTR ", "FSUBR\tQWORD PTR ", "FDIV\tQWORD PTR ",
|
||||
@@ -539,7 +572,8 @@ void x86emuOp_esc_coprocess_dc(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_dc_tab, mod, rh, rl);
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -559,9 +593,11 @@ void x86emuOp_esc_coprocess_dc(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
/* execute */
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_fadd(stkelem, X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -589,7 +625,8 @@ void x86emuOp_esc_coprocess_dc(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fadd(X86EMU_FPU_DOUBLE, destoffset);
|
||||
break;
|
||||
@@ -623,7 +660,8 @@ void x86emuOp_esc_coprocess_dc(uint8_t X86EMU_UNUSED(op1))
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
|
||||
static char *x86emu_fpu_op_dd_tab[] = {
|
||||
static char *x86emu_fpu_op_dd_tab[] =
|
||||
{
|
||||
"FLD\tQWORD PTR ", "ESC_DD\t29,", "FST\tQWORD PTR ", "FSTP\tQWORD PTR ",
|
||||
"FRSTOR\t", "ESC_DD\t2D,", "FSAVE\t", "FSTSW\t",
|
||||
|
||||
@@ -649,7 +687,8 @@ void x86emuOp_esc_coprocess_dd(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_dd_tab, mod, rh, rl);
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -668,9 +707,11 @@ void x86emuOp_esc_coprocess_dd(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_ffree(stkelem);
|
||||
break;
|
||||
@@ -689,7 +730,8 @@ void x86emuOp_esc_coprocess_dd(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fld(X86EMU_FPU_DOUBLE, destoffset);
|
||||
break;
|
||||
@@ -756,7 +798,8 @@ void x86emuOp_esc_coprocess_de(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_de_tab, mod, rh, rl);
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -775,9 +818,11 @@ void x86emuOp_esc_coprocess_de(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_faddp(stkelem, X86EMU_FPU_STKTOP);
|
||||
break;
|
||||
@@ -808,7 +853,8 @@ void x86emuOp_esc_coprocess_de(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fiadd(X86EMU_FPU_WORD, destoffset);
|
||||
break;
|
||||
@@ -842,7 +888,8 @@ void x86emuOp_esc_coprocess_de(uint8_t X86EMU_UNUSED(op1))
|
||||
|
||||
#ifdef DBG_X86EMU
|
||||
|
||||
static char *x86emu_fpu_op_df_tab[] = {
|
||||
static char *x86emu_fpu_op_df_tab[] =
|
||||
{
|
||||
/* mod == 00 */
|
||||
"FILD\tWORD PTR ", "ESC_DF\t39\n", "FIST\tWORD PTR ", "FISTP\tWORD PTR ",
|
||||
"FBLD\tTBYTE PTR ", "FILD\tQWORD PTR ", "FBSTP\tTBYTE PTR ",
|
||||
@@ -875,7 +922,8 @@ void x86emuOp_esc_coprocess_df(uint8_t X86EMU_UNUSED(op1))
|
||||
START_OF_INSTR();
|
||||
FETCH_DECODE_MODRM(mod, rh, rl);
|
||||
DECODE_PRINTINSTR32(x86emu_fpu_op_df_tab, mod, rh, rl);
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 0:
|
||||
destoffset = decode_rm00_address(rl);
|
||||
DECODE_PRINTF("\r\n");
|
||||
@@ -894,9 +942,11 @@ void x86emuOp_esc_coprocess_df(uint8_t X86EMU_UNUSED(op1))
|
||||
break;
|
||||
}
|
||||
#ifdef X86EMU_FPU_PRESENT
|
||||
switch (mod) {
|
||||
switch (mod)
|
||||
{
|
||||
case 3:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_R_ffree(stkelem);
|
||||
break;
|
||||
@@ -915,7 +965,8 @@ void x86emuOp_esc_coprocess_df(uint8_t X86EMU_UNUSED(op1))
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (rh) {
|
||||
switch (rh)
|
||||
{
|
||||
case 0:
|
||||
x86emu_fpu_M_fild(X86EMU_FPU_WORD, destoffset);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user