mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 14:24:02 +08:00
target-arm: Fix IL bit reported for Thumb coprocessor traps
All Thumb coprocessor instructions are 32 bits, so the IL bit in the syndrome register should be set. Pass false to the syn_* function's is_16bit argument rather than s->thumb so we report the correct IL bit. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Sergey Fedorov <serge.fdrv@gmail.com> Message-id: 1454683067-16001-3-git-send-email-peter.maydell@linaro.org
This commit is contained in:
parent
fc05f4a62c
commit
4df3225930
@ -7184,19 +7184,19 @@ static int disas_coproc_insn(DisasContext *s, uint32_t insn)
|
||||
case 14:
|
||||
if (is64) {
|
||||
syndrome = syn_cp14_rrt_trap(1, 0xe, opc1, crm, rt, rt2,
|
||||
isread, s->thumb);
|
||||
isread, false);
|
||||
} else {
|
||||
syndrome = syn_cp14_rt_trap(1, 0xe, opc1, opc2, crn, crm,
|
||||
rt, isread, s->thumb);
|
||||
rt, isread, false);
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if (is64) {
|
||||
syndrome = syn_cp15_rrt_trap(1, 0xe, opc1, crm, rt, rt2,
|
||||
isread, s->thumb);
|
||||
isread, false);
|
||||
} else {
|
||||
syndrome = syn_cp15_rt_trap(1, 0xe, opc1, opc2, crn, crm,
|
||||
rt, isread, s->thumb);
|
||||
rt, isread, false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user