On 10/06/2012 05:30 AM, Paolo Bonzini wrote: > In some cases this is just simple code movement, ensuring the invariant > that cpu_cc_op matches s->cc_op when calling the helpers. The next patches > need this because gen_compute_eflags and gen_compute_eflags_c will take > care of setting cpu_cc_op. > > Also, for shifts, always compute EFLAGS first since it is needed whenever > the shift is non-zero, i.e. most of the time. This makes it possible > to remove some writes of CC_OP_EFLAGS to cpu_cc_op and more importantly > removes cases where s->cc_op becomes CC_OP_DYNAMIC. These are slow and > we want to avoid them: CC_OP_EFLAGS is quite efficient once we paid the > initial cost of computing the flags. > > Finally, always follow gen_compute_eflags(cpu_cc_src) by setting s->cc_op > and discarding cpu_cc_dst. > > Signed-off-by: Paolo Bonzini <[email protected]>
I was about to quibble with some of this, but I see you've cleaned up all my quibbles with subsequent patches. Reviewed-by: Richard Henderson <[email protected]> r~
