target/arm/translate: Synchronize with qemu

Backports a few other missing pieces from mainline qemu.
This commit is contained in:
Lioncash 2019-04-18 06:21:05 -04:00
parent 5b062dacf2
commit bf6dfeb175
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -11186,7 +11186,7 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)
gen_aa32_st32(s, tmp, addr, get_mem_index(s)); gen_aa32_st32(s, tmp, addr, get_mem_index(s));
tcg_temp_free_i32(tcg_ctx, tmp); tcg_temp_free_i32(tcg_ctx, tmp);
} }
if (insn & (1 << 21)) { if (wback) {
/* Base writeback. */ /* Base writeback. */
tcg_gen_addi_i32(tcg_ctx, addr, addr, offset - 4); tcg_gen_addi_i32(tcg_ctx, addr, addr, offset - 4);
store_reg(s, rn, addr); store_reg(s, rn, addr);
@ -11440,7 +11440,7 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)
if (loaded_base) { if (loaded_base) {
store_reg(s, rn, loaded_var); store_reg(s, rn, loaded_var);
} }
if (insn & (1 << 21)) { if (wback) {
/* Base register writeback. */ /* Base register writeback. */
if (insn & (1 << 24)) { if (insn & (1 << 24)) {
tcg_gen_addi_i32(tcg_ctx, addr, addr, 0-offset); tcg_gen_addi_i32(tcg_ctx, addr, addr, 0-offset);