[PATCH] x86emu: Correctly handle 0x66 prefix for some instructions
Julian Pidancet
julian.pidancet at gmail.com
Wed Mar 7 09:54:57 PST 2012
On Wed, Mar 7, 2012 at 1:46 PM, Guillem Jover <guillem at hadrons.org> wrote:
> Hi!
>
> On Mon, 2012-03-05 at 17:49:08 +0000, Julian Pidancet wrote:
>> diff --git a/hw/xfree86/x86emu/ops.c b/hw/xfree86/x86emu/ops.c
>> index 5d3cac1..440b8dc 100644
>> --- a/hw/xfree86/x86emu/ops.c
>> +++ b/hw/xfree86/x86emu/ops.c
>> @@ -8787,11 +8795,16 @@ static void x86emuOp_enter(u8 X86EMU_UNUSED(op1))
>> frame_pointer = M.x86.R_SP;
>> if (nesting > 0) {
>> for (i = 1; i < nesting; i++) {
>> - M.x86.R_BP -= 2;
>> - push_word(fetch_data_word_abs(M.x86.R_SS, M.x86.R_BP));
>> + if (M.x86.mode & SYSMODE_PREFIX_DATA) {
>> + M.x86.R_EBP -= 4;
>> + push_long(fetch_data_long_abs(M.x86.R_SS, M.x86.R_BP));
>
> Shouldn't this be:
>
> push_long(fetch_data_long_abs(M.x86.R_SS, M.x86.R_EBP))
>
> ?
>
More information about the xorg-devel
mailing list