ppc: reorganize gen_compute_fprf

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: introduce gen_op_mfcr/gen_op_mtcr

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: use movcond for isel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: compute mask from BI using right shift

This will match the code we use in fpu_helper.c when we flip
CRF_* bit-endianness.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: introduce ppc_get_crf and ppc_set_crf

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: store CR registers in 32 1-bit registers

This makes comparisons much smaller and faster.  The speedup is
approximately 10% on user-mode emulation on x86 host, 3-4% on PPC.

Note that CRF_* constants are flipped to match PowerPC's big
bit-endianness.  Previously, the CR register was effectively stored
in mixed endianness, so now there is less indirection going on.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: do not access env->crf except during migration

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
ppc: dump all 32 CR bits

This is more precise when bits have been modified with CR
boolean operations.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>