The Come-From Address Register (CFAR) register is only available on 64-bit CPUs, and is 64-bit wide. Prefer the 64-bit APIs over the 'target-long' one. No logical change intended.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- target/ppc/cpu.h | 2 +- target/ppc/translate.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index aba8109bbba..63c8fa25acc 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1285,7 +1285,7 @@ struct CPUArchState { target_ulong ctr; uint32_t crf[8]; /* condition register */ #if defined(TARGET_PPC64) - target_ulong cfar; + uint64_t cfar; #endif target_ulong xer; /* XER (with SO, OV, CA split out) */ target_ulong so; diff --git a/target/ppc/translate.c b/target/ppc/translate.c index f26b0281737..0fc81570a8b 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -69,7 +69,7 @@ static TCGv cpu_msr; static TCGv cpu_ctr; static TCGv cpu_lr; #if defined(TARGET_PPC64) -static TCGv cpu_cfar; +static TCGv_i64 cpu_cfar; #endif static TCGv cpu_xer, cpu_so, cpu_ov, cpu_ca, cpu_ov32, cpu_ca32; static TCGv cpu_reserve; @@ -124,8 +124,8 @@ void ppc_translate_init(void) offsetof(CPUPPCState, lr), "lr"); #if defined(TARGET_PPC64) - cpu_cfar = tcg_global_mem_new(tcg_env, - offsetof(CPUPPCState, cfar), "cfar"); + cpu_cfar = tcg_global_mem_new_i64(tcg_env, + offsetof(CPUPPCState, cfar), "cfar"); #endif cpu_xer = tcg_global_mem_new(tcg_env, @@ -626,12 +626,12 @@ void spr_write_lr(DisasContext *ctx, int sprn, int gprn) /* CFAR */ void spr_read_cfar(DisasContext *ctx, int gprn, int sprn) { - tcg_gen_mov_tl(cpu_gpr[gprn], cpu_cfar); + tcg_gen_mov_i64(cpu_gpr[gprn], cpu_cfar); } void spr_write_cfar(DisasContext *ctx, int sprn, int gprn) { - tcg_gen_mov_tl(cpu_cfar, cpu_gpr[gprn]); + tcg_gen_mov_i64(cpu_cfar, cpu_gpr[gprn]); } /* Breakpoint */ -- 2.53.0
