From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] (big) real mode emulation - inc reg Date: Sat, 15 Sep 2007 10:39:28 +0300 Message-ID: <46EB8C30.8050009@qumranet.com> References: <1188349132.9270.7.camel@lnitindesktop.sc.intel.com> <46E79B2A.60506@qumranet.com> <46E7A073.6030601@bull.net> <46E7A317.208@qumranet.com> <47DF6B76DC88174EB18F2393E76FC46EB20712F4@scsmsx412.amr.corp.intel.com> <1189707324.28738.0.camel@lnitindesktop.sc.intel.com> <1189709705.28738.9.camel@lnitindesktop.sc.intel.com> <1189725509.28738.12.camel@lnitindesktop.sc.intel.com> <1189725983.28738.15.camel@lnitindesktop.sc.intel.com> <1189726560.28738.18.camel@lnitindesktop.sc.intel.com> <1189727241.28738.21.camel@lnitindesktop.sc.intel.com> <1189727640.28738.24.camel@lnitindesktop.sc.intel.com> <1189728138.28738.27.camel@lnitindesktop.sc.intel.com> <1189728902.28738.31.camel@lnitindesktop.sc.intel.com> <1189729357.28738.33.camel@lnitindesktop.sc.intel.com> <1189730445.28738.36.camel@lnitindesktop.sc.intel.com> <1189794045.28738.47.camel@lnitindesktop.sc.intel.com> <1189795407.28738.50.camel@lnitindesktop.sc.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel , Laurent Vivier To: nitin.a.kamble-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org Return-path: In-Reply-To: <1189795407.28738.50.camel-mpPvwfgnXtFHIUuj5cj4Omt3HXsI98Cx0E9HWUfgJXw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Nitin A Kamble wrote: > Hi Avi, > Attached is the patch to implement instructions: > inc reg > opcode: 0x40 - 0x47 > Please apply. > > @@ -1390,6 +1393,22 @@ pop_instruction: > _eip = ctxt->vcpu->rip; > } > switch (b) { > + case 0x40 ... 0x47: /* inc reg */ > + dst.ptr = (unsigned long *)&_regs[b & 0x7]; > + dst.val = *dst.ptr; > + switch (op_bytes) { > Too much indentation here? > + case 2: > + *(u16 *)dst.ptr = (u16)dst.val + 1; > + break; > + case 4: > + *dst.ptr = (u32)dst.val + 1; > + break; /* 64b: zero-ext */ > + case 8: > + *dst.ptr = dst.val + 1; > + break; > + } > + no_wb = 1; /* Disable writeback. */ > + break; > case 0xa4 ... 0xa5: /* movs */ > dst.type = OP_MEM; > dst.bytes = (d & ByteOp) ? 1 : op_bytes; > Why are we disabling writeback instead of using the regular writeback mechanism? Shouldn't just setting dst.val be sufficient? -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/