lkml.org 
[lkml]   [2009]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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.



\
 
 \ /
  Last update: 2009-06-07 12:07    [W:0.042 / U:70.696 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site