target-arm: Fix UNDEF cases in Thumb load/store
commit2a0308c54f8afb606d4185d59d502823be3c307b
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 10 Mar 2011 16:48:49 +0000 (10 16:48 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Tue, 22 Mar 2011 06:52:35 +0000 (22 07:52 +0100)
treec40d15681c1e8d51a5f2979438b1e1b6f9acbefc
parent30cb4cdec79dc2727f562edee36a4f3df4dfc23f
target-arm: Fix UNDEF cases in Thumb load/store

Decode of Thumb load/store was merging together the cases of 'bit 11==0'
(reg+reg LSL imm) and 'bit 11==1' (reg+imm). This happens to work for
valid instruction patterns but meant that we would not UNDEF for the
cases the architecture mandates that we must. Make the decode actually
look at bit 11 as well as [10..8] so that we UNDEF in the right places.

This change also removes what was a spurious unreachable 'case 8',
and correctly frees TCG temporaries on the illegal-insn codepaths.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm/translate.c