]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
x86: "prefix_extra" tidying
authorJan Beulich <jbeulich@suse.com>
Mon, 7 Aug 2023 09:43:55 +0000 (11:43 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 7 Aug 2023 09:43:55 +0000 (11:43 +0200)
Drop SSE5 leftovers from both its comment and its default calculation.
A value of 2 simply cannot occur anymore. Instead extend the comment to
mention the use of the attribute in "length_vex", clarifying why
"prefix_extra" can actually be meaningful on VEX-encoded insns despite
those not having any real prefixes except possibly segment overrides.

gcc/

* config/i386/i386.md (prefix_extra): Correct comment. Fold
cases yielding 2 into ones yielding 1.

gcc/config/i386/i386.md

index ba376f8537858ca59da0e630c30cb98f0a3381f1..b2c42830f2208cbce4c3db0f3cc534acc55b923e 100644 (file)
        (const_int 0)))
 
 ;; There are also additional prefixes in 3DNOW, SSSE3.
-;; ssemuladd,sse4arg default to 0f24/0f25 and DREX byte,
-;; sseiadd1,ssecvt1 to 0f7a with no DREX byte.
 ;; 3DNOW has 0f0f prefix, SSSE3 and SSE4_{1,2} 0f38/0f3a.
+;; While generally inapplicable to VEX/XOP/EVEX encodings, "length_vex" uses
+;; the attribute evaluating to zero to know that VEX2 encoding may be usable.
 (define_attr "prefix_extra" ""
-  (cond [(eq_attr "type" "ssemuladd,sse4arg")
-          (const_int 2)
-        (eq_attr "type" "sseiadd1,ssecvt1")
+  (cond [(eq_attr "type" "ssemuladd,sse4arg,sseiadd1,ssecvt1")
           (const_int 1)
        ]
        (const_int 0)))