On 03/11/16 08:06, Jan Beulich wrote: >>>> On 02.11.16 at 18:42, <andrew.coop...@citrix.com> wrote: >> On 02/11/16 16:12, Jan Beulich wrote: >>> This affects not only the layout of the data (always 2+8 bytes), but >>> also the contents (no truncation to 24 bits occurs). >>> >>> Signed-off-by: Jan Beulich <jbeul...@suse.com> >> Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com>, although >> wouldn't it be cleaner to set op_bytes = def_op_bytes, than to keep >> referring back to mode_64()? > That would still mean > > if ( mode_64bit() ) > op_bytes = def_op_bytes;
Oh true. > > and wouldn't eliminate the uses in the second ops->write() / > read_ulong() either. > > What we could do in the S{G,I}DT case is > > if ( mode_64bit() ) > op_bytes = 8; > else if ( op_bytes == 2 ) > { > sreg.base &= 0xffffff; > op_bytes = 4; > } > if ( (rc = ops->write(ea.mem.seg, ea.mem.off+0, > &sreg.limit, 2, ctxt)) || > (rc = ops->write(ea.mem.seg, ea.mem.off+2, > &sreg.base, op_bytes, ctxt)) ) > > But the same can't be done in the L{G,I}DT case. Let me know. This does look a little cleaner, even if it is only for the sgdt/sidt case. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel