OSDN Git Service

microblaze: Correct branch to registers.
authorPaul Hartke <paul.hartke@xilinx.com>
Sun, 13 Dec 2009 02:22:24 +0000 (03:22 +0100)
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>
Sun, 13 Dec 2009 02:22:24 +0000 (03:22 +0100)
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
target-microblaze/translate.c

index 44f4db0..85dcf86 100644 (file)
@@ -1019,7 +1019,7 @@ static void dec_br(DisasContext *dc)
         if (dc->imm == 0)
             t_gen_raise_exception(dc, EXCP_DEBUG);
     } else {
-        if (dc->tb_flags & IMM_FLAG) {
+        if (!dc->type_b || (dc->tb_flags & IMM_FLAG)) {
             tcg_gen_movi_tl(env_btaken, 1);
             tcg_gen_movi_tl(env_btarget, dc->pc);
             tcg_gen_add_tl(env_btarget, env_btarget, *(dec_alu_op_b(dc)));