mbox series

[v2,00/11] target/arm: Fix neon reg offsets

Message ID 20201030022618.785675-1-richard.henderson@linaro.org
Headers show
Series target/arm: Fix neon reg offsets | expand

Message

Richard Henderson Oct. 30, 2020, 2:26 a.m. UTC
Much of the existing usage of neon_reg_offset is broken for
big-endian hosts, as it computes the offset of the first
32-bit unit, not the offset of the entire vector register.

Fix this by separating out the different usages.  Make the
whole thing look a bit more like the aarch64 code.

Changes for v2:
  * Fix two tcg temp leaks.

r~

Richard Henderson (11):
  target/arm: Introduce neon_full_reg_offset
  target/arm: Move neon_element_offset to translate.c
  target/arm: Use neon_element_offset in neon_load/store_reg
  target/arm: Use neon_element_offset in vfp_reg_offset
  target/arm: Add read/write_neon_element32
  target/arm: Expand read/write_neon_element32 to all MemOp
  target/arm: Rename neon_load_reg32 to vfp_load_reg32
  target/arm: Add read/write_neon_element64
  target/arm: Rename neon_load_reg64 to vfp_load_reg64
  target/arm: Simplify do_long_3d and do_2scalar_long
  target/arm: Improve do_prewiden_3d

 target/arm/translate.c          | 153 ++++++++---
 target/arm/translate-neon.c.inc | 472 +++++++++++++++++---------------
 target/arm/translate-vfp.c.inc  | 341 ++++++++++-------------
 3 files changed, 516 insertions(+), 450 deletions(-)

Comments

Peter Maydell Oct. 30, 2020, 2:07 p.m. UTC | #1
On Fri, 30 Oct 2020 at 02:26, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> Much of the existing usage of neon_reg_offset is broken for

> big-endian hosts, as it computes the offset of the first

> 32-bit unit, not the offset of the entire vector register.

>

> Fix this by separating out the different usages.  Make the

> whole thing look a bit more like the aarch64 code.

>

> Changes for v2:

>   * Fix two tcg temp leaks.




Applied to target-arm.next, thanks.

-- PMM