summary refs log tree commit diff stats
path: root/hw/intc/omap_intc.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-05-29 11:29:00 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-05-29 11:29:00 +0100
commit3960c336ad96c2183549c8bf32bbff93ecda7ea4 (patch)
tree37e24b078323daea27d996655cd7e5dd3b19ea66 /hw/intc/omap_intc.c
parentd7c2e2db28eb7e8f2ed7467fa2f2c59026b206d1 (diff)
downloadfocaccia-qemu-3960c336ad96c2183549c8bf32bbff93ecda7ea4.tar.gz
focaccia-qemu-3960c336ad96c2183549c8bf32bbff93ecda7ea4.zip
target-arm: Avoid buffer overrun on UNPREDICTABLE ldrd/strd
A LDRD or STRD where rd is not an even number is UNPREDICTABLE.
We were letting this fall through, which is OK unless rd is 15,
in which case we would attempt to do a load_reg or store_reg
to a nonexistent r16 for the second half of the double-word.
Catch the odd-numbered-rd cases and UNDEF them instead.

To do this we rearrange the structure of the code a little
so we can put the UNDEF catches at the top before we've
allocated TCG temporaries.

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1431348973-21315-1-git-send-email-peter.maydell@linaro.org
Diffstat (limited to 'hw/intc/omap_intc.c')
0 files changed, 0 insertions, 0 deletions