unicorn/qemu
Peter Maydell 7265161108
target/arm: Add helpers for VFP register loads and stores
The current VFP code has two different idioms for
loading and storing from the VFP register file:
 1 using the gen_mov_F0_vreg() and similar functions,
   which load and store to a fixed set of TCG globals
   cpu_F0s, CPU_F0d, etc
 2 by direct calls to tcg_gen_ld_f64() and friends

We want to phase out idiom 1 (because the use of the
fixed globals is a relic of a much older version of TCG),
but idiom 2 is quite longwinded:
  tcg_gen_ld_f64(tmp, cpu_env, vfp_reg_offset(true, reg))
requires us to specify the 64-bitness twice, once in
the function name and once by passing 'true' to
vfp_reg_offset(). There's no guard against accidentally
passing the wrong flag.

Instead, let's move to a convention of accessing 64-bit
registers via the existing neon_load_reg64() and
neon_store_reg64(), and provide new neon_load_reg32()
and neon_store_reg32() for the 32-bit equivalents.

Implement the new functions and use them in the code in
translate-vfp.inc.c. We will convert the rest of the VFP
code as we do the decodetree conversion in subsequent
commits.

Backports commit 160f3b64c5cc4c8a09a1859edc764882ce6ad6bf from qemu
2019-06-13 17:01:59 -04:00
..
accel tcg: Fix typos in helper_gvec_sar{8,32,64}v 2019-06-13 16:09:16 -04:00
crypto
default-configs
docs
fpu
hw target/i386: Use env_cpu, env_archcpu 2019-06-12 11:46:35 -04:00
include cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-13 15:34:28 -04:00
qapi
qobject
qom cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-13 15:34:28 -04:00
scripts decodetree: Fix comparison of Field 2019-06-13 16:17:56 -04:00
target target/arm: Add helpers for VFP register loads and stores 2019-06-13 17:01:59 -04:00
tcg cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-13 15:34:28 -04:00
util
aarch64.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
aarch64eb.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
accel.c
arm.h target/arm: Use tcg_gen_gvec_bitsel 2019-06-13 16:12:56 -04:00
armeb.h target/arm: Use tcg_gen_gvec_bitsel 2019-06-13 16:12:56 -04:00
CODING_STYLE
configure
COPYING
COPYING.LIB
cpus.c
exec.c
gen_all_header.sh
glib_compat.c
HACKING
header_gen.py target/arm: Use tcg_gen_gvec_bitsel 2019-06-13 16:12:56 -04:00
ioport.c
LICENSE
m68k.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
Makefile
Makefile.objs
Makefile.target
memory_ldst.inc.c
memory_mapping.c
memory.c
mips64.h target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
mips64el.h target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
mips.h target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
mipsel.h target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
powerpc.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
qemu-timer.c
riscv32.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
riscv64.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
rules.mak
sparc64.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
sparc.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00
unicorn_common.h
VERSION
vl.c
vl.h
x86_64.h tcg: Add support for vector compare select 2019-05-24 18:21:13 -04:00