[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 00/33] tcg-aarch64 improvements

From: Richard Henderson
Subject: [Qemu-devel] [PATCH v4 00/33] tcg-aarch64 improvements
Date: Sat, 14 Sep 2013 14:54:17 -0700

Changes since v3:
  * Using TCGType instead of bool for the ext variables.

  * Marginal tidying of the tcg_fmt_* functions to match fields names with the
    architecture document now that it's released.  In particular, the ext
    variables incoming to them have been renamed "sf".  I have not propagated
    that change all the way back up the call chain.

  * Split up the movi improvements into 3 separate patches.  I also fixed the
    bug therein that affected i386-softmmu booting.  I've also significantly
    improved the documentation in that function.

  * I came up with a significantly faster way to actually perform the MOVN
    check, although I didn't confuse the issue by actually implementing it,
    since it requires using the neon unit, and probably real hardware to see
    what kind of inter-unit slow down there is.  It's left as a comment.
    I actually suspect that the parallelism of the A57 is high enough to
    support performing 3 tests at once, deciding which of the 3 alternatives
    at once at the end.

  * Split up the movcond addition and setcond cleanup.  I did not find a
    problem in either patch, as suggested during the previous review.

  * Rebase vs head, 2d1fe18.

Tested bios boots of i386-softmmu, alpha-softmmu, sparc-softmmu.
Tested a full run of Paulo's sieve{32,64}.flat.  Takes around an
hour to run under the Foundation model.  Ouch.


Richard Henderson (33):
  tcg-aarch64: Change all ext variables to TCGType
  tcg-aarch64: Set ext based on TCG_OPF_64BIT
  tcg-aarch64: Don't handle mov/movi in tcg_out_op
  tcg-aarch64: Hoist common argument loads in tcg_out_op
  tcg-aarch64: Change enum aarch64_arith_opc to AArch64Insn
  tcg-aarch64: Merge enum aarch64_srr_opc with AArch64Insn
  tcg-aarch64: Remove the shift_imm parameter from tcg_out_cmp
  tcg-aarch64: Introduce tcg_fmt_Rdnm and tcg_fmt_Rdnm_lsl
  tcg-aarch64: Introduce tcg_fmt_Rdn_aimm
  tcg-aarch64: Implement mov with tcg_fmt_* functions
  tcg-aarch64: Handle constant operands to add, sub, and compare
  tcg-aarch64: Handle constant operands to and, or, xor
  tcg-aarch64: Support andc, orc, eqv, not
  tcg-aarch64: Handle zero as first argument to sub
  tcg-aarch64: Support movcond
  tcg-aarch64: Use tcg_fmt_Rdnm_cond for setcond
  tcg-aarch64: Support deposit
  tcg-aarch64: Support add2, sub2
  tcg-aarch64: Support muluh, mulsh
  tcg-aarch64: Support div, rem
  tcg-aarch64: Introduce tcg_fmt_Rd_uimm
  tcg-aarch64: Use MOVN in tcg_out_movi
  tcg-aarch64: Use ORRI in tcg_out_movi
  tcg-aarch64: Special case small constants in tcg_out_movi
  tcg-aarch64: Use adrp in tcg_out_movi
  tcg-aarch64: Avoid add with zero in tlb load
  tcg-aarch64: Pass return address to load/store helpers directly.
  tcg-aarch64: Use tcg_out_call for qemu_ld/st
  tcg-aarch64: Use symbolic names for branches
  tcg-aarch64: Implement tcg_register_jit
  tcg-aarch64: Reuse FP and LR in translated code
  tcg-aarch64: Introduce tcg_out_ldst_pair
  tcg-aarch64: Remove redundant CPU_TLB_ENTRY_BITS check

 include/exec/exec-all.h  |   11 -
 tcg/aarch64/tcg-target.c | 1352 ++++++++++++++++++++++++++++++----------------
 tcg/aarch64/tcg-target.h |   76 +--
 3 files changed, 940 insertions(+), 499 deletions(-)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]