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