Messages in this thread Patch in this message |  | | Subject | [2.6.30-rc8 KVM] gcc 3.3 dies at emulate_2op_cl(). | From | Tetsuo Handa <> | Date | Fri, 05 Jun 2009 14:39:58 +0900 |
| |
(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 .
Regards.
|  |