On 08/05/2012 06:18 PM, Gleb Natapov wrote: > On Sun, Aug 05, 2012 at 06:03:12PM +0300, Avi Kivity wrote: >> On 07/30/2012 05:38 PM, Gleb Natapov wrote: >> > Optimize "rep ins" by allowing emulator to write back more than one >> > datum at a time. Introduce new operand type OP_MEM_STR which tells >> > writeback() that dst contains pointer to an array that should be written >> > back as opposite to just one data element. >> > >> > >> > if (ctxt->rep_prefix && (ctxt->d & String)) { >> > + unsigned int count; >> > struct read_cache *r = &ctxt->io_read; >> > - register_address_increment(ctxt, &ctxt->regs[VCPU_REGS_RCX], -1); >> > + if ((ctxt->d & SrcMask) == SrcSI) >> > + count = ctxt->src.count; >> > + else >> > + count = ctxt->dst.count; >> > + register_address_increment(ctxt, &ctxt->regs[VCPU_REGS_RCX], >> > + -count); >> > >> >> count is unsigned. Does it sign extend correctly in >> register_address_increment()? >> > I think it sign extent before register_address_increment() when compiler > sees -count. count is in the range 1-1024 here, so there shouldn't be a > problem. By I welcome better suggestions. There is actually no problem since the 'inc' parameter is signed. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html