qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 00/25] x86 AREG0 conversion


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH v3 00/25] x86 AREG0 conversion
Date: Sun, 17 Jun 2012 12:55:39 +0000

On Sun, Jun 17, 2012 at 10:29 AM, Blue Swirl <address@hidden> wrote:
> On Sat, Jun 16, 2012 at 1:15 PM, Andreas Färber <address@hidden> wrote:
>> Am 16.06.2012 08:51, schrieb Blue Swirl:
>>> On Sat, Jun 16, 2012 at 12:59 AM, Andreas Färber <address@hidden> wrote:
>>>> Am 09.06.2012 18:18, schrieb Blue Swirl:
>>>>> v3: Rebased due to Makefile changes. If there are no objections,
>>>>> I'll apply this next weekend.
>>>>
>>>> If you have it on some branch to test I'll give it a whirl tomorrow.
>>>
>>> URL   git://repo.or.cz/qemu/blueswirl.git
>>>       http://repo.or.cz/r/qemu/blueswirl.git
>>
>> Thanks for rebasing and pushing.
>>
>> Unfortunately I'm seeing a regression booting openSUSE 12.1 64-bit GNOME
>> Live CD [1] with qemu-system-x86_64: It hangs after initializing the
>> mouse whereas on master it proceeds into the graphical installer.
>
> After kernel has been loaded, the screen flashes black and there's a
> screen with SUSE logo, then nothing happens. But this is also the case
> with 1.1.0, master and after the series. Even with KVM, there's one
> more screen flash and the screen resizes but nothing happens after
> that.
>
> I'm now trying Debian 6.0.4 live amd64.

I can now reproduce the problem with Debian, without the patch set
there's text about loading, but with the patch the screen remains
blank forever.

It looks like the problem is with the patch 'x86: avoid AREG0 for FPU
helpers'. However, the only FPU instructions executed by Linux are
fxsave and fildl. Even if I revert those areas (even all memory access
changes), the problem remains.

The patch looks pretty straightforward otherwise.

I also checked that I didn't accidentally change register order like
before. The changed helpers which return a value can be found with
this:
$ git diff HEAD~1 HEAD target-i386/helper.h
target-i386/ops_sse_header.h |grep '^+'|grep DEF_HELPER |grep -v
'void, env'
+DEF_HELPER_1(fsts_ST0, i32, env)
+DEF_HELPER_1(fstl_ST0, i64, env)
+DEF_HELPER_1(fist_ST0, s32, env)
+DEF_HELPER_1(fistl_ST0, s32, env)
+DEF_HELPER_1(fistll_ST0, s64, env)
+DEF_HELPER_1(fistt_ST0, s32, env)
+DEF_HELPER_1(fisttl_ST0, s32, env)
+DEF_HELPER_1(fisttll_ST0, s64, env)
+DEF_HELPER_1(fnstsw, i32, env)
+DEF_HELPER_1(fnstcw, i32, env)
+DEF_HELPER_2(cvtss2si, s32, env, XMMReg)
+DEF_HELPER_2(cvtsd2si, s32, env, XMMReg)
+DEF_HELPER_2(cvtss2sq, s64, env, XMMReg)
+DEF_HELPER_2(cvtsd2sq, s64, env, XMMReg)
+DEF_HELPER_2(cvttss2si, s32, env, XMMReg)
+DEF_HELPER_2(cvttsd2si, s32, env, XMMReg)
+DEF_HELPER_2(cvttss2sq, s64, env, XMMReg)
+DEF_HELPER_2(cvttsd2sq, s64, env, XMMReg)
+DEF_HELPER_2(movmskps, i32, env, Reg)
+DEF_HELPER_2(movmskpd, i32, env, Reg)
+DEF_HELPER_2(glue(pmovmskb, SUFFIX), i32, env, Reg)
+DEF_HELPER_3(popcnt, tl, env, tl, i32)

>
>>
>> Andreas
>>
>> [1] http://software.opensuse.org/121/en
>>
>> --
>> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
>> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]