Re: [2.6.30-rc8 KVM] gcc 3.3 dies at emulate_2op_cl().

From: Avi Kivity
Date: Sun Jun 07 2009 - 02:24:41 EST


Tetsuo Handa wrote:
> (Continued from http://lkml.org/lkml/2009/6/4/14 )
> I tried to identify the location of gcc 3.3's internal error using
> "make CONFIG_DEBUG_INFO=1 arch/x86/kvm/x86_emulate.s", and it turned out that
> the location is emulate_2op_cl().
>
> Commenting out like below solves the gcc's internal error.
>
> diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
> index ca91749..561b9b6 100644
> --- a/arch/x86/kvm/x86_emulate.c
> +++ b/arch/x86/kvm/x86_emulate.c
> @@ -2070,7 +2070,7 @@ twobyte_insn:
> break;
> case 0xa4: /* shld imm8, r, r/m */
> case 0xa5: /* shld cl, r, r/m */
> - emulate_2op_cl("shld", c->src2, c->src, c->dst, ctxt->eflags);
> + //emulate_2op_cl("shld", c->src2, c->src, c->dst, ctxt->eflags);
> break;
> case 0xab:
> bts: /* bts */
> @@ -2080,7 +2080,7 @@ twobyte_insn:
> break;
> case 0xac: /* shrd imm8, r, r/m */
> case 0xad: /* shrd cl, r, r/m */
> - emulate_2op_cl("shrd", c->src2, c->src, c->dst, ctxt->eflags);
> + //emulate_2op_cl("shrd", c->src2, c->src, c->dst, ctxt->eflags);
> break;
> case 0xae: /* clflush */
> break;
>
> I think something is wrong with emulate_2op_cl() when compiled with gcc 3.3.5 .
>
>

This is on i386, not x86_64, yes?

--
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/