target/arm: Convert the VFP load/store multiple insns to decodetree
commitfa288de272c5c8a66d5eb683b123706a52bc7ad6
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 11 Jun 2019 15:39:45 +0000 (11 16:39 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 13 Jun 2019 14:14:04 +0000 (13 15:14 +0100)
tree1e618f040e9883f78901f24990b451274d120a1e
parent79b02a3b5231c5b8cd31e50cd549968dd0a05c49
target/arm: Convert the VFP load/store multiple insns to decodetree

Convert the VFP load/store multiple insns to decodetree.
This includes tightening up the UNDEF checking for pre-VFPv3
CPUs which only have D0-D15 : they now UNDEF for any access
to D16-D31, not merely when the smallest register in the
transfer list is in D16-D31.

This conversion does not try to share code between the single
precision and the double precision versions; this looks a bit
duplicative of code, but it leaves the door open for a future
refactoring which gets rid of the use of the "F0" registers
by inlining the various functions like gen_vfp_ld() and
gen_mov_F0_reg() which are hiding "if (dp) { ... } else { ... }"
conditionalisation.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
target/arm/translate-vfp.inc.c
target/arm/translate.c
target/arm/vfp.decode