[Top][All Lists]
[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
- [Qemu-devel] [PATCH 21/25] x86: avoid AREG0 for misc helpers, (continued)
- [Qemu-devel] [PATCH 21/25] x86: avoid AREG0 for misc helpers, Blue Swirl, 2012/06/09
- [Qemu-devel] [PATCH 20/25] x86: split off misc helpers, Blue Swirl, 2012/06/09
- [Qemu-devel] [PATCH 08/25] x86: avoid AREG0 for FPU helpers, Blue Swirl, 2012/06/09
- [Qemu-devel] [PATCH 25/25] x86: switch to AREG0 free mode, Blue Swirl, 2012/06/09
- [Qemu-devel] [PATCH 24/25] x86: avoid AREG0 in segmentation helpers, Blue Swirl, 2012/06/09
- Re: [Qemu-devel] [PATCH v3 00/25] x86 AREG0 conversion, Andreas Färber, 2012/06/15