Revision 6a0d8a1d

b/target-arm/translate.c
6912 6912
            /* Second half of bl.  */
6913 6913
            offset = ((insn & 0x7ff) << 1) | 1;
6914 6914
            tmp = load_reg(s, 14);
6915
            tcg_gen_addi_i32(tmp, tmp, 14);
6915
            tcg_gen_addi_i32(tmp, tmp, offset);
6916 6916

  
6917 6917
            tmp2 = new_tmp();
6918 6918
            tcg_gen_movi_i32(tmp2, s->pc | 1);
......
8308 8308
            tmp = load_reg(s, 13);
8309 8309
            val = (insn & 0x7f) * 4;
8310 8310
            if (insn & (1 << 7))
8311
              val = -(int32_t)val;
8311
                val = -(int32_t)val;
8312 8312
            tcg_gen_addi_i32(tmp, tmp, val);
8313 8313
            store_reg(s, 13, tmp);
8314 8314
            break;
......
8529 8529

  
8530 8530
    case 15:
8531 8531
        if (disas_thumb2_insn(env, s, insn))
8532
          goto undef32;
8532
            goto undef32;
8533 8533
        break;
8534 8534
    }
8535 8535
    return;

Also available in: Unified diff