summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-10-29 12:56:50 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-11-28 00:03:02 +0000
commitb7379eaddab00dc4ba9c9b98d8f603b9560366a1 (patch)
treed2b81b1c92f89d290e74474e200b69fce0b58a9b /gas
parentAutomatic date update in version.in (diff)
downloadbinutils-gdb-b7379eaddab00dc4ba9c9b98d8f603b9560366a1.tar.gz
binutils-gdb-b7379eaddab00dc4ba9c9b98d8f603b9560366a1.tar.bz2
binutils-gdb-b7379eaddab00dc4ba9c9b98d8f603b9560366a1.zip
gas/riscv: Remove unneeded structure
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
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-riscv.c8
2 files changed, 6 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 09991524da1..f3b8d33a308 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index e50505138e9..5d95ee8eee3 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -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;