target/arm: Fix PC test for LDM (exception return)

Found by inspection: Rn is the base register against which the
load began; I is the register within the mask being processed.
The exception return should of course be processed from the loaded PC.

Backports commit 9d090d17234058f55c3c439d285db78c94d7d4de from qemu
This commit is contained in:
Richard Henderson 2019-03-05 22:27:26 -05:00 committed by Lioncash
parent 7a6f61057b
commit fa70a2bc69
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -10800,7 +10800,7 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
} else if (i == rn) {
loaded_var = tmp;
loaded_base = 1;
} else if (rn == 15 && exc_return) {
} else if (i == 15 && exc_return) {
store_pc_exc_ret(s, tmp);
} else {
store_reg_from_load(s, i, tmp);