On Fri, 24 May 2013 23:23:02 +0200
Laszlo Ersek <email address hidden> wrote:
> ------------------------------[ proposed fix ]--------------------------
> diff --git a/target-i386/translate.c b/target-i386/translate.c
> index 0e0356f..4fbd6c0 100644
> --- a/target-i386/translate.c
> +++ b/target-i386/translate.c
> @@ -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) {
> + /* flip it back, 0x67 should have no effect */
> + aflag ^= 1;
> + }
> + else {
> aflag = 2;
> }
> }
> ------------------------------[ proposed fix ]--------------------------
>
> I'll post it separately to the list for review.
>
> Luiz, can you please test it with Windows guests?
On Windows 8 I can get past the boot loop point and even see Windows' boot
logo, but then I get a black screen (which I guess is the evolution of the
blue screen) asking me to reboot the PC saying "Error Code: 0x0000005D".
That error code is what I get with Windows 2008, with or without or patch.
I googled a bit about it, and it seems to be related to some CPU
incompatibility, which makes me think that this is a difference issue
(meaning that your patch does fix the boot loop bug).
On Fri, 24 May 2013 23:23:02 +0200
Laszlo Ersek <email address hidden> wrote:
> ------- ------- ------- ------- --[ proposed fix ]------ ------- ------- ------ i386/translate. c b/target- i386/translate. c i386/translate. c i386/translate. c CPUX86State *env, DisasContext *s, ------- ------- ------- --[ proposed fix ]------ ------- ------- ------
> diff --git a/target-
> index 0e0356f..4fbd6c0 100644
> --- a/target-
> +++ b/target-
> @@ -4813,7 +4813,11 @@ static target_ulong disas_insn(
> /* 0x66 is ignored if rex.w is set */
> dflag = 2;
> }
> - if (!(prefixes & PREFIX_ADR)) {
> + if (prefixes & PREFIX_ADR) {
> + /* flip it back, 0x67 should have no effect */
> + aflag ^= 1;
> + }
> + else {
> aflag = 2;
> }
> }
> -------
>
> I'll post it separately to the list for review.
>
> Luiz, can you please test it with Windows guests?
On Windows 8 I can get past the boot loop point and even see Windows' boot
logo, but then I get a black screen (which I guess is the evolution of the
blue screen) asking me to reboot the PC saying "Error Code: 0x0000005D".
That error code is what I get with Windows 2008, with or without or patch.
I googled a bit about it, and it seems to be related to some CPU
incompatibility, which makes me think that this is a difference issue
(meaning that your patch does fix the boot loop bug).