[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 00/33] Modernize tcg/ppc64
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v4 00/33] Modernize tcg/ppc64 |
Date: |
Thu, 4 Apr 2013 17:55:53 -0500 |
Changes v3-v4:
There were two problems, both related to the setcond opcode:
* The first was pre-existing: the current code gets 32-bit NE wrong,
failing to ignore the high 32-bits of the register. This problem
caused the rest of the patch set to be non-bisectable -- any non-
trivial change to code generation of the 32-bit opcodes tended to
expose this.
* The second was in the setcond rewrite, in that my logic was wrong
for the signed comparisons.
In the process of tracking all of this down, I split up the setcond
changes into three parts, and dropped the carry-bit optimization part
entirely. It may still be an improvement for the unsigned comparisons,
but since I have switched to MFOCRF it'll be harder to show a speedup
in practice.
Finally, one extra patch to avoid a regression in code generation when
insertting zero via deposit.
Tested with arm-test, sparc-test, and i386-softmmu nbench.
Tree updated at
git://github.com/rth7680/qemu.git tcg-ppc64
r~
Richard Henderson (33):
disas: Disassemble all ppc insns for the host
tcg-ppc64: Use TCGReg everywhere
tcg-ppc64: Introduce and use tcg_out_rlw
tcg-ppc64: Introduce and use tcg_out_ext32u
tcg-ppc64: Introduce and use tcg_out_shli64
tcg-ppc64: Introduce and use tcg_out_shri64
tcg-ppc64: Introduce and use TAI and SAI
tcg-ppc64: Fix setcond_i32
tcg-ppc64: Cleanup tcg_out_movi
tcg-ppc64: Rearrange integer constant constraints
tcg-ppc64: Improve constant add and sub ops.
tcg-ppc64: Allow constant first argument to sub
tcg-ppc64: Tidy or and xor patterns.
tcg-ppc64: Improve and_i32 with constant
tcg-ppc64: Improve and_i64 with constant
tcg-ppc64: Use automatic implementation of ext32u_i64
tcg-ppc64: Streamline qemu_ld/st insn selection
tcg-ppc64: Implement rotates
tcg-ppc64: Implement bswap16 and bswap32
tcg-ppc64: Implement bswap64
tcg-ppc64: Implement compound logicals
tcg-ppc64: Handle constant inputs for some compound logicals
tcg-ppc64: Implement deposit
tcg-ppc64: Use I constraint for mul
tcg-ppc64: Cleanup i32 constants to tcg_out_cmp
tcg-ppc64: Use TCGType throughout compares
tcg-ppc64: Use MFOCRF instead of MFCR
tcg-ppc64: Use ISEL for setcond
tcg-ppc64: Implement movcond
tcg-ppc64: Use getauxval for ISA detection
tcg-ppc64: Implement add2/sub2_i64
tcg-ppc64: Implement mulu2/muls2_i64
tcg-ppc64: Handle deposit of zero
configure | 18 +
disas.c | 1 +
tcg/ppc64/tcg-target.c | 1344 +++++++++++++++++++++++++++++++++---------------
tcg/ppc64/tcg-target.h | 62 +--
4 files changed, 968 insertions(+), 457 deletions(-)
--
1.8.1.4
- [Qemu-devel] [PATCH v4 00/33] Modernize tcg/ppc64,
Richard Henderson <=
- [Qemu-devel] [PATCH v4 01/33] disas: Disassemble all ppc insns for the host, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 03/33] tcg-ppc64: Introduce and use tcg_out_rlw, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 04/33] tcg-ppc64: Introduce and use tcg_out_ext32u, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 02/33] tcg-ppc64: Use TCGReg everywhere, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 06/33] tcg-ppc64: Introduce and use tcg_out_shri64, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 08/33] tcg-ppc64: Fix setcond_i32, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 05/33] tcg-ppc64: Introduce and use tcg_out_shli64, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 09/33] tcg-ppc64: Cleanup tcg_out_movi, Richard Henderson, 2013/04/04
- [Qemu-devel] [PATCH v4 10/33] tcg-ppc64: Rearrange integer constant constraints, Richard Henderson, 2013/04/04