target-arm: A64: Add SIMD ld/st multiple
commit72430bf5eb7f7309e705705af9798d13aa94e80d
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 31 Jan 2014 14:47:30 +0000 (31 14:47 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 31 Jan 2014 14:47:30 +0000 (31 14:47 +0000)
tree151e6daa6286afba37acd162469449705f26ad43
parent89e4a51ca9546a7bbe1998c4e3d4a3ac3a0c19be
target-arm: A64: Add SIMD ld/st multiple

This adds support support for the SIMD load/store
multiple category of instructions.

This also brings in a couple of helper functions for manipulating
sections of the SIMD registers:

  * do_vec_get - fetch value from a slice of a vector register
  * do_vec_set - set a slice of a vector register

which use vec_reg_offset for consistent processing of offsets in an
endian aware manner. There are also additional helpers:

  * do_vec_ld - load value into SIMD
  * do_vec_st - store value from SIMD

which load or store a slice of a vector register to memory.
These don't zero extend like the fp variants.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
target-arm/translate-a64.c