diff --git a/qemu/target-sparc/translate.c b/qemu/target-sparc/translate.c index 968fedab..ebc05fe0 100644 --- a/qemu/target-sparc/translate.c +++ b/qemu/target-sparc/translate.c @@ -5581,17 +5581,14 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn, bool hook_ins break; case 0x25: /* stfsr, V9 stxfsr */ { - TCGv t = get_temp_tl(dc); - - tcg_gen_ld_tl(tcg_ctx, t, tcg_ctx->cpu_env, offsetof(CPUSPARCState, fsr)); #ifdef TARGET_SPARC64 gen_address_mask(dc, cpu_addr); if (rd == 1) { - tcg_gen_qemu_st64(dc->uc, t, cpu_addr, dc->mem_idx); + tcg_gen_qemu_st64(dc->uc, tcg_ctx->cpu_fsr, cpu_addr, dc->mem_idx); break; } #endif - tcg_gen_qemu_st32(dc->uc, t, cpu_addr, dc->mem_idx); + tcg_gen_qemu_st32(dc->uc, tcg_ctx->cpu_fsr, cpu_addr, dc->mem_idx); } break; case 0x26: