mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 10:34:58 -06:00
ppc: spapr: cleanup cr get/set with helpers.
The bits in cr reg are grouped into eight 4-bit fields represented by env->crf[8] and the related calculations should be abstracted to keep the calling routines simpler to read. This is a step towards cleaning up the related/calling code for better readability. Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230503093619.2530487-2-harshpb@linux.ibm.com> [danielhb: add 'const' modifier to fix linux-user build] Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
1b336bb63e
commit
2060436aab
8 changed files with 31 additions and 60 deletions
|
@ -1566,8 +1566,6 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu,
|
|||
struct kvmppc_hv_guest_state hv_state;
|
||||
struct kvmppc_pt_regs *regs;
|
||||
hwaddr len;
|
||||
uint64_t cr;
|
||||
int i;
|
||||
|
||||
if (spapr->nested_ptcr == 0) {
|
||||
return H_NOT_AVAILABLE;
|
||||
|
@ -1616,12 +1614,7 @@ static target_ulong h_enter_nested(PowerPCCPU *cpu,
|
|||
env->lr = regs->link;
|
||||
env->ctr = regs->ctr;
|
||||
cpu_write_xer(env, regs->xer);
|
||||
|
||||
cr = regs->ccr;
|
||||
for (i = 7; i >= 0; i--) {
|
||||
env->crf[i] = cr & 15;
|
||||
cr >>= 4;
|
||||
}
|
||||
ppc_set_cr(env, regs->ccr);
|
||||
|
||||
env->msr = regs->msr;
|
||||
env->nip = regs->nip;
|
||||
|
@ -1698,8 +1691,6 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp)
|
|||
struct kvmppc_hv_guest_state *hvstate;
|
||||
struct kvmppc_pt_regs *regs;
|
||||
hwaddr len;
|
||||
uint64_t cr;
|
||||
int i;
|
||||
|
||||
assert(spapr_cpu->in_nested);
|
||||
|
||||
|
@ -1757,12 +1748,7 @@ void spapr_exit_nested(PowerPCCPU *cpu, int excp)
|
|||
regs->link = env->lr;
|
||||
regs->ctr = env->ctr;
|
||||
regs->xer = cpu_read_xer(env);
|
||||
|
||||
cr = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
cr |= (env->crf[i] & 15) << (4 * (7 - i));
|
||||
}
|
||||
regs->ccr = cr;
|
||||
regs->ccr = ppc_get_cr(env);
|
||||
|
||||
if (excp == POWERPC_EXCP_MCHECK ||
|
||||
excp == POWERPC_EXCP_RESET ||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue