target-arm queue:
* add missing condexec updates when emulating architectural breakpoints and coprocessor access checks in Thumb translation (could in theory cause problems when these happened inside a Thumb IT block and an exception was taken) * arm_gic: correctly restore nested IRQ priority -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCAAGBQJWTc7BAAoJEDwlJe0UNgzeiMQP/idTURZycJQcn4TPIOtBKM6b t6TfYdrG7fBqwqjyb97V93Zg4zgt54CiW5W00G9Oh5cxmglZISWI+Jq8MvJL3BWw dEJk1lXbL67XIqIW/bOSIpZkVpYUxzZXipZ0J/WKPE+hXKGCRIshntTpwRbg4NMB JARHQ83TOXqMGft6AwsgzKadHiPSgqhqIJ1A+wMB4guzIha0ttrcKli7+psy5K/C nQlKf+7GJZHOkoK7BM8QsH/Qf1oyTr+16miAOiHvZmg9hnGDIZ7J8tpV5fR3Un9Q uWgwBzZyUzIYE7pnlkc6aVDPRv0ALoykaIJmfLcAmpHej6AnSNiJ2/tBFQWQ25U5 ekPfi46aRwq1mPDUxoat3itWbrMMa2Cph5b4EOpSb59X38DaDgVIBRHM0G8MywGr BCmzwe9UYBxeRfwpBToHBqokI26oCb8GvYONyJ3KtORmPgKQ9RJUw7dnMhSf5eWR CXaI1+ArF7gVoBszNYEgo3iavg9xIWNG1PxFcCPvzLP4pMXGUDcxeXrENRiRJaBr yUzjBl+Elo0f2QuEYaECQrEFJW672vleFmjz14AW/mcajxd/5a6x+RQk+82oog5o tnUY54nlb02h0nV5qLEnR7wzaIVr4GcY5QZNNJN0k2/drdZyivHlXCUbSSaD54+K anJFjhBYYKAM0A9wDE7h =nAO5 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20151119' into staging target-arm queue: * add missing condexec updates when emulating architectural breakpoints and coprocessor access checks in Thumb translation (could in theory cause problems when these happened inside a Thumb IT block and an exception was taken) * arm_gic: correctly restore nested IRQ priority # gpg: Signature made Thu 19 Nov 2015 13:29:37 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" # gpg: aka "Peter Maydell <pmaydell@gmail.com>" # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" * remotes/pmaydell/tags/pull-target-arm-20151119: target-arm: Update condexec before arch BP check in AA32 translation target-arm: Update condexec before CP access check in AA32 translation hw/arm_gic: Correctly restore nested irq priority Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
c601a244a4
@ -254,9 +254,9 @@ static void gic_activate_irq(GICState *s, int cpu, int irq)
|
||||
int bitno = preemption_level % 32;
|
||||
|
||||
if (gic_has_groups(s) && GIC_TEST_GROUP(irq, (1 << cpu))) {
|
||||
s->nsapr[regno][cpu] &= (1 << bitno);
|
||||
s->nsapr[regno][cpu] |= (1 << bitno);
|
||||
} else {
|
||||
s->apr[regno][cpu] &= (1 << bitno);
|
||||
s->apr[regno][cpu] |= (1 << bitno);
|
||||
}
|
||||
|
||||
s->running_priority[cpu] = prio;
|
||||
|
@ -7210,6 +7210,7 @@ static int disas_coproc_insn(DisasContext *s, uint32_t insn)
|
||||
break;
|
||||
}
|
||||
|
||||
gen_set_condexec(s);
|
||||
gen_set_pc_im(s, s->pc - 4);
|
||||
tmpptr = tcg_const_ptr(ri);
|
||||
tcg_syn = tcg_const_i32(syndrome);
|
||||
@ -11373,6 +11374,7 @@ void gen_intermediate_code(CPUARMState *env, TranslationBlock *tb)
|
||||
QTAILQ_FOREACH(bp, &cs->breakpoints, entry) {
|
||||
if (bp->pc == dc->pc) {
|
||||
if (bp->flags & BP_CPU) {
|
||||
gen_set_condexec(dc);
|
||||
gen_set_pc_im(dc, dc->pc);
|
||||
gen_helper_check_breakpoints(cpu_env);
|
||||
/* End the TB early; it's likely not going to be executed */
|
||||
|
Loading…
Reference in New Issue
Block a user