Remove all references to the nonexistent "premov" instruction from the NEC-V core. [Alex Jackson]

This commit is contained in:
Scott Stone 2010-05-15 20:57:15 +00:00
parent 3f39be4b2e
commit 79a40737bd
4 changed files with 258 additions and 268 deletions

View File

@ -925,9 +925,6 @@ OP( 0xd6, i_setalc ) { nec_state->regs.b[AL] = (CF)?0xff:0x00; nec_state->icount
OP( 0xd7, i_trans ) { UINT32 dest = (nec_state->regs.w[BW]+nec_state->regs.b[AL])&0xffff; nec_state->regs.b[AL] = GetMemB(DS0, dest); CLKS(9,9,5); }
OP( 0xd8, i_fpo ) { GetModRM; nec_state->icount-=2; logerror("%06x: Unimplemented floating point control %04x\n",PC(nec_state),ModRM); }
OP( 0xda, i_mov_pre_r8b ) { UINT8 src; GetModRM; src = GetPreRMByte(ModRM); RegByte(ModRM)=src; CLKM(2,2,2,11,11,5); } // cycles wrong
OP( 0xdb, i_mov_pre_r16w ) { UINT16 src; GetModRM; src = GetPreRMWord(ModRM); RegWord(ModRM)=src; CLKR(15,15,7,15,11,5,2,EA); } // cycles wrong
OP( 0xe0, i_loopne ) { INT8 disp = (INT8)FETCH(); nec_state->regs.w[CW]--; if (!ZF && nec_state->regs.w[CW]) { nec_state->ip = (WORD)(nec_state->ip+disp); /*CHANGE_PC;*/ CLKS(14,14,6); } else CLKS(5,5,3); }
OP( 0xe1, i_loope ) { INT8 disp = (INT8)FETCH(); nec_state->regs.w[CW]--; if ( ZF && nec_state->regs.w[CW]) { nec_state->ip = (WORD)(nec_state->ip+disp); /*CHANGE_PC;*/ CLKS(14,14,6); } else CLKS(5,5,3); }
OP( 0xe2, i_loop ) { INT8 disp = (INT8)FETCH(); nec_state->regs.w[CW]--; if (nec_state->regs.w[CW]) { nec_state->ip = (WORD)(nec_state->ip+disp); /*CHANGE_PC;*/ CLKS(13,13,6); } else CLKS(5,5,3); }

View File

@ -324,8 +324,8 @@ static const I386_OPCODE necv_opcode_table1[256] =
{"trans", 0, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },
{"premov", MODRM, PARAM_REG8, PARAM_RM8, 0 }, /* ??? */
{"premov", MODRM, PARAM_REG16, PARAM_RM16, 0 }, /* ??? */
{"escape", FPU, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },
{"escape", FPU, 0, 0, 0 },

View File

@ -213,8 +213,6 @@ static void i_aad(nec_state_t *nec_state);
static void i_setalc(nec_state_t *nec_state);
static void i_trans(nec_state_t *nec_state);
static void i_fpo(nec_state_t *nec_state);
static void i_mov_pre_r8b(nec_state_t *nec_state);
static void i_mov_pre_r16w(nec_state_t *nec_state);
static void i_loopne(nec_state_t *nec_state);
static void i_loope(nec_state_t *nec_state);
static void i_loop(nec_state_t *nec_state);
@ -266,7 +264,7 @@ static void (*const nec_instruction[256])(nec_state_t *nec_state) =
i_or_ald8, /* 0x0c */
i_or_axd16, /* 0x0d */
i_push_cs, /* 0x0e */
i_pre_nec /* 0x0f */,
i_pre_nec, /* 0x0f */
i_adc_br8, /* 0x10 */
i_adc_wr16, /* 0x11 */
i_adc_r8b, /* 0x12 */
@ -350,7 +348,7 @@ static void (*const nec_instruction[256])(nec_state_t *nec_state) =
i_pusha, /* 0x60 */
i_popa, /* 0x61 */
i_chkind, /* 0x62 */
i_brkn, /* 0x63 */ // brkn - v25+ / 35+ only?
i_brkn, /* 0x63 - V25S/V35S only */
i_repnc, /* 0x64 */
i_repc, /* 0x65 */
i_invalid, /* 0x66 */
@ -401,7 +399,7 @@ static void (*const nec_instruction[256])(nec_state_t *nec_state) =
i_xchg_axbx, /* 0x93 */
i_xchg_axsp, /* 0x94 */
i_xchg_axbp, /* 0x95 */
i_xchg_axsi, /* 0x97 */
i_xchg_axsi, /* 0x96 */
i_xchg_axdi, /* 0x97 */
i_cbw, /* 0x98 */
i_cwd, /* 0x99 */
@ -469,8 +467,8 @@ static void (*const nec_instruction[256])(nec_state_t *nec_state) =
i_trans, /* 0xd7 */
i_fpo, /* 0xd8 */
i_fpo, /* 0xd9 */
i_mov_pre_r8b, /* 0xda wrong? */
i_mov_pre_r16w, /* 0xdb wrong? */
i_fpo, /* 0xda */
i_fpo, /* 0xdb */
i_fpo, /* 0xdc */
i_fpo, /* 0xdd */
i_fpo, /* 0xde */

View File

@ -15,9 +15,6 @@ static struct {
#define GetRMWord(ModRM) \
((ModRM) >= 0xc0 ? nec_state->regs.w[Mod_RM.RM.w[ModRM]] : ( (*GetEA[ModRM])(nec_state), read_word( EA ) ))
#define GetPreRMWord(ModRM) \
((ModRM) >= 0xc0 ? nec_state->regs.w[Mod_RM.RM.w[ModRM]] : ( (*GetEA[ModRM])(nec_state), ( EA ) ))
#define PutbackRMWord(ModRM,val) \
{ \
if (ModRM >= 0xc0) nec_state->regs.w[Mod_RM.RM.w[ModRM]]=val; \
@ -50,8 +47,6 @@ static struct {
#define GetRMByte(ModRM) \
((ModRM) >= 0xc0 ? nec_state->regs.b[Mod_RM.RM.b[ModRM]] : read_byte( (*GetEA[ModRM])(nec_state) ))
#define GetPreRMByte(ModRM) \
((ModRM) >= 0xc0 ? nec_state->regs.b[Mod_RM.RM.b[ModRM]] : ( (*GetEA[ModRM])(nec_state) ))
#define PutRMByte(ModRM,val) \
{ \