[binutils-gdb] opcodes/aarch64: shrink aarch64_ext_ldst_reglist()'s data[]

Jan Beulich jbeulich@sourceware.org
Fri Aug 8 09:45:57 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7ec7556f86d4665c26ef63184cee7057213957c1

commit 7ec7556f86d4665c26ef63184cee7057213957c1
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Aug 8 11:42:32 2025 +0200

    opcodes/aarch64: shrink aarch64_ext_ldst_reglist()'s data[]
    
    The values are all pretty small; one is even a boolean. No point in
    wasting 32 bits for every one of the fields.

Diff:
---
 opcodes/aarch64-dis.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index af62bd88398..3ca22bb5c8a 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -501,21 +501,21 @@ aarch64_ext_ldst_reglist (const aarch64_operand *self ATTRIBUTE_UNUSED,
 
   static const struct
     {
-      unsigned is_reserved;
-      unsigned num_regs;
-      unsigned num_elements;
+      unsigned num_regs:8;
+      unsigned num_elements:8;
+      bool is_reserved:1;
     } data [] =
-  {   {0, 4, 4},
-      {1, 4, 4},
-      {0, 4, 1},
-      {0, 4, 2},
-      {0, 3, 3},
-      {1, 3, 3},
-      {0, 3, 1},
-      {0, 1, 1},
-      {0, 2, 2},
-      {1, 2, 2},
-      {0, 2, 1},
+  {   {4, 4, false},
+      {4, 4, true},
+      {4, 1, false},
+      {4, 2, false},
+      {3, 3, false},
+      {3, 3, true},
+      {3, 1, false},
+      {1, 1, false},
+      {2, 2, false},
+      {2, 2, true},
+      {2, 1, false},
   };
 
   /* Rt */


More information about the Binutils-cvs mailing list