Fix effective address calculation of bittesting opcodes with register operand
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1582
This commit is contained in:
parent
3a0530ec27
commit
73943385cd
2 changed files with 16 additions and 8 deletions
|
@ -255,7 +255,8 @@
|
|||
GetEArw;
|
||||
SETFLAGBIT(CF,(*earw & mask));
|
||||
} else {
|
||||
GetEAa;Bit16u old=LoadMw(eaa);
|
||||
GetEAa;eaa+=(((Bit16s)*rmrw)>>4)*2;
|
||||
Bit16u old=LoadMw(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
}
|
||||
break;
|
||||
|
@ -279,7 +280,8 @@
|
|||
SETFLAGBIT(CF,(*earw & mask));
|
||||
*earw|=mask;
|
||||
} else {
|
||||
GetEAa;Bit16u old=LoadMw(eaa);
|
||||
GetEAa;eaa+=(((Bit16s)*rmrw)>>4)*2;
|
||||
Bit16u old=LoadMw(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMw(eaa,old | mask);
|
||||
}
|
||||
|
@ -311,7 +313,8 @@
|
|||
SETFLAGBIT(CF,(*earw & mask));
|
||||
*earw&= ~mask;
|
||||
} else {
|
||||
GetEAa;Bit16u old=LoadMw(eaa);
|
||||
GetEAa;eaa+=(((Bit16s)*rmrw)>>4)*2;
|
||||
Bit16u old=LoadMw(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMw(eaa,old & ~mask);
|
||||
}
|
||||
|
@ -399,7 +402,8 @@
|
|||
SETFLAGBIT(CF,(*earw & mask));
|
||||
*earw^=mask;
|
||||
} else {
|
||||
GetEAa;Bit16u old=LoadMw(eaa);
|
||||
GetEAa;eaa+=(((Bit16s)*rmrw)>>4)*2;
|
||||
Bit16u old=LoadMw(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMw(eaa,old ^ mask);
|
||||
}
|
||||
|
|
|
@ -168,7 +168,8 @@
|
|||
GetEArd;
|
||||
SETFLAGBIT(CF,(*eard & mask));
|
||||
} else {
|
||||
GetEAa;Bit32u old=LoadMd(eaa);
|
||||
GetEAa;eaa+=(((Bit32s)*rmrd)>>5)*4;
|
||||
Bit32u old=LoadMd(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
}
|
||||
break;
|
||||
|
@ -192,7 +193,8 @@
|
|||
SETFLAGBIT(CF,(*eard & mask));
|
||||
*eard|=mask;
|
||||
} else {
|
||||
GetEAa;Bit32u old=LoadMd(eaa);
|
||||
GetEAa;eaa+=(((Bit32s)*rmrd)>>5)*4;
|
||||
Bit32u old=LoadMd(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMd(eaa,old | mask);
|
||||
}
|
||||
|
@ -227,7 +229,8 @@
|
|||
SETFLAGBIT(CF,(*eard & mask));
|
||||
*eard&= ~mask;
|
||||
} else {
|
||||
GetEAa;Bit32u old=LoadMd(eaa);
|
||||
GetEAa;eaa+=(((Bit32s)*rmrd)>>5)*4;
|
||||
Bit32u old=LoadMd(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMd(eaa,old & ~mask);
|
||||
}
|
||||
|
@ -317,7 +320,8 @@
|
|||
SETFLAGBIT(CF,(*eard & mask));
|
||||
*eard^=mask;
|
||||
} else {
|
||||
GetEAa;Bit32u old=LoadMd(eaa);
|
||||
GetEAa;eaa+=(((Bit32s)*rmrd)>>5)*4;
|
||||
Bit32u old=LoadMd(eaa);
|
||||
SETFLAGBIT(CF,(old & mask));
|
||||
SaveMd(eaa,old ^ mask);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue