qemu-e2k/target/riscv
Richard Henderson a9814e3e08 target/riscv: Minimize the calls to decode_save_opc
The set of instructions that require decode_save_opc for
unwinding is really fairly small -- only insns that can
raise ILLEGAL_INSN at runtime.  This includes CSR, anything
that uses a *new* fp rounding mode, and many privileged insns.

Since unwind info is stored as the difference from the
previous insn, storing a 0 for most insns minimizes the
size of the unwind info.

Booting a debian kernel image to the missing rootfs panic yields

- gen code size       22226819/1026886656
+ gen code size       21601907/1026886656

on 41k TranslationBlocks, a savings of 610kB or a bit less than 3%.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20220604231004.49990-4-richard.henderson@linaro.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2022-07-03 10:03:20 +10:00
..
insn_trans target/riscv: Minimize the calls to decode_save_opc 2022-07-03 10:03:20 +10:00
arch_dump.c
bitmanip_helper.c target/riscv: rvk: add support for zbkx extension 2022-04-29 10:47:45 +10:00
common-semi-target.h semihosting: Split out common-semi-target.h 2022-06-28 04:35:07 +05:30
cpu_bits.h target/riscv: rvk: add CSR support for Zkr 2022-04-29 10:47:45 +10:00
cpu_helper.c semihosting: Return void from do_common_semihosting 2022-06-28 04:35:07 +05:30
cpu_user.h
cpu-param.h Normalize header guard symbol definition 2022-05-11 16:50:26 +02:00
cpu.c target/riscv: Don't expose the CPU properties on names CPUs 2022-06-10 09:31:43 +10:00
cpu.h target/riscv: rvv: Add tail agnostic for vv instructions 2022-06-10 09:31:42 +10:00
crypto_helper.c target/riscv: rvk: add support for zksed/zksh extension 2022-04-29 10:47:45 +10:00
csr.c target/riscv: Fix csr number based privilege checking 2022-05-24 10:38:50 +10:00
debug.c target/riscv/debug.c: keep experimental rv128 support working 2022-06-10 09:31:42 +10:00
debug.h target/riscv: csr: Hook debug CSR read/write 2022-04-22 10:35:16 +10:00
fpu_helper.c
gdbstub.c
helper.h target/riscv: rvk: add support for zksed/zksh extension 2022-04-29 10:47:45 +10:00
insn16.decode
insn32.decode target/riscv: rvk: add support for zksed/zksh extension 2022-04-29 10:47:45 +10:00
instmap.h
internals.h target/riscv: rvv: Add tail agnostic for vx, vvm, vxm instructions 2022-06-10 09:31:42 +10:00
Kconfig
kvm_riscv.h
kvm-stub.c
kvm.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
m128_helper.c
machine.c target/riscv: machine: Add debug state description 2022-04-22 10:35:16 +10:00
meson.build target/riscv: rvk: add support for zknd/zkne extension in RV32 2022-04-29 10:47:45 +10:00
monitor.c target/riscv: Fix incorrect PTE merge in walk_pte 2022-04-29 10:47:46 +10:00
op_helper.c target/riscv: rvk: add CSR support for Zkr 2022-04-29 10:47:45 +10:00
pmp.c target/riscv/pmp: fix NAPOT range computation overflow 2022-04-22 10:35:16 +10:00
pmp.h target/riscv: rvk: add CSR support for Zkr 2022-04-29 10:47:45 +10:00
sbi_ecall_interface.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
trace-events
trace.h
translate.c target/riscv: Minimize the calls to decode_save_opc 2022-07-03 10:03:20 +10:00
vector_helper.c target/riscv: rvv: Add tail agnostic for vector permutation instructions 2022-06-10 09:31:42 +10:00
XVentanaCondOps.decode