qemu/target
Peter Maydell 1e32ee23cd target/arm: Move some TLBI insns to their own source file
target/arm/helper.c is very large and unwieldy.  One subset of code
that we can pull out into its own file is the cpreg arrays and
corresponding functions for the TLBI instructions.

Because these are instructions they are only relevant for TCG and we
can make the new file only be built for CONFIG_TCG.

In this commit we move the AArch32 instructions from:
 not_v7_cp_reginfo[]
 v7_cp_reginfo[]
 v7mp_cp_reginfo[]
 v8_cp_reginfo[]
into a new file target/arm/tcg/tlb-insns.c.

A few small functions are used both by functions we haven't yet moved
across and by functions we have already moved.  We temporarily make
these global with a prototype in cpregs.h; when the move of all TLBI
insns is complete these will return to being file-local.

For CONFIG_TCG, this is just moving code around.  For a KVM only
build, these cpregs will no longer be added to the cpregs hashtable
for the CPU.  However this should not be a behaviour change, because:
 * we never try to migration sync or otherwise include
   ARM_CP_NO_RAW cpregs
 * for migration we treat the kernel's list of system registers
   as the authoritative one, so these TLBI insns were never
   in it anyway
The no-tcg stub of define_tlb_insn_regs() therefore does nothing.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20241210160452.2427965-2-peter.maydell@linaro.org
2024-12-13 15:41:09 +00:00
..
alpha target/alpha: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
arm target/arm: Move some TLBI insns to their own source file 2024-12-13 15:41:09 +00:00
avr target/avr: Use explicit little-endian LD/ST API 2024-10-15 12:13:59 -03:00
hexagon target/hexagon: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
hppa target/hppa: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
i386 * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
loongarch target/loongarch: Set default NaN pattern explicitly 2024-12-11 15:31:05 +00:00
m68k target/m68k: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
microblaze target/microblaze: Set default NaN pattern explicitly 2024-12-11 15:31:04 +00:00
mips * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
openrisc target/openrisc: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
ppc * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
riscv target/riscv: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
rx target/rx: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
s390x target-arm queue: 2024-12-12 18:40:08 -05:00
sh4 target/sh4: Set default NaN pattern explicitly 2024-12-11 15:31:06 +00:00
sparc tcg: Reset free_temps before tcg_optimize 2024-12-12 18:45:39 -05:00
tricore target/tricore: Set default NaN pattern explicitly 2024-12-11 15:31:07 +00:00
xtensa * rust: better integration with clippy, rustfmt and rustdoc 2024-12-12 18:40:32 -05:00
Kconfig target/cris: Remove the deprecated CRIS target 2024-09-13 20:11:13 +02:00
meson.build target/cris: Remove the deprecated CRIS target 2024-09-13 20:11:13 +02:00