Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 1c3a828a4ede
Choose a base ref
...
head repository: qemu/qemu
compare: 6972ef1440a9
Choose a head ref
  • 18 commits
  • 21 files changed
  • 1 contributor

Commits on May 17, 2023

  1. tcg: Remove TCGv from tcg_gen_qemu_{ld,st}_*

    Expand from TCGv to TCGTemp inline in the translators,
    and validate that the size matches tcg_ctx->addr_type.
    These inlines will eventually be seen only by target-specific code.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    d5920b7 View commit details
    Browse the repository at this point in the history
  2. tcg: Remove TCGv from tcg_gen_atomic_*

    Expand from TCGv to TCGTemp inline in the translators,
    and validate that the size matches tcg_ctx->addr_type.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    0700ceb View commit details
    Browse the repository at this point in the history
  3. tcg: Split INDEX_op_qemu_{ld,st}* for guest address size

    For 32-bit hosts, we cannot simply rely on TCGContext.addr_bits,
    as we need one or two host registers to represent the guest address.
    
    Create the new opcodes and update all users.  Since we have not
    yet eliminated TARGET_LONG_BITS, only one of the two opcodes will
    ever be used, so we can get away with treating them the same in
    the backends.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    fecccfc View commit details
    Browse the repository at this point in the history
  4. tcg/tci: Elimnate TARGET_LONG_BITS, target_ulong

    We now have the address size as part of the opcode, so
    we no longer need to test TARGET_LONG_BITS.  We can use
    uint64_t for target_ulong, as passed into load/store helpers.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    dd7dc93 View commit details
    Browse the repository at this point in the history
  5. tcg/i386: Always enable TCG_TARGET_HAS_extr[lh]_i64_i32

    Keep all 32-bit values zero extended in the register, not solely when
    addresses are 32 bits.  This eliminates a dependency on TARGET_LONG_BITS.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    7a9ccb8 View commit details
    Browse the repository at this point in the history
  6. tcg/i386: Conditionalize tcg_out_extu_i32_i64

    Since TCG_TYPE_I32 values are kept zero-extended in registers, via
    omission of the REXW bit, we need not extend if the register matches.
    This is already relied upon by qemu_{ld,st}.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    b248553 View commit details
    Browse the repository at this point in the history
  7. tcg/i386: Adjust type of tlb_mask

    Because of its use on tgen_arithi, this value must be a signed
    32-bit quantity, as that is what may be encoded in the insn.
    The truncation of the value to unsigned for 32-bit guests is
    done via the REX bit via 'trexw'.
    
    Removes the only uses of target_ulong from this tcg backend.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    c60ad6e View commit details
    Browse the repository at this point in the history
  8. tcg/i386: Remove TARGET_LONG_BITS, TCG_TYPE_TL

    All uses can be infered from the INDEX_op_qemu_*_a{32,64}_* opcode
    being used.  Add a field into TCGLabelQemuLdst to record the usage.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    63f4da9 View commit details
    Browse the repository at this point in the history
  9. tcg/arm: Remove TARGET_LONG_BITS

    All uses can be infered from the INDEX_op_qemu_*_a{32,64}_*
    opcode being used.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    03a2ecd View commit details
    Browse the repository at this point in the history
  10. tcg/aarch64: Remove USE_GUEST_BASE

    Eliminate the test vs TARGET_LONG_BITS by considering this
    predicate to be always true, and simplify accordingly.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    5253315 View commit details
    Browse the repository at this point in the history
  11. tcg/aarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL

    All uses replaced with TCGContext.addr_type.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    60c452a View commit details
    Browse the repository at this point in the history
  12. tcg/loongarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL

    All uses replaced with TCGContext.addr_type.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    6e2a21b View commit details
    Browse the repository at this point in the history
  13. tcg/mips: Remove TARGET_LONG_BITS, TCG_TYPE_TL

    All uses replaced with TCGContext.addr_type.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    5e983cb View commit details
    Browse the repository at this point in the history
  14. tcg: Remove TARGET_LONG_BITS, TCG_TYPE_TL

    All uses replaced with TCGContext.addr_type.
    
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    c31e5fa View commit details
    Browse the repository at this point in the history
  15. tcg: Add page_bits and page_mask to TCGContext

    Disconnect guest page size from TCG compilation.
    While this could be done via exec/target_page.h, we want to cache
    the value across multiple memory access operations, so we might
    as well initialize this early.
    
    The changes within tcg/ are entirely mechanical:
    
        sed -i s/TARGET_PAGE_BITS/s->page_bits/g
        sed -i s/TARGET_PAGE_MASK/s->page_mask/g
    
    Reviewed-by: Anton Johansson <anjo@rev.ng>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    aece72b View commit details
    Browse the repository at this point in the history
  16. tcg: Add tlb_dyn_max_bits to TCGContext

    Disconnect guest tlb parameters from TCG compilation.
    
    Reviewed-by: Anton Johansson <anjo@rev.ng>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    a66efde View commit details
    Browse the repository at this point in the history
  17. tcg: Split out exec/user/guest-base.h

    TCG will need this declaration, without all of the other
    bits that come with cpu-all.h.
    
    Reviewed-by: Thomas Huth <thuth@redhat.com>
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    7d47830 View commit details
    Browse the repository at this point in the history
  18. Merge tag 'pull-tcg-20230516-3' of https://gitlab.com/rth7680/qemu in…

    …to staging
    
    tcg/i386: Fix tcg_out_addi_ptr for win64
    tcg: Implement atomicity for TCGv_i128
    tcg: First quarter of cleanups for building tcg once
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmRkWC8dHHJpY2hhcmQu
    # aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/I+wf8CUF+J/E9u0EuurrB
    # 1asDicANUJIACnqlcEpSPKuSMtbzo1RDTQUR+d3GWJjyLASvSJZFZTQqWBdACRpc
    # sNuDz3/1a6FbiM14CwIVmPpcjQXa+18Ck670Chmw51KyEt2xyDJTySFIGEqjiuTf
    # YVDBbOs8neFZdcDvAs1qNUTjhRj4nNtkpQoBpv0tGH7E0CzPp6OcvxwfieVyLOIa
    # Cy1ELM3aMyVN5MTjnORYLK70Pa9emdjB88SlypZx363ARKC7B50lzYPQ4E5zrOZq
    # FKrOq5nFWLCtn4BID0R+jUmuUP6znR/hTlToDmf/9B4j9TUivERWlc54lz3YU6Gn
    # su3FKg==
    # =LVOb
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Tue 16 May 2023 09:29:35 PM PDT
    # gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
    # gpg:                issuer "richard.henderson@linaro.org"
    # gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [ultimate]
    
    * tag 'pull-tcg-20230516-3' of https://gitlab.com/rth7680/qemu: (74 commits)
      tcg: Split out exec/user/guest-base.h
      tcg: Add tlb_dyn_max_bits to TCGContext
      tcg: Add page_bits and page_mask to TCGContext
      tcg: Remove TARGET_LONG_BITS, TCG_TYPE_TL
      tcg/mips: Remove TARGET_LONG_BITS, TCG_TYPE_TL
      tcg/loongarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
      tcg/aarch64: Remove TARGET_LONG_BITS, TCG_TYPE_TL
      tcg/aarch64: Remove USE_GUEST_BASE
      tcg/arm: Remove TARGET_LONG_BITS
      tcg/i386: Remove TARGET_LONG_BITS, TCG_TYPE_TL
      tcg/i386: Adjust type of tlb_mask
      tcg/i386: Conditionalize tcg_out_extu_i32_i64
      tcg/i386: Always enable TCG_TARGET_HAS_extr[lh]_i64_i32
      tcg/tci: Elimnate TARGET_LONG_BITS, target_ulong
      tcg: Split INDEX_op_qemu_{ld,st}* for guest address size
      tcg: Remove TCGv from tcg_gen_atomic_*
      tcg: Remove TCGv from tcg_gen_qemu_{ld,st}_*
      tcg: Add addr_type to TCGContext
      accel/tcg: Widen plugin_gen_empty_mem_callback to i64
      tcg: Reduce copies for plugin_gen_mem_callbacks
      ...
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 17, 2023
    Copy the full SHA
    6972ef1 View commit details
    Browse the repository at this point in the history