diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-12-12 08:49:00 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-12-12 08:49:00 +0100 |
commit | daf15e3e96bf99ec5d3d8a610c3cf44bcc5b1cf1 (patch) | |
tree | 08118ddc3d9eef95a693865c2203e153a34d87fa /gas | |
parent | 313095ba2d898d46b768ddc804707b17212567ee (diff) | |
download | fsf-binutils-gdb-daf15e3e96bf99ec5d3d8a610c3cf44bcc5b1cf1.zip fsf-binutils-gdb-daf15e3e96bf99ec5d3d8a610c3cf44bcc5b1cf1.tar.gz fsf-binutils-gdb-daf15e3e96bf99ec5d3d8a610c3cf44bcc5b1cf1.tar.bz2 |
x86: drop sentinel from i386_optab[]
Now that the table is local to gas, ARRAY_SIZE() can be used to
determine the end of the table. Re-arrange the processing loop in
md_begin() accordingly, at the same time folding the two calls to
notes_alloc() into just one.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/tc-i386.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index e68ff2f..fce8631 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2973,31 +2973,20 @@ md_begin (void) op_hash = str_htab_create (); { - const insn_template *optab; - templates *core_optab; + const insn_template *optab = i386_optab; + const insn_template *end = optab + ARRAY_SIZE (i386_optab); - /* Setup for loop. */ - optab = i386_optab; - core_optab = notes_alloc (sizeof (*core_optab)); - core_optab->start = optab; - - while (1) + while (optab < end) { - ++optab; - if (optab->name == NULL - || strcmp (optab->name, (optab - 1)->name) != 0) - { - /* different name --> ship out current template list; - add to hash table; & begin anew. */ - core_optab->end = optab; - if (str_hash_insert (op_hash, (optab - 1)->name, core_optab, 0)) - as_fatal (_("duplicate %s"), (optab - 1)->name); + templates *core_optab = notes_alloc (sizeof (*core_optab)); - if (optab->name == NULL) - break; - core_optab = notes_alloc (sizeof (*core_optab)); - core_optab->start = optab; - } + core_optab->start = optab; + while (++optab < end) + if (strcmp (optab->name, optab[-1].name) != 0) + break; + core_optab->end = optab; + if (str_hash_insert (op_hash, optab[-1].name, core_optab, 0)) + as_fatal (_("duplicate %s"), optab[-1].name); } } |