[4/6] Add handler for more i386_cpu_flags

Message ID 20221031030507.35588-5-haochen.jiang@intel.com
State Unresolved
Headers
Series Support Intel Sierra Forest Instructions |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Jiang, Haochen Oct. 31, 2022, 3:05 a.m. UTC
  From: Kong Lingling <lingling.kong@intel.com>

gas/ChangeLog:

	* config/tc-i386.c (cpu_flags_all_zero): Add new ARRAY_SIZE handle.
	(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(+)
  

Comments

H.J. Lu Oct. 31, 2022, 4:54 p.m. UTC | #1
On Sun, Oct 30, 2022 at 8:07 PM Haochen Jiang <haochen.jiang@intel.com> wrote:
>
> From: Kong Lingling <lingling.kong@intel.com>
>
> gas/ChangeLog:
>
>         * config/tc-i386.c (cpu_flags_all_zero): Add new ARRAY_SIZE handle.
>         (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 9c0f86ac3d..99d1a4cfec 100644
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -1619,6 +1619,10 @@ cpu_flags_all_zero (const union i386_cpu_flags *x)
>  {
>    switch (ARRAY_SIZE(x->array))
>      {
> +    case 5:
> +      if (x->array[4])
> +       return 0;
> +      /* Fall through.  */
>      case 4:
>        if (x->array[3])
>         return 0;
> @@ -1644,6 +1648,10 @@ cpu_flags_equal (const union i386_cpu_flags *x,
>  {
>    switch (ARRAY_SIZE(x->array))
>      {
> +    case 5:
> +      if (x->array[4] != y->array[4])
> +       return 0;
> +      /* Fall through.  */
>      case 4:
>        if (x->array[3] != y->array[3])
>         return 0;
> @@ -1676,6 +1684,9 @@ cpu_flags_and (i386_cpu_flags x, i386_cpu_flags y)
>  {
>    switch (ARRAY_SIZE (x.array))
>      {
> +    case 5:
> +      x.array [4] &= y.array [4];
> +      /* Fall through.  */
>      case 4:
>        x.array [3] &= y.array [3];
>        /* Fall through.  */
> @@ -1699,6 +1710,9 @@ cpu_flags_or (i386_cpu_flags x, i386_cpu_flags y)
>  {
>    switch (ARRAY_SIZE (x.array))
>      {
> +    case 5:
> +      x.array [4] |= y.array [4];
> +      /* Fall through.  */
>      case 4:
>        x.array [3] |= y.array [3];
>        /* Fall through.  */
> @@ -1722,6 +1736,9 @@ cpu_flags_and_not (i386_cpu_flags x, i386_cpu_flags y)
>  {
>    switch (ARRAY_SIZE (x.array))
>      {
> +    case 5:
> +      x.array [4] &= ~y.array [4];
> +      /* Fall through.  */
>      case 4:
>        x.array [3] &= ~y.array [3];
>        /* Fall through.  */
> --
> 2.18.1
>

OK.

Thanks.
  

Patch

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 9c0f86ac3d..99d1a4cfec 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1619,6 +1619,10 @@  cpu_flags_all_zero (const union i386_cpu_flags *x)
 {
   switch (ARRAY_SIZE(x->array))
     {
+    case 5:
+      if (x->array[4])
+	return 0;
+      /* Fall through.  */
     case 4:
       if (x->array[3])
 	return 0;
@@ -1644,6 +1648,10 @@  cpu_flags_equal (const union i386_cpu_flags *x,
 {
   switch (ARRAY_SIZE(x->array))
     {
+    case 5:
+      if (x->array[4] != y->array[4])
+	return 0;
+      /* Fall through.  */
     case 4:
       if (x->array[3] != y->array[3])
 	return 0;
@@ -1676,6 +1684,9 @@  cpu_flags_and (i386_cpu_flags x, i386_cpu_flags y)
 {
   switch (ARRAY_SIZE (x.array))
     {
+    case 5:
+      x.array [4] &= y.array [4];
+      /* Fall through.  */
     case 4:
       x.array [3] &= y.array [3];
       /* Fall through.  */
@@ -1699,6 +1710,9 @@  cpu_flags_or (i386_cpu_flags x, i386_cpu_flags y)
 {
   switch (ARRAY_SIZE (x.array))
     {
+    case 5:
+      x.array [4] |= y.array [4];
+      /* Fall through.  */
     case 4:
       x.array [3] |= y.array [3];
       /* Fall through.  */
@@ -1722,6 +1736,9 @@  cpu_flags_and_not (i386_cpu_flags x, i386_cpu_flags y)
 {
   switch (ARRAY_SIZE (x.array))
     {
+    case 5:
+      x.array [4] &= ~y.array [4];
+      /* Fall through.  */
     case 4:
       x.array [3] &= ~y.array [3];
       /* Fall through.  */