Skip to content

Commit

Permalink
Add SALC and XLAT to the dyn_x86 core. Improve LOCK handling a bit. T…
Browse files Browse the repository at this point in the history
…hanks jmarsh.

git-svn-id: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4341 ed541006-0bf7-43e9-8c4d-6fc63c346d47
  • Loading branch information
qbix79 committed May 22, 2020
1 parent d4dde90 commit 393cfff
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/cpu/core_dyn_x86/decoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -2040,6 +2040,14 @@ static void dyn_add_iocheck_var(Bit8u accessed_port,Bitu access_size) {
dyn_check_bool_exception_al();
}

static void dyn_xlat(void) {
gen_extend_byte(false,true,DREG(TMPW),DREG(EAX),0);
gen_lea(DREG(TMPW),DREG(TMPW),DREG(EBX),0,0);
if (!decode.big_addr) gen_extend_word(false,DREG(TMPW),DREG(TMPW));
gen_lea(DREG(TMPW),DREG(TMPW),decode.segprefix ? decode.segprefix : DREG(DS),0,0);
dyn_read_byte_release(DREG(TMPW),DREG(EAX),false);
}

#ifdef X86_DYNFPU_DH_ENABLED
#include "dyn_fpu_dh.h"
#define dh_fpu_startup() { \
Expand Down Expand Up @@ -2454,6 +2462,10 @@ static CacheBlock * CreateCacheBlock(CodePageHandler * codepage,PhysPt start,Bit
//GRP2 Eb/Ev,CL
case 0xd2:dyn_grp2_eb(grp2_cl);break;
case 0xd3:dyn_grp2_ev(grp2_cl);break;
// SALC
case 0xd6:gen_needflags();gen_protectflags();gen_dop_byte(DOP_SBB,DREG(EAX),0,DREG(EAX),0);break;
// XLAT
case 0xd7:dyn_xlat();break;
//FPU
#ifdef CPU_FPU
case 0xd8:
Expand Down Expand Up @@ -2624,7 +2636,7 @@ static CacheBlock * CreateCacheBlock(CodePageHandler * codepage,PhysPt start,Bit
}
break;
case 0xf0: //LOCK
break;
goto restart_prefix;
case 0xf2: //REPNE/NZ
decode.rep=REP_NZ;
goto restart_prefix;
Expand Down

0 comments on commit 393cfff

Please sign in to comment.