[3/7] sim: ppc: collapse is_valid switch table more

Message ID 20221109200126.21090-3-vapier@gentoo.org
State Committed
Commit 1eff12f75acd62066399437042b7c016463ad932
Headers
Series [1/7] sim: ppc: constify spreg table |

Commit Message

Mike Frysinger Nov. 9, 2022, 8:01 p.m. UTC
  Instead of writing:
  case 1:
    return 1;
  case 2:
    return 1;
  ...etc...

Output a single return so we get:
  case 1:
  case 2:
  case ...
    return 1;

This saves ~100 lines of code.  Hopefully the compiler was already
smart enough to optimize to the same code, but if not, this probably
helps there too :).
---
 sim/ppc/dgen.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
  

Patch

diff --git a/sim/ppc/dgen.c b/sim/ppc/dgen.c
index 0cc210b5fed1..d2ea922ffc91 100644
--- a/sim/ppc/dgen.c
+++ b/sim/ppc/dgen.c
@@ -240,7 +240,7 @@  gen_spreg_c(spreg_table *table, lf *file)
       for (entry = table->sprs; entry != NULL; entry = entry->next) {
 	lf_printf(file, "  case %d:\n", entry->spreg_nr);
 	if (strcmp(*attribute, "is_valid") == 0)
-	  lf_printf(file, "    return 1;\n");
+	  /* No return -- see below.  */;
 	else if (strcmp(*attribute, "is_readonly") == 0)
 	  lf_printf(file, "    return %d;\n", entry->is_readonly);
 	else if (strcmp(*attribute, "length") == 0)
@@ -248,6 +248,9 @@  gen_spreg_c(spreg_table *table, lf *file)
 	else
 	  ASSERT(0);
       }
+      /* Output a single return for is_valid.  */
+      if (strcmp(*attribute, "is_valid") == 0)
+	lf_printf(file, "    return 1;\n");
       lf_printf(file, "  }\n");
       lf_printf(file, "  return 0;\n");
     }