qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>
Subject: [PULL 31/49] target/i386: Rearrange CCOp
Date: Thu, 31 Oct 2024 18:51:55 +0100	[thread overview]
Message-ID: <20241031175214.214455-32-pbonzini@redhat.com> (raw)
In-Reply-To: <20241031175214.214455-1-pbonzini@redhat.com>

From: Richard Henderson <richard.henderson@linaro.org>

Give the first few enumerators explicit integer constants,
align the BWLQ enumerators.

This will be used to simplify ((op - CC_OP_*B) & 3).

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Link: https://lore.kernel.org/r/20240701025115.1265117-4-richard.henderson@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/i386/cpu.h | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 50172d7a6f9..6ec63380473 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1299,11 +1299,10 @@ uint64_t x86_cpu_get_supported_feature_word(X86CPU *cpu, FeatureWord w);
  * are only needed for conditional branches.
  */
 typedef enum {
-    CC_OP_DYNAMIC, /* must use dynamic code to get cc_op */
-    CC_OP_EFLAGS,  /* all cc are explicitly computed, CC_SRC = flags */
-    CC_OP_ADCX, /* CC_DST = C, CC_SRC = rest.  */
-    CC_OP_ADOX, /* CC_SRC2 = O, CC_SRC = rest.  */
-    CC_OP_ADCOX, /* CC_DST = C, CC_SRC2 = O, CC_SRC = rest.  */
+    CC_OP_EFLAGS = 0,  /* all cc are explicitly computed, CC_SRC = flags */
+    CC_OP_ADCX = 1,    /* CC_DST = C, CC_SRC = rest.  */
+    CC_OP_ADOX = 2,    /* CC_SRC2 = O, CC_SRC = rest.  */
+    CC_OP_ADCOX = 3,   /* CC_DST = C, CC_SRC2 = O, CC_SRC = rest.  */
 
     CC_OP_MULB, /* modify all flags, C, O = (CC_SRC != 0) */
     CC_OP_MULW,
@@ -1376,9 +1375,12 @@ typedef enum {
     CC_OP_POPCNTQ__,
     CC_OP_POPCNT = sizeof(target_ulong) == 8 ? CC_OP_POPCNTQ__ : CC_OP_POPCNTL__,
 
+    CC_OP_DYNAMIC, /* must use dynamic code to get cc_op */
     CC_OP_NB,
 } CCOp;
-QEMU_BUILD_BUG_ON(CC_OP_NB >= 128);
+
+/* See X86DecodedInsn.cc_op, using int8_t. */
+QEMU_BUILD_BUG_ON(CC_OP_DYNAMIC > INT8_MAX);
 
 typedef struct SegmentCache {
     uint32_t selector;
-- 
2.47.0



  parent reply	other threads:[~2024-10-31 17:58 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-31 17:51 [PULL 00/49] i386, qom, build changes for 2024-10-31 Paolo Bonzini
2024-10-31 17:51 ` [PULL 01/49] stubs: avoid duplicate symbols in libqemuutil.a Paolo Bonzini
2024-10-31 17:51 ` [PULL 02/49] tests: add 'rust' and 'bindgen' to CI package list Paolo Bonzini
2024-10-31 17:51 ` [PULL 03/49] ci: enable rust in the Fedora system build job Paolo Bonzini
2024-10-31 17:51 ` [PULL 04/49] target/i386: fix CPUID check for LFENCE and SFENCE Paolo Bonzini
2024-11-04 18:17   ` Michael Tokarev
2024-11-04 18:31     ` Paolo Bonzini
2024-10-31 17:51 ` [PULL 05/49] scripts: remove erroneous file that breaks git clone on Windows Paolo Bonzini
2024-10-31 17:51 ` [PULL 06/49] configure: detect 64-bit MIPS Paolo Bonzini
2024-10-31 17:51 ` [PULL 07/49] configure, meson: deprecate 32-bit MIPS Paolo Bonzini
2024-10-31 17:51 ` [PULL 08/49] MAINTAINERS: Add myself as a reviewer of x86 general architecture support Paolo Bonzini
2024-10-31 17:51 ` [PULL 09/49] accel: remove dead statement and useless assertion Paolo Bonzini
2024-10-31 17:51 ` [PULL 10/49] i386/cpu: Drop the check of phys_bits in host_cpu_realizefn() Paolo Bonzini
2024-10-31 17:51 ` [PULL 11/49] qom: remove unused function Paolo Bonzini
2024-10-31 17:51 ` [PULL 12/49] qom: use object_new_with_class when possible Paolo Bonzini
2024-10-31 17:51 ` [PULL 13/49] qom: centralize module-loading functionality Paolo Bonzini
2024-10-31 17:51 ` [PULL 14/49] qom: let object_new use a module if the type is not present Paolo Bonzini
2024-10-31 17:51 ` [PULL 15/49] qom: allow user-creatable classes to be in modules Paolo Bonzini
2024-10-31 17:51 ` [PULL 16/49] target/i386: Fix minor typo in NO_NESTED_DATA_BP feature bit Paolo Bonzini
2024-10-31 17:51 ` [PULL 17/49] target/i386: Add PerfMonV2 " Paolo Bonzini
2024-10-31 17:51 ` [PULL 18/49] target/i386: Expose bits related to SRSO vulnerability Paolo Bonzini
2024-10-31 17:51 ` [PULL 19/49] target/i386: Expose new feature bits in CPUID 8000_0021_EAX/EBX Paolo Bonzini
2024-10-31 17:51 ` [PULL 20/49] target/i386/hvf: fix handling of XSAVE-related CPUID bits Paolo Bonzini
2024-10-31 17:51 ` [PULL 21/49] tests/lcitool: Update libvirt-ci and add libcbor dependency Paolo Bonzini
2024-10-31 17:51 ` [PULL 22/49] device/virtio-nsm: Support for Nitro Secure Module device Paolo Bonzini
2024-10-31 17:51 ` [PULL 23/49] hw/core: Add Enclave Image Format (EIF) related helpers Paolo Bonzini
2024-11-05 11:43   ` Peter Maydell
2024-11-05 12:51     ` Paolo Bonzini
2024-11-05 13:56       ` Dorjoy Chowdhury
2024-11-05 15:37         ` Alexander Graf
2024-11-05 16:22           ` Dorjoy Chowdhury
2024-10-31 17:51 ` [PULL 24/49] core/machine: Make create_default_memdev machine a virtual method Paolo Bonzini
2024-10-31 17:51 ` [PULL 25/49] machine/nitro-enclave: New machine type for AWS Nitro Enclaves Paolo Bonzini
2024-10-31 17:51 ` [PULL 26/49] docs/nitro-enclave: Documentation for nitro-enclave machine type Paolo Bonzini
2024-10-31 17:51 ` [PULL 27/49] ci: always invoke meson through pyvenv Paolo Bonzini
2024-10-31 17:51 ` [PULL 28/49] target/i386: use tcg_gen_ext_tl when applicable Paolo Bonzini
2024-10-31 17:51 ` [PULL 29/49] target/i386: Tidy cc_op_str usage Paolo Bonzini
2024-10-31 17:51 ` [PULL 30/49] target/i386: remove CC_OP_CLR Paolo Bonzini
2024-10-31 17:51 ` Paolo Bonzini [this message]
2024-10-31 17:51 ` [PULL 32/49] target/i386: Introduce cc_op_size Paolo Bonzini
2024-10-31 17:51 ` [PULL 33/49] target/i386: Wrap cc_op_live with a validity check Paolo Bonzini
2024-10-31 17:51 ` [PULL 34/49] target/i386: optimize computation of ZF from CC_OP_DYNAMIC Paolo Bonzini
2024-10-31 17:51 ` [PULL 35/49] target/i386: optimize TEST+Jxx sequences Paolo Bonzini
2024-10-31 17:52 ` [PULL 36/49] target/i386: add a few more trivial CCPrepare cases Paolo Bonzini
2024-10-31 17:52 ` [PULL 37/49] target/i386: add a note about gen_jcc1 Paolo Bonzini
2024-10-31 17:52 ` [PULL 38/49] target/i386: make flag variables unsigned Paolo Bonzini
2024-10-31 17:52 ` [PULL 39/49] target/i386: use compiler builtin to compute PF Paolo Bonzini
2024-10-31 17:52 ` [PULL 40/49] target/i386: use higher-precision arithmetic to compute CF Paolo Bonzini
2024-10-31 17:52 ` [PULL 41/49] target/i386: use + to put flags together Paolo Bonzini
2024-10-31 17:52 ` [PULL 42/49] target/i386: cpu: set correct supported XCR0 features for TCG Paolo Bonzini
2024-10-31 17:52 ` [PULL 43/49] target/i386: do not rely on ExtSaveArea for accelerator-supported XCR0 bits Paolo Bonzini
2024-10-31 17:52 ` [PULL 44/49] target/i386: return bool from x86_cpu_filter_features Paolo Bonzini
2024-10-31 17:52 ` [PULL 45/49] target/i386: add AVX10 feature and AVX10 version property Paolo Bonzini
2024-10-31 17:52 ` [PULL 46/49] target/i386: add CPUID.24 features for AVX10 Paolo Bonzini
2024-10-31 17:52 ` [PULL 47/49] target/i386: Add feature dependencies " Paolo Bonzini
2024-10-31 17:52 ` [PULL 48/49] target/i386: Add AVX512 state when AVX10 is supported Paolo Bonzini
2024-10-31 17:52 ` [PULL 49/49] target/i386: Introduce GraniteRapids-v2 model Paolo Bonzini
2024-11-04 10:47 ` [PULL 00/49] i386, qom, build changes for 2024-10-31 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241031175214.214455-32-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).