The driver here is the boilerplate I needed to write for the
recent lea opcode addition.
This eliminates the majority of the code duplication between
the _i32 and _i64 expanders. What remains are those expanders
that truly differ between the two widths, or that are only
present for one width.
Of course, due to touching most opcode expansion, I noticed a
few cleanups and improvements in the process.
Changes for v5:
- Export stuff from tcg-op.c to tcg-internal.h, allowing...
- Convert tcg-op-ldst.c entry points to tcg-op-def.h.inc.
r~
Richard Henderson (101):
include/qemu/compiler: Add QEMU_*_NONNULL attributes
include/qemu/compiler: Define QEMU_ALIAS
tcg: Annontate functions in tcg.h with QEMU_*_NONNULL
tcg: Annontate functions in tcg-op-mem.h with QEMU_*_NONNULL
tcg: Annontate functions in tcg-internal.h with QEMU_*_NONNULL
tcg: Use QEMU_ALIAS to define most tcg_gen_*_ptr
tcg: Use QEMU_*_NONULL with all tcg_gen_*_ptr
tcg: Prepare for easy temp lifetimes
tcg: Generic expansion of tcg_gen_mov_*
tcg: Generic expansion of tcg_gen_movi_*
tcg: Generic expansion of tcg_gen_discard_*
tcg: Generic expansion of tcg_gen_add_*
tcg: Generic expansion of tcg_gen_addi_*
tcg: Generic expansion of tcg_gen_sub_*
tcg: Generic expansion of tcg_gen_subi_*
tcg: Generic expansion of tcg_gen_neg_*
tcg: Generic expansion of tcg_gen_subfi_*
tcg: Generic expansion of tcg_gen_and_*
tcg: Generic expansion of tcg_gen_or_*
tcg: Generic expansion of tcg_gen_xor_*
tcg: Generic expansion of tcg_gen_shl_*
tcg: Generic expansion of tcg_gen_shr_*
tcg: Generic expansion of tcg_gen_sar_*
tcg: Generic expansion of tcg_gen_mul_*
tcg: Generic expansion of tcg_gen_shli_*
tcg: Generic expansion of tcg_gen_shri_*
tcg: Generic expansion of tcg_gen_sari_*
tcg: Generic expansion of tcg_gen_andi_*
tcg: Generic expansion of tcg_gen_ori_*
tcg: Generic expansion of tcg_gen_xori_*
tcg: Generic expansion of tcg_gen_muli_*
tcg: Generic expansion of tcg_gen_not_*
tcg: Drop division helpers
tcg: Generic expansion of tcg_gen_div_*
tcg: Generic expansion of tcg_gen_rem_*
tcg: Generic expansion of tcg_gen_divu_*
tcg: Generic expansion of tcg_gen_remu_*
tcg: Generic expansion of tcg_gen_andc_*
tcg: Generic expansion of tcg_gen_eqv_*
tcg: Generic expansion of tcg_gen_nand_*
tcg: Generic expansion of tcg_gen_nor_*
tcg: Generic expansion of tcg_gen_orc_*
tcg: Generic expansion of tcg_gen_brcond_*
tcg: Generic expansion of tcg_gen_brcondi_*
tcg: Generic expansion of tcg_gen_setcond_*
tcg: Generic expansion of tcg_gen_setcondi_*
tcg: Generic expansion of tcg_gen_negsetcond_*
tcg: Generic expansion of tcg_gen_negsetcondi_*
tcg: Generic expansion of tcg_gen_movcond_*
tcg: Split out tcg_gen_ext{rl,rh,s,u}
tcg: Generic expansion of tcg_gen_clz_*
tcg: Use signed integer for tcg_gen_{clz,ctz}i_{i32,i64}
tcg: Generic expansion of tcg_gen_clzi_*
tcg: Generic expansion of tcg_gen_ctpop_*
tcg: Generic expansion of tcg_gen_ctz_*
tcg: Generic expansion of tcg_gen_ctzi_*
tcg: Generic expansion of tcg_gen_clrsb_*
tcg: Generic expansion of tcg_gen_rotl_*
tcg: Generic expansion of tcg_gen_rotr_*
tcg: Generic expansion of tcg_gen_rotri_*
tcg: Generic expansion of tcg_gen_rotli_*
tcg: Generic expansion of tcg_gen_deposit_*
tcg: Generic expansion of tcg_gen_extract_*
tcg: Generic expansion of tcg_gen_sextract_*
tcg: Generic expansion of tcg_gen_deposit_z_*
tcg: Generic expansion of tcg_gen_ext8s_*
tcg: Generic expansion of tcg_gen_ext8u_*
tcg: Generic expansion of tcg_gen_ext16s_*
tcg: Generic expansion of tcg_gen_ext16u_*
tcg: Generic expansion of tcg_gen_ext_*
tcg: Generic expansion of tcg_gen_smin_*
tcg: Generic expansion of tcg_gen_smax_*
tcg: Generic expansion of tcg_gen_umin_*
tcg: Generic expansion of tcg_gen_umax_*
tcg: Generic expansion of tcg_gen_abs_*
tcg: Generic expansion of tcg_gen_ussub_*
tcg: Use umax in ussub if available
tcg: Generic expansion of tcg_gen_extract2_*
tcg: Generic expansion of tcg_gen_addcio_*
tcg: Generic expansion of tcg_gen_add2_*
tcg: Generic expansion of tcg_gen_sub2_*
tcg: Generic expansion of tcg_gen_mulu2_*
tcg: Generic expansion of tcg_gen_muls2_*
tcg: Use unsigned for flags for bswap and revbit operations
tcg: Generic expansion of tcg_gen_bswap16_*
tcg: Split out gen_bitswap
tcg: Generic expansion of tcg_gen_revbit8_*
tcg: Generic expansion of tcg_gen_ld_*
tcg: Generic expansion of tcg_gen_ld8s_*
tcg: Generic expansion of tcg_gen_ld8u_*
tcg: Generic expansion of tcg_gen_ld16s_*
tcg: Generic expansion of tcg_gen_ld16u_*
tcg: Generic expansion of tcg_gen_st_*
tcg: Generic expansion of tcg_gen_st8_*
tcg: Generic expansion of tcg_gen_st16_*
tcg: Generic expansion of tcg_gen_dup_*
tcg: Generic expansion of tcg_gen_qemu_ld_chk
tcg: Generic expansion of tcg_gen_qemu_st_chk
tcg: Generic expansion of tcg_gen_{non}atomic_qemu_cmpxchg_chk
tcg: Generic expansion of remaining atomic operations
tcg: Annontate functions in tcg-op-common.h with QEMU_*_NONNULL
accel/tcg/tcg-runtime.h | 10 -
include/qemu/compiler.h | 15 +
include/tcg/tcg-op-common.h | 637 ++---
include/tcg/tcg-op-mem.h | 36 +-
include/tcg/tcg-temp-internal.h | 2 +
include/tcg/tcg.h | 61 +-
tcg/tcg-internal.h | 160 +-
include/tcg/tcg-op-def.h.inc | 110 +
accel/tcg/tcg-runtime.c | 44 -
tcg/tcg-op-gvec.c | 41 -
tcg/tcg-op-ldst.c | 729 ++---
tcg/tcg-op.c | 2988 +++++++-------------
tcg/tcg.c | 4 +
target/ppc/translate/fixedpoint-impl.c.inc | 4 +-
14 files changed, 1784 insertions(+), 3057 deletions(-)
create mode 100644 include/tcg/tcg-op-def.h.inc
--
2.53.0