Commit 07bf2857b8517711b5af2c516208bf87c546419f
1 parent
2daf0284
Avoid temporary variable use across basic blocks for udivx
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4744 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
4 additions
and
2 deletions
target-sparc/translate.c
... | ... | @@ -3068,8 +3068,10 @@ static void disas_sparc_insn(DisasContext * dc) |
3068 | 3068 | break; |
3069 | 3069 | #ifdef TARGET_SPARC64 |
3070 | 3070 | case 0xd: /* V9 udivx */ |
3071 | - gen_trap_ifdivzero_tl(cpu_src2); | |
3072 | - tcg_gen_divu_i64(cpu_dst, cpu_src1, cpu_src2); | |
3071 | + tcg_gen_mov_tl(cpu_cc_src, cpu_src1); | |
3072 | + tcg_gen_mov_tl(cpu_cc_src2, cpu_src2); | |
3073 | + gen_trap_ifdivzero_tl(cpu_cc_src2); | |
3074 | + tcg_gen_divu_i64(cpu_dst, cpu_cc_src, cpu_cc_src2); | |
3073 | 3075 | break; |
3074 | 3076 | #endif |
3075 | 3077 | case 0xe: | ... | ... |