[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4A2B9086.20309@redhat.com>
Date: Sun, 07 Jun 2009 13:03:50 +0300
From: Avi Kivity <avi@...hat.com>
To: Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
CC: guillaume.thouvenin@....bull.net, linux-kernel@...r.kernel.org
Subject: Re: [2.6.30-rc8 KVM] gcc 3.3 dies at emulate_2op_cl().
Tetsuo Handa wrote:
> Avi Kivity wrote:
>
>> I can eliminate _tmp by using lahf/sahf, but it's not going to be a
>> trivial patch.
>>
>
> I don't know what's happening here.
>
> If I comment out (_dst).bytes == 2 , it compiles.
> The problem happens only "w" + "unsigned short" case.
>
> # diff -urp arch/x86/kvm/x86_emulate.c~ arch/x86/kvm/x86_emulate.c
> --- arch/x86/kvm/x86_emulate.c~ 2009-06-03 12:07:25.000000000 +0900
> +++ arch/x86/kvm/x86_emulate.c 2009-06-07 17:52:05.591542272 +0900
> @@ -461,8 +461,8 @@ static u32 group2_table[] = {
> do { \
> switch ((_dst).bytes) { \
> case 2: \
> - __emulate_2op_cl(_op, _cl, _src, _dst, _eflags, \
> - "w", unsigned short); \
> + /* __emulate_2op_cl(_op, _cl, _src, _dst, _eflags, \
> + "w", unsigned short); */ \
> break; \
> case 4: \
> __emulate_2op_cl(_op, _cl, _src, _dst, _eflags, \
>
It's a gcc register allocator bug. Bugs don't have to be reasonable.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists