qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] a85833: tcg: Move USE_DIRECT_JUMP discriminat


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] a85833: tcg: Move USE_DIRECT_JUMP discriminator to tcg/cpu...
Date: Fri, 08 Sep 2017 04:56:43 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: a85833933628384d74ec412024d55cf012640287
      
https://github.com/qemu/qemu/commit/a85833933628384d74ec412024d55cf012640287
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M accel/tcg/translate-all.c
    M include/exec/exec-all.h
    M tcg/aarch64/tcg-target.h
    M tcg/aarch64/tcg-target.inc.c
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.h
    M tcg/mips/tcg-target.h
    M tcg/mips/tcg-target.inc.c
    M tcg/ppc/tcg-target.h
    M tcg/ppc/tcg-target.inc.c
    M tcg/s390/tcg-target.h
    M tcg/sparc/tcg-target.h
    M tcg/sparc/tcg-target.inc.c
    M tcg/tcg.h
    M tcg/tci/tcg-target.h

  Log Message:
  -----------
  tcg: Move USE_DIRECT_JUMP discriminator to tcg/cpu/tcg-target.h

Replace the USE_DIRECT_JUMP ifdef with a TCG_TARGET_HAS_direct_jump
boolean test.  Replace the tb_set_jmp_target1 ifdef with an unconditional
function tb_target_set_jmp_target.

While we're touching all backends, add a parameter for tb->tc_ptr;
we're going to need it shortly for some backends.

Move tb_set_jmp_target and tb_add_jump from exec-all.h to cpu-exec.c.

This opens the possibility for TCG_TARGET_HAS_direct_jump to be
a runtime decision -- based on host cpu capabilities, the size of
code_gen_buffer, or a future debugging switch.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 659ef5cbb893872d25e9d95191cc23b16546c8a1
      
https://github.com/qemu/qemu/commit/659ef5cbb893872d25e9d95191cc23b16546c8a1
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/aarch64/tcg-target.h
    M tcg/aarch64/tcg-target.inc.c
    M tcg/arm/tcg-target.h
    M tcg/arm/tcg-target.inc.c
    M tcg/i386/tcg-target.h
    M tcg/i386/tcg-target.inc.c
    M tcg/mips/tcg-target.h
    M tcg/mips/tcg-target.inc.c
    M tcg/ppc/tcg-target.h
    M tcg/ppc/tcg-target.inc.c
    M tcg/s390/tcg-target.h
    M tcg/s390/tcg-target.inc.c
    M tcg/sparc/tcg-target.inc.c
    R tcg/tcg-be-ldst.h
    R tcg/tcg-be-null.h
    A tcg/tcg-ldst.inc.c
    M tcg/tcg.c
    M tcg/tcg.h
    M tcg/tci/tcg-target.h
    M tcg/tci/tcg-target.inc.c

  Log Message:
  -----------
  tcg: Rearrange ldst label tracking

Dispense with TCGBackendData, as it has never been used for more than
holding a single pointer.  Use a define in the cpu/tcg-target.h to
signal requirement for TCGLabelQemuLdst, so that we can drop the no-op
tcg-be-null.h stubs.  Rename tcg-be-ldst.h to tcg-ldst.inc.c.

Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 57a269469dbf70013dab3a176e1735636010a772
      
https://github.com/qemu/qemu/commit/57a269469dbf70013dab3a176e1735636010a772
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M accel/tcg/translate-all.c
    A tcg/tcg-pool.inc.c
    M tcg/tcg.c
    M tcg/tcg.h

  Log Message:
  -----------
  tcg: Infrastructure for managing constant pools

A new shared header tcg-pool.inc.c adds new_pool_label,
for registering a tcg_target_ulong to be emitted after
the generated code, plus relocation data to install a
pointer to the data.

A new pointer is added to the TCGContext, so that we
dump the constant pool as data, not code.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 4e45f23943c0bb91588627de3801826546155ad8
      
https://github.com/qemu/qemu/commit/4e45f23943c0bb91588627de3801826546155ad8
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/i386/tcg-target.h
    M tcg/i386/tcg-target.inc.c

  Log Message:
  -----------
  tcg/i386: Store out-of-range call targets in constant pool

Already it saves 2 bytes per call, but also the constant pool
entry may well be shared across multiple calls.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 829e1376d94009a7ccacc0535bffcc679f7bb507
      
https://github.com/qemu/qemu/commit/829e1376d94009a7ccacc0535bffcc679f7bb507
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.h
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Introduce TCG_REG_TB

Signed-off-by: Richard Henderson <address@hidden>


  Commit: e692a3492d04500355bcf23575eed7cf137b38d5
      
https://github.com/qemu/qemu/commit/e692a3492d04500355bcf23575eed7cf137b38d5
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Fix sign of patch_reloc addend

We were passing in -2 instead of +2, but then ignoring
the actual contents of addend in the calculation.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 28eef8aaece5e83df4568d9842ab9611ec130b2c
      
https://github.com/qemu/qemu/commit/28eef8aaece5e83df4568d9842ab9611ec130b2c
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M include/elf.h
    M tcg/s390/tcg-target.h
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Use constant pool for movi

Split out maybe_out_small_movi for use with other operations
that want to add to the constant pool.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: bdcd5d1926a7ae42c060efdcaa15074930a92ebb
      
https://github.com/qemu/qemu/commit/bdcd5d1926a7ae42c060efdcaa15074930a92ebb
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Use constant pool for andi

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 4046d9ca04728ca3ad0617082994d1f44c7d6adb
      
https://github.com/qemu/qemu/commit/4046d9ca04728ca3ad0617082994d1f44c7d6adb
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Use constant pool for ori

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 5bf67a9217a31512f35b036924e1db1baf2f9ebf
      
https://github.com/qemu/qemu/commit/5bf67a9217a31512f35b036924e1db1baf2f9ebf
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Use constant pool for xori

Signed-off-by: Richard Henderson <address@hidden>


  Commit: a534bb15f30ff7e420434b3e5746bcad595c5429
      
https://github.com/qemu/qemu/commit/a534bb15f30ff7e420434b3e5746bcad595c5429
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/s390/tcg-target.inc.c

  Log Message:
  -----------
  tcg/s390: Use constant pool for cmpi

Also use CHI/CGHI for 16-bit signed constants.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 55129955e92ec164ee2d778f20070dc214109bc6
      
https://github.com/qemu/qemu/commit/55129955e92ec164ee2d778f20070dc214109bc6
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/aarch64/tcg-target.h
    M tcg/aarch64/tcg-target.inc.c

  Log Message:
  -----------
  tcg/aarch64: Use constant pool for movi

Signed-off-by: Richard Henderson <address@hidden>


  Commit: ab20bdc11624837bd0c8aea83c603b66f0406e8b
      
https://github.com/qemu/qemu/commit/ab20bdc11624837bd0c8aea83c603b66f0406e8b
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/sparc/tcg-target.inc.c

  Log Message:
  -----------
  tcg/sparc: Introduce TCG_REG_TB

Signed-off-by: Richard Henderson <address@hidden>


  Commit: e9823b4c3347370414b63010ec4a2a4754e4abb5
      
https://github.com/qemu/qemu/commit/e9823b4c3347370414b63010ec4a2a4754e4abb5
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/sparc/tcg-target.h
    M tcg/sparc/tcg-target.inc.c

  Log Message:
  -----------
  tcg/sparc: Use constant pool for movi

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 647ab96aaf5defeb138e48d610f7f633c587b40d
      
https://github.com/qemu/qemu/commit/647ab96aaf5defeb138e48d610f7f633c587b40d
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Improve tlb load for armv7

Use UBFX to avoid limitation on CPU_TLB_BITS.  Since we're dropping
the initial shift, we need to replace the page masking.  We can use
MOVW+BIC to do this without shifting.  The result is the same size
as the armv6 path with one less conditional instruction.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 95ede84f4de18747d03d79c148013cff99acd60b
      
https://github.com/qemu/qemu/commit/95ede84f4de18747d03d79c148013cff99acd60b
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Tighten tlb indexing offset test

We are not going to use ldrd for loading the comparator
for 32-bit guests, so don't limit cmp_off to 8 bits then.
This eliminates one insn in the tlb load for some guests.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 150706163748ec45458b6fc902581572cfdc111c
      
https://github.com/qemu/qemu/commit/150706163748ec45458b6fc902581572cfdc111c
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Code rearrangement

Move constants before all of the functions.
Move tcg_out_<format> functions before all
of the others.  No functional change.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 2a8ab93c6bd459ff3cf3fe8978cf733a7dbd3080
      
https://github.com/qemu/qemu/commit/2a8ab93c6bd459ff3cf3fe8978cf733a7dbd3080
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Extract INSN_NOP

We'll want this for tcg_out_nop_fill.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 880ad9626c37886c3f17f782916675baf1eb8a98
      
https://github.com/qemu/qemu/commit/880ad9626c37886c3f17f782916675baf1eb8a98
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.h
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Use constant pool for movi

Signed-off-by: Richard Henderson <address@hidden>


  Commit: afe74dbd6a58031741b68e99843c1f1d390996b2
      
https://github.com/qemu/qemu/commit/afe74dbd6a58031741b68e99843c1f1d390996b2
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/arm/tcg-target.inc.c

  Log Message:
  -----------
  tcg/arm: Use constant pool for call

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 5964fca8a12c39ec99705e3d222f07e33038e4ad
      
https://github.com/qemu/qemu/commit/5964fca8a12c39ec99705e3d222f07e33038e4ad
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/ppc/tcg-target.inc.c

  Log Message:
  -----------
  tcg/ppc: Change TCG_REG_RA to TCG_REG_TB

At this point the conversion is a wash.  Loading of TB+ofs is
smaller, but the actual return address from exit_tb is larger.
There are a few more insns required to transition between TBs.

But the expectation is that accesses to the constant pool will
on the whole be smaller.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 77bfc7c0b442f1cee5da5706f4de429a526ddac5
      
https://github.com/qemu/qemu/commit/77bfc7c0b442f1cee5da5706f4de429a526ddac5
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/ppc/tcg-target.inc.c

  Log Message:
  -----------
  tcg/ppc: Look for shifted constants

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 53c89efd02cef626040165cc8f06b5cf2c15355d
      
https://github.com/qemu/qemu/commit/53c89efd02cef626040165cc8f06b5cf2c15355d
  Author: Richard Henderson <address@hidden>
  Date:   2017-09-07 (Thu, 07 Sep 2017)

  Changed paths:
    M tcg/ppc/tcg-target.h
    M tcg/ppc/tcg-target.inc.c

  Log Message:
  -----------
  tcg/ppc: Use constant pool for movi

Signed-off-by: Richard Henderson <address@hidden>


  Commit: b3a1179f570b10b7a24a546f7a0dfdf78350d094
      
https://github.com/qemu/qemu/commit/b3a1179f570b10b7a24a546f7a0dfdf78350d094
  Author: Peter Maydell <address@hidden>
  Date:   2017-09-08 (Fri, 08 Sep 2017)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M accel/tcg/translate-all.c
    M include/elf.h
    M include/exec/exec-all.h
    M tcg/aarch64/tcg-target.h
    M tcg/aarch64/tcg-target.inc.c
    M tcg/arm/tcg-target.h
    M tcg/arm/tcg-target.inc.c
    M tcg/i386/tcg-target.h
    M tcg/i386/tcg-target.inc.c
    M tcg/mips/tcg-target.h
    M tcg/mips/tcg-target.inc.c
    M tcg/ppc/tcg-target.h
    M tcg/ppc/tcg-target.inc.c
    M tcg/s390/tcg-target.h
    M tcg/s390/tcg-target.inc.c
    M tcg/sparc/tcg-target.h
    M tcg/sparc/tcg-target.inc.c
    R tcg/tcg-be-ldst.h
    R tcg/tcg-be-null.h
    A tcg/tcg-ldst.inc.c
    A tcg/tcg-pool.inc.c
    M tcg/tcg.c
    M tcg/tcg.h
    M tcg/tci/tcg-target.h
    M tcg/tci/tcg-target.inc.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20170907' into staging

TCG constant pools

# gpg: Signature made Thu 07 Sep 2017 23:35:45 BST
# gpg:                using RSA key 0x64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-tcg-20170907: (23 commits)
  tcg/ppc: Use constant pool for movi
  tcg/ppc: Look for shifted constants
  tcg/ppc: Change TCG_REG_RA to TCG_REG_TB
  tcg/arm: Use constant pool for call
  tcg/arm: Use constant pool for movi
  tcg/arm: Extract INSN_NOP
  tcg/arm: Code rearrangement
  tcg/arm: Tighten tlb indexing offset test
  tcg/arm: Improve tlb load for armv7
  tcg/sparc: Use constant pool for movi
  tcg/sparc: Introduce TCG_REG_TB
  tcg/aarch64: Use constant pool for movi
  tcg/s390: Use constant pool for cmpi
  tcg/s390: Use constant pool for xori
  tcg/s390: Use constant pool for ori
  tcg/s390: Use constant pool for andi
  tcg/s390: Use constant pool for movi
  tcg/s390: Fix sign of patch_reloc addend
  tcg/s390: Introduce TCG_REG_TB
  tcg/i386: Store out-of-range call targets in constant pool
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/e6d767b72732...b3a1179f570b

reply via email to

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