qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] c2bf2c: configure: move -mcx16 flag out of CP


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] c2bf2c: configure: move -mcx16 flag out of CPU_CFLAGS
Date: Sat, 25 May 2024 18:33:21 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c2bf2ccb266dc9ae4a6da75b845f54535417e109
      
https://github.com/qemu/qemu/commit/c2bf2ccb266dc9ae4a6da75b845f54535417e109
  Author: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M configure
    M meson.build

  Log Message:
  -----------
  configure: move -mcx16 flag out of CPU_CFLAGS

The point of CPU_CFLAGS is really just to select the appropriate multilib,
for example for library linking tests, and -mcx16 is not needed for
that purpose.

Furthermore, if -mcx16 is part of QEMU's choice of a basic x86_64
instruction set, it should be applied to cross-compiled x86_64 code too;
it is plausible that tests/tcg would want to cover cmpxchg16b as well,
for example.  In the end this makes just as much sense as a per sub-build
tweak, so move the flag to meson.build and cross_cc_cflags_x86_64.

This leaves out contrib/plugins, which would fail when attempting to use
__sync_val_compare_and_swap_16 (note it does not do yet); while minor,
this *is* a disadvantage of this change.  But building contrib/plugins
with a Makefile instead of meson.build is something self-inflicted just
for the sake of showing that it can be done, and if this kind of papercut
started becoming a problem we could make the directory part of the meson
build.  Until then, we can live with the limitation.

Signed-off-by: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
Message-ID: <20240523051118.29367-1-artyomkunakovsky@gmail.com>
[rewrite commit message, remove from configure. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8225bff7c5db504f50e54ef66b079854635dba70
      
https://github.com/qemu/qemu/commit/8225bff7c5db504f50e54ef66b079854635dba70
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: disable jmp_opt if EFLAGS.RF is 1

If EFLAGS.RF is 1, special processing in gen_eob_worker() is needed and
therefore goto_tb cannot be used.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f0f0136abba688a6516647a79cc91e03fad6d5d7
      
https://github.com/qemu/qemu/commit/f0f0136abba688a6516647a79cc91e03fad6d5d7
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: no single-step exception after MOV or POP SS

Intel SDM 18.3.1.4 "If an occurrence of the MOV or POP instruction
loads the SS register executes with EFLAGS.TF = 1, no single-step debug
exception occurs following the MOV or POP instruction."

Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 69d728126223941de298b34798eb433be28b2734
      
https://github.com/qemu/qemu/commit/69d728126223941de298b34798eb433be28b2734
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: cleanup eob handling of RSM

gen_helper_rsm cannot generate an exception, and reloads the flags.
So there's no need to spill cc_op and update cpu_eip, but on the
other hand cc_op must be reset to CC_OP_EFLAGS before returning.

It all works by chance, because by spilling cc_op before the call
to the helper, it becomes non-dirty and gen_eob will not overwrite
the CC_OP_EFLAGS value that is placed there by the helper.  But
let's clean it up.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f6ac77eab66e8e8e6ba04d58bc262b60698ecd1d
      
https://github.com/qemu/qemu/commit/f6ac77eab66e8e8e6ba04d58bc262b60698ecd1d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: remove unnecessary gen_update_cc_op before gen_eob*

This is already handled in gen_eob().  Before adding another DISAS_*
case, remove the double calls.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a0625efd4d61a7e1e3f0435aa6a83c6330b72b9a
      
https://github.com/qemu/qemu/commit/a0625efd4d61a7e1e3f0435aa6a83c6330b72b9a
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: cpu_load_eflags already sets cc_op

No need to set it again at the end of the translation block, cc_op_dirty
can be set to false.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: abdcc5c8eff0879c76aeb9f16d0c13044bfecbda
      
https://github.com/qemu/qemu/commit/abdcc5c8eff0879c76aeb9f16d0c13044bfecbda
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/ops_sse.h
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/fpu_helper.c
    M target/i386/tcg/int_helper.c
    M target/i386/tcg/seg_helper.c
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: set CC_OP in helpers if they want CC_OP_EFLAGS

Mark cc_op as clean and do not spill it at the end of the translation block.
Technically this is a tiny bit less efficient, but:

* it results in translations that are a tiny bit smaller

* for most of these instructions, it is not unlikely that they are close to
the end of the basic block, in which case cc_op would not be overwritten

* anyway the cost is probably dwarfed by that of computing flags.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9594b593315a56ca459b8bc2de1cad5a91597f37
      
https://github.com/qemu/qemu/commit/9594b593315a56ca459b8bc2de1cad5a91597f37
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: document and group DISAS_* constants

Place DISAS_* constants that update cpu_eip first, and
the "jump" ones last.  Add comments explaining the differences
and usage.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c8494cb8b1fd73a1e6a3a6a022a7e4d7e481bdc1
      
https://github.com/qemu/qemu/commit/c8494cb8b1fd73a1e6a3a6a022a7e4d7e481bdc1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: avoid calling gen_eob_syscall before tb_stop

syscall and sysret only have one exit, so they do not need to
generate the end-of-translation code inline.  It can be
deferred to tb_stop.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2512f786bfe0a63fbf59cf0354d2b2ae40198a6f
      
https://github.com/qemu/qemu/commit/2512f786bfe0a63fbf59cf0354d2b2ae40198a6f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: avoid calling gen_eob_inhibit_irq before tb_stop

sti only has one exit, so it does not need to generate the
end-of-translation code inline.  It can be deferred to tb_stop.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ad8f2ad77eb5b78d4478f900518d832af005ad40
      
https://github.com/qemu/qemu/commit/ad8f2ad77eb5b78d4478f900518d832af005ad40
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: assert that gen_update_eip_cur and gen_update_eip_next are the 
same in tb_stop

This is an invariant now that there are no calls to gen_eob_inhibit_irq()
outside tb_stop.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f5bd6a48ee129f7bc8335ad75e18d2f88b131745
      
https://github.com/qemu/qemu/commit/f5bd6a48ee129f7bc8335ad75e18d2f88b131745
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: raze the gen_eob* jungle

Make gen_eob take the DISAS_* constant as an argument, so that
it is not necessary to have wrappers around it.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b3c49e654a0d382cca34dbb3bbf1022cffff8d0f
      
https://github.com/qemu/qemu/commit/b3c49e654a0d382cca34dbb3bbf1022cffff8d0f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: reg in gen_ldst_modrm is always OR_TMP0

Values other than OR_TMP0 were only ever used by MOV and MOVNTI
opcodes.  Now that these have been converted to the new decoder,
remove the argument.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 420d60caad92644a0ebebb8a2b41dedc6635f530
      
https://github.com/qemu/qemu/commit/420d60caad92644a0ebebb8a2b41dedc6635f530
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: split gen_ldst_modrm for load and store

The is_store argument of gen_ldst_modrm has only ever been passed
a constant.  Just split the function in two.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d0e31d6d3740726db067e2e49d0593b4ce85ccfe
      
https://github.com/qemu/qemu/commit/d0e31d6d3740726db067e2e49d0593b4ce85ccfe
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: inline gen_add_A0_ds_seg

It is only used in MONITOR, where a direct call of gen_lea_v_seg
is simpler, and in XLAT.  Inline it in the latter.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 20237d4070e8fc5dae743f0286dda11375b7c474
      
https://github.com/qemu/qemu/commit/20237d4070e8fc5dae743f0286dda11375b7c474
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: use mo_stacksize more

Use mo_stacksize for all stack accesses, including when
a 64-bit code segment is impossible and the code is
therefore checking only for SS32(s).

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f0e754d3ce52b25e6bea0ff04cecd8f0b111c1d6
      
https://github.com/qemu/qemu/commit/f0e754d3ce52b25e6bea0ff04cecd8f0b111c1d6
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: introduce gen_lea_ss_ofs

Generalize gen_stack_A0() to include an initial add and to use an arbitrary
destination.  This is a common pattern and it is not a huge burden to
add the extra arguments to the only caller of gen_stack_A0().

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6605817b1ad734d29efebcdca7c4baeeec3a65c7
      
https://github.com/qemu/qemu/commit/6605817b1ad734d29efebcdca7c4baeeec3a65c7
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: clean up repeated string operations

Do not bother generating inline wrappers for gen_repz and gen_repz2;
use s->prefix to separate REPZ from REPNZ in the case of SCAS and
CMPS.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 56da568f88cc5537d49e0bfc793b0ca105605947
      
https://github.com/qemu/qemu/commit/56da568f88cc5537d49e0bfc793b0ca105605947
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: remove aflag argument of gen_lea_v_seg

It is always s->aflag.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0241e0fedab48a3da15b12a65818120ba566536f
      
https://github.com/qemu/qemu/commit/0241e0fedab48a3da15b12a65818120ba566536f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M block/meson.build

  Log Message:
  -----------
  meson: remove unnecessary reference to libm

libm is linked into all targets via libqemuutil, no need to specify it
explicitly.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2bfd3c4860a0058ff65a5da16f4d2609ac70b580
      
https://github.com/qemu/qemu/commit/2bfd3c4860a0058ff65a5da16f4d2609ac70b580
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M audio/meson.build
    M tests/qtest/meson.build
    M ui/meson.build

  Log Message:
  -----------
  meson: remove unnecessary dependency

The dbus_display1_dep is not really used since all occurrences also
request gio independently.  Just list the generated sources and drop
dbus_display1_dep.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 61306156d976b1235e26dc1658ccaae2170ce185
      
https://github.com/qemu/qemu/commit/61306156d976b1235e26dc1658ccaae2170ce185
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M tcg/meson.build

  Log Message:
  -----------
  tcg: include dependencies in static_library()

This ensures that for example libffi can be reached even if it is not
in /usr/include.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ae9433fb1140f40143d877623b3c0f030d96a99f
      
https://github.com/qemu/qemu/commit/ae9433fb1140f40143d877623b3c0f030d96a99f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M block/meson.build

  Log Message:
  -----------
  meson: do not query modules before they are processed

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 70eb5fde05bdd051c087669ffcf2aee39e0c8170
      
https://github.com/qemu/qemu/commit/70eb5fde05bdd051c087669ffcf2aee39e0c8170
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M meson.build
    M migration/dirtyrate.c
    M migration/meson.build
    M migration/qemu-file.c

  Log Message:
  -----------
  migration: remove unnecessary zlib dependency

zlib code is only used by the emulators, not by the tests.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 78ef97c0aa6c03d78950116921cdf893632d22b1
      
https://github.com/qemu/qemu/commit/78ef97c0aa6c03d78950116921cdf893632d22b1
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2024-05-25 (Sat, 25 May 2024)

  Changed paths:
    M audio/meson.build
    M block/meson.build
    M configure
    M meson.build
    M migration/dirtyrate.c
    M migration/meson.build
    M migration/qemu-file.c
    M target/i386/ops_sse.h
    M target/i386/tcg/emit.c.inc
    M target/i386/tcg/fpu_helper.c
    M target/i386/tcg/int_helper.c
    M target/i386/tcg/seg_helper.c
    M target/i386/tcg/translate.c
    M tcg/meson.build
    M tests/qtest/meson.build
    M ui/meson.build

  Log Message:
  -----------
  Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

Build system and target/i386/translate.c cleanups

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmZRy1gUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroMTtQf/ZQskuqZyTrDhB/uVUT8oT5JNKQNS
# GbFSgDK7jDdBeU3UmoYrlx9vfFR/mH5cA88MlusUy0SjQBNo4onD725o6Vvum/LW
# DPe5ZyE34wvOasM7KXqJsD+2SttjaVjCXN4ip+E9WL5By2TWJgrk6IgTtvAhT9cd
# LWb5OEIInaq7ZiWz3EpjmGvZd0M4mxqXi5OeDvmoFyf38xElfbWZWbfhJv+H5L1X
# stivPBtUbXOzh63NL491hUYQtiAWlow8Qcnn7CYRflb6Vdd4QPK+6W8FX5KyU2eC
# bXRXloW7wjEAC9pyiVky1SCvtNg7AVFL+9kxwiGreoZfo+/IMA+NP6pGOg==
# =hpWy
# -----END PGP SIGNATURE-----
# gpg: Signature made Sat 25 May 2024 04:28:24 AM PDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (24 commits)
  migration: remove unnecessary zlib dependency
  meson: do not query modules before they are processed
  tcg: include dependencies in static_library()
  meson: remove unnecessary dependency
  meson: remove unnecessary reference to libm
  target/i386: remove aflag argument of gen_lea_v_seg
  target/i386: clean up repeated string operations
  target/i386: introduce gen_lea_ss_ofs
  target/i386: use mo_stacksize more
  target/i386: inline gen_add_A0_ds_seg
  target/i386: split gen_ldst_modrm for load and store
  target/i386: reg in gen_ldst_modrm is always OR_TMP0
  target/i386: raze the gen_eob* jungle
  target/i386: assert that gen_update_eip_cur and gen_update_eip_next are the 
same in tb_stop
  target/i386: avoid calling gen_eob_inhibit_irq before tb_stop
  target/i386: avoid calling gen_eob_syscall before tb_stop
  target/i386: document and group DISAS_* constants
  target/i386: set CC_OP in helpers if they want CC_OP_EFLAGS
  target/i386: cpu_load_eflags already sets cc_op
  target/i386: remove unnecessary gen_update_cc_op before gen_eob*
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/ffdd099a7825...78ef97c0aa6c

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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