diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-04-25 11:15:25 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-04-25 11:15:25 +0200 |
commit | 85bd4bfb7f4e1adf4d3864df9ee16f9597fe15b4 (patch) | |
tree | 962e5fef68a79967dd4b19a6f7171a5fd1dbd452 | |
parent | 538edc49dc610b987f8929434f883c8bbc211be8 (diff) | |
download | gdb-85bd4bfb7f4e1adf4d3864df9ee16f9597fe15b4.zip gdb-85bd4bfb7f4e1adf4d3864df9ee16f9597fe15b4.tar.gz gdb-85bd4bfb7f4e1adf4d3864df9ee16f9597fe15b4.tar.bz2 |
RISC-V: minor effort reduction in relocation specifier parsing
The sole caller of parse_relocation() has already checked for the %
prefix, so there's no need to check for it again in the strncasecmp()
and there's also no reason to make the involved string literals longer
than necessary.
-rw-r--r-- | gas/config/tc-riscv.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 4eff07a..82dfea1 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -2149,34 +2149,34 @@ macro (struct riscv_cl_insn *ip, expressionS *imm_expr, static const struct percent_op_match percent_op_utype[] = { - {"%tprel_hi", BFD_RELOC_RISCV_TPREL_HI20}, - {"%pcrel_hi", BFD_RELOC_RISCV_PCREL_HI20}, - {"%got_pcrel_hi", BFD_RELOC_RISCV_GOT_HI20}, - {"%tls_ie_pcrel_hi", BFD_RELOC_RISCV_TLS_GOT_HI20}, - {"%tls_gd_pcrel_hi", BFD_RELOC_RISCV_TLS_GD_HI20}, - {"%hi", BFD_RELOC_RISCV_HI20}, + {"tprel_hi", BFD_RELOC_RISCV_TPREL_HI20}, + {"pcrel_hi", BFD_RELOC_RISCV_PCREL_HI20}, + {"got_pcrel_hi", BFD_RELOC_RISCV_GOT_HI20}, + {"tls_ie_pcrel_hi", BFD_RELOC_RISCV_TLS_GOT_HI20}, + {"tls_gd_pcrel_hi", BFD_RELOC_RISCV_TLS_GD_HI20}, + {"hi", BFD_RELOC_RISCV_HI20}, {0, 0} }; static const struct percent_op_match percent_op_itype[] = { - {"%lo", BFD_RELOC_RISCV_LO12_I}, - {"%tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_I}, - {"%pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_I}, + {"lo", BFD_RELOC_RISCV_LO12_I}, + {"tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_I}, + {"pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_I}, {0, 0} }; static const struct percent_op_match percent_op_stype[] = { - {"%lo", BFD_RELOC_RISCV_LO12_S}, - {"%tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_S}, - {"%pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_S}, + {"lo", BFD_RELOC_RISCV_LO12_S}, + {"tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_S}, + {"pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_S}, {0, 0} }; static const struct percent_op_match percent_op_rtype[] = { - {"%tprel_add", BFD_RELOC_RISCV_TPREL_ADD}, + {"tprel_add", BFD_RELOC_RISCV_TPREL_ADD}, {0, 0} }; @@ -2194,14 +2194,14 @@ parse_relocation (char **str, bfd_reloc_code_real_type *reloc, const struct percent_op_match *percent_op) { for ( ; percent_op->str; percent_op++) - if (strncasecmp (*str, percent_op->str, strlen (percent_op->str)) == 0) + if (strncasecmp (*str + 1, percent_op->str, strlen (percent_op->str)) == 0) { - int len = strlen (percent_op->str); + size_t len = 1 + strlen (percent_op->str); if (!ISSPACE ((*str)[len]) && (*str)[len] != '(') continue; - *str += strlen (percent_op->str); + *str += len; *reloc = percent_op->reloc; /* Check whether the output BFD supports this relocation. |