[Qemu-devel] [PATCH] i386/translate: ignore 0x67 (PREFIX_ADR) on TARGET_X86_64 && CODE64()

2013-05-24 Thread Laszlo Ersek
The code reorganization in commit 4a6fd938 broke handling of PREFIX_ADR. Restore the previous behavior: If TARGET_X86_64 *and* CODE64(): (a) PREFIX_ADR set: no effect, "aflag" should stay at the original "s->code32" value, (b) PREFIX_ADR clear: "aflag" should be set to constant 2. Other

Re: [Qemu-devel] [PATCH] i386/translate: ignore 0x67 (PREFIX_ADR) on TARGET_X86_64 && CODE64()

2013-05-25 Thread Richard Henderson
On 2013-05-24 14:37, Laszlo Ersek wrote: @@ -4813,7 +4813,11 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, /* 0x66 is ignored if rex.w is set */ dflag = 2; } -if (!(prefixes & PREFIX_ADR)) { +if (prefixes & PREFIX_ADR)

Re: [Qemu-devel] [PATCH] i386/translate: ignore 0x67 (PREFIX_ADR) on TARGET_X86_64 && CODE64()

2013-05-26 Thread Paolo Bonzini
Il 26/05/2013 01:23, Richard Henderson ha scritto: > On 2013-05-24 14:37, Laszlo Ersek wrote: >> @@ -4813,7 +4813,11 @@ static target_ulong disas_insn(CPUX86State >> *env, DisasContext *s, >> /* 0x66 is ignored if rex.w is set */ >> dflag = 2; >> } >> -

Re: [Qemu-devel] [PATCH] i386/translate: ignore 0x67 (PREFIX_ADR) on TARGET_X86_64 && CODE64()

2013-05-26 Thread Laszlo Ersek
On 05/26/13 10:33, Paolo Bonzini wrote: > Il 26/05/2013 01:23, Richard Henderson ha scritto: >> On 2013-05-24 14:37, Laszlo Ersek wrote: >>> @@ -4813,7 +4813,11 @@ static target_ulong disas_insn(CPUX86State >>> *env, DisasContext *s, >>> /* 0x66 is ignored if rex.w is set */ >>>

Re: [Qemu-devel] [PATCH] i386/translate: ignore 0x67 (PREFIX_ADR) on TARGET_X86_64 && CODE64()

2013-05-26 Thread Paolo Bonzini
Il 27/05/2013 01:45, Laszlo Ersek ha scritto: > I believe aflag++ is incorrect if the current default address size for > 32-bit is 16-bit (ie. (s->code32 & 1) == 0). ... which cannot happen. :) (Sorry, should have been more verbose). See cpu_x86_load_seg_cache: #ifdef TARGET_X86_64