From fe987e2394e1fca01aba581095f219423fbbdd39 Mon Sep 17 00:00:00 2001 From: "Igor V. Kovalenko" Date: Wed, 2 Jun 2010 00:12:37 +0400 Subject: sparc64: fix ldxfsr insn - rearrange code to break from switch when appropriate - allow deprecated ldfsr insn Signed-off-by: Igor V. Kovalenko Signed-off-by: Blue Swirl --- target-sparc/translate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'target-sparc/translate.c') diff --git a/target-sparc/translate.c b/target-sparc/translate.c index eff64d4582..0bc1a82706 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -4476,7 +4476,11 @@ static void disas_sparc_insn(DisasContext * dc) if (rd == 1) { tcg_gen_qemu_ld64(cpu_tmp64, cpu_addr, dc->mem_idx); gen_helper_ldxfsr(cpu_tmp64); - } else + } else { + tcg_gen_qemu_ld32u(cpu_tmp0, cpu_addr, dc->mem_idx); + tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_tmp0); + gen_helper_ldfsr(cpu_tmp32); + } #else { tcg_gen_qemu_ld32u(cpu_tmp32, cpu_addr, dc->mem_idx); -- cgit v1.2.1