[PATCH] x86: Handle extra bit for i386_cpu_flags
Haochen Jiang
haochen.jiang@intel.com
Wed Nov 26 02:58:39 GMT 2025
Hi all,
I suppose we will need this handle in the very near future due
to AMD AVX512-BMM and foreseeable APX_NCI_NDD_NF addition leading
to yet another bit in i386_cpu_flags.
Ok for trunk?
Thx,
Haochen
---
Since we will run out of bits for i386_cpu_flags in the very near
future (AMD AVX512_BMM leads to full, and APX_NCI_NDD_NF also needs
a bit for x86 vendors other than Intel), we will need to handle
extra bit for i386_cpu_flags.
gas/ChangeLog:
* config/tc-i386.c
(cpu_flags_all_zero): Handle extra bit.
(cpu_flags_equal): Ditto.
(cpu_flags_and): Ditto.
(cpu_flags_or): Ditto.
(cpu_flags_and_not): Ditto.
---
gas/config/tc-i386.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index eb282bff43c..8c823c78fc4 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1943,6 +1943,10 @@ cpu_flags_all_zero (const union i386_cpu_flags *x)
{
switch (ARRAY_SIZE(x->array))
{
+ case 6:
+ if (x->array[5])
+ return 0;
+ /* Fall through. */
case 5:
if (x->array[4])
return 0;
@@ -1972,6 +1976,10 @@ cpu_flags_equal (const union i386_cpu_flags *x,
{
switch (ARRAY_SIZE(x->array))
{
+ case 6:
+ if (x->array[5] != y->array[5])
+ return 0;
+ /* Fall through. */
case 5:
if (x->array[4] != y->array[4])
return 0;
@@ -2009,6 +2017,9 @@ cpu_flags_and (i386_cpu_flags x, i386_cpu_flags y)
{
switch (ARRAY_SIZE (x.array))
{
+ case 6:
+ x.array [5] &= y.array [5];
+ /* Fall through. */
case 5:
x.array [4] &= y.array [4];
/* Fall through. */
@@ -2035,6 +2046,9 @@ cpu_flags_or (i386_cpu_flags x, i386_cpu_flags y)
{
switch (ARRAY_SIZE (x.array))
{
+ case 6:
+ x.array [5] |= y.array [5];
+ /* Fall through. */
case 5:
x.array [4] |= y.array [4];
/* Fall through. */
@@ -2061,6 +2075,9 @@ cpu_flags_and_not (i386_cpu_flags x, i386_cpu_flags y)
{
switch (ARRAY_SIZE (x.array))
{
+ case 6:
+ x.array [5] &= ~y.array [5];
+ /* Fall through. */
case 5:
x.array [4] &= ~y.array [4];
/* Fall through. */
--
2.31.1
More information about the Binutils
mailing list