gas/riscv: Remove unneeded structure
authorAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 29 Oct 2019 12:56:50 +0000 (12:56 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 28 Nov 2019 00:03:02 +0000 (00:03 +0000)
We build a hash table of all register classes and numbers.  The hash
key is the register name and the hash value is the class and number
encoded into a single value, which is of type 'void *'.

When we pull the values out of the hash we cast them to be a pointer
to a structure, however, we never access the fields of that structure,
we just decode the register class and number from the pointer value
itself.

This commit removes the structure and treats the encoded class and
number as a 'void *' during hash lookup.

gas/ChangeLog:

* config/tc-riscv.c (struct regname): Delete.
(hash_reg_names): Handle value as 'void *'.

Change-Id: Ie7d8f46ca3798f56f4af94395279de684f87f9cc

gas/ChangeLog
gas/config/tc-riscv.c

index 09991524da1cd09872e865e33de598541ca99ac7..f3b8d33a308bab3ab85b8394afa9f307344021c7 100644 (file)
@@ -1,3 +1,8 @@
+2019-11-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * config/tc-riscv.c (struct regname): Delete.
+       (hash_reg_names): Handle value as 'void *'.
+
 2019-11-25  Andrew Pinski  <apinski@marvell.com>
 
        * config/tc-aarch64.c (md_begin): Use correct
index e50505138e95d386d51c80ca3119b5838b47e608..5d95ee8eee37a04abc3d813ac74d72c9ef799908 100644 (file)
@@ -446,12 +446,6 @@ opcode_name_lookup (char **s)
   return o;
 }
 
-struct regname
-{
-  const char *name;
-  unsigned int num;
-};
-
 enum reg_class
 {
   RCLASS_GPR,
@@ -489,7 +483,7 @@ hash_reg_names (enum reg_class class, const char * const names[], unsigned n)
 static unsigned int
 reg_lookup_internal (const char *s, enum reg_class class)
 {
-  struct regname *r = (struct regname *) hash_find (reg_names_hash, s);
+  void *r = hash_find (reg_names_hash, s);
 
   if (r == NULL || DECODE_REG_CLASS (r) != class)
     return -1;