[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-4.1 v3 00/17] tcg/ppc: Add vector opcodes
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH for-4.1 v3 00/17] tcg/ppc: Add vector opcodes |
Date: |
Tue, 19 Mar 2019 10:21:09 -0700 |
Changes since v2:
* Several generic tcg patches to improve dup vs dupi vs dupm.
In particular, if a global temp (like guest r10) is not in
a host register, we should duplicate from memory instead of
loading to an integer register, spilling to stack, loading
to a vector register, and then duplicating.
* I have more confidence that 32-bit ppc host should work
this time around. No testing on that front yet, but I've
unified some code sequences with 64-bit ppc host.
* Base altivec now supports V128 only. Moved V64 support to
Power7 (v2.06), which has 64-bit load/store.
* Dropped support for 64-bit vector multiply using Power8.
The expansion was too large compared to using integer regs.
r~
Richard Henderson (17):
target/arm: Fill in .opc for cmtst_op
tcg: Assert fixed_reg is read-only
tcg: Return bool success from tcg_out_mov
tcg: Support cross-class moves without instruction support
tcg: Allow add_vec, sub_vec, neg_vec, not_vec to be expanded
tcg: Promote tcg_out_{dup,dupi}_vec to backend interface
tcg: Manually expand INDEX_op_dup_vec
tcg: Add tcg_out_dupm_vec to the backend interface
tcg/i386: Implement tcg_out_dupm_vec
tcg/aarch64: Implement tcg_out_dupm_vec
tcg: Add INDEX_op_dup_mem_vec
tcg/ppc: Initial backend support for Altivec
tcg/ppc: Support vector shift by immediate
tcg/ppc: Support vector multiply
tcg/ppc: Update vector support to v2.06
tcg/ppc: Update vector support to v2.07
tcg/ppc: Update vector support to v3.00
tcg/ppc/tcg-target.h | 36 +-
tcg/ppc/tcg-target.opc.h | 11 +
tcg/tcg-op.h | 1 +
tcg/tcg-opc.h | 1 +
target/arm/translate.c | 4 +
tcg/aarch64/tcg-target.inc.c | 70 ++-
tcg/arm/tcg-target.inc.c | 7 +-
tcg/i386/tcg-target.inc.c | 78 ++-
tcg/mips/tcg-target.inc.c | 3 +-
tcg/ppc/tcg-target.inc.c | 1077 +++++++++++++++++++++++++++++++---
tcg/riscv/tcg-target.inc.c | 5 +-
tcg/s390/tcg-target.inc.c | 3 +-
tcg/sparc/tcg-target.inc.c | 3 +-
tcg/tcg-op-gvec.c | 88 +--
tcg/tcg-op-vec.c | 60 +-
tcg/tcg.c | 252 ++++++--
tcg/tci/tcg-target.inc.c | 3 +-
17 files changed, 1482 insertions(+), 220 deletions(-)
create mode 100644 tcg/ppc/tcg-target.opc.h
--
2.17.2
- [Qemu-devel] [PATCH for-4.1 v3 00/17] tcg/ppc: Add vector opcodes,
Richard Henderson <=
- [Qemu-devel] [PATCH for-4.1 v3 01/17] target/arm: Fill in .opc for cmtst_op, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 02/17] tcg: Assert fixed_reg is read-only, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 04/17] tcg: Support cross-class moves without instruction support, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 03/17] tcg: Return bool success from tcg_out_mov, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 05/17] tcg: Allow add_vec, sub_vec, neg_vec, not_vec to be expanded, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 06/17] tcg: Promote tcg_out_{dup, dupi}_vec to backend interface, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 08/17] tcg: Add tcg_out_dupm_vec to the backend interface, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 09/17] tcg/i386: Implement tcg_out_dupm_vec, Richard Henderson, 2019/03/19
- [Qemu-devel] [PATCH for-4.1 v3 07/17] tcg: Manually expand INDEX_op_dup_vec, Richard Henderson, 2019/03/19