From c4212e111cdd46d3b7da8b60c5adf39b8654e3c6 Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Sat, 28 May 2016 22:31:07 -0400 Subject: [PATCH] sh{,64}: make arg type enum The values are always members of the enum, except the two places -1 is assigned only to playcate -Wuninitialized because gcc isn't or at least didn't used to be smart enough to figure out its only used if it was set. gas/ChangeLog: 2016-06-05 Trevor Saunders * config/tc-sh.c (parse_reg): Change type of mode argument to sh_arg_type. (get_operand): Adjust. (insert): Change type of how to bfd_reloc_code_real_type. (insert4): Likewise. * config/tc-sh64.c (shmedia_get_operand): Adjust. (shmedia_parse_reg): Change type of mode to shmedia_arg_type. --- gas/ChangeLog | 10 ++++++++++ gas/config/tc-sh.c | 14 ++++++++------ gas/config/tc-sh64.c | 8 +++++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index cae94da70e..c97aa1d068 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2016-06-05 Trevor Saunders + + * config/tc-sh.c (parse_reg): Change type of mode argument to + sh_arg_type. + (get_operand): Adjust. + (insert): Change type of how to bfd_reloc_code_real_type. + (insert4): Likewise. + * config/tc-sh64.c (shmedia_get_operand): Adjust. + (shmedia_parse_reg): Change type of mode to shmedia_arg_type. + 2016-06-05 Trevor Saunders * config/tc-nds32.c (nds32_parse_option): Make the type of ptr_arg diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index b15acf8e8d..f65fbb22de 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -987,7 +987,7 @@ static int reg_b; /* Try to parse a reg name. Return the number of chars consumed. */ static unsigned int -parse_reg_without_prefix (char *src, int *mode, int *reg) +parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) { char l0 = TOLOWER (src[0]); char l1 = l0 ? TOLOWER (src[1]) : 0; @@ -1346,7 +1346,7 @@ parse_reg_without_prefix (char *src, int *mode, int *reg) $-prefixed register names if enabled by the user. */ static unsigned int -parse_reg (char *src, int *mode, int *reg) +parse_reg (char *src, sh_arg_type *mode, int *reg) { unsigned int prefix; unsigned int consumed; @@ -1411,7 +1411,7 @@ static char * parse_at (char *src, sh_operand_info *op) { int len; - int mode; + sh_arg_type mode; src++; if (src[0] == '@') { @@ -1583,7 +1583,7 @@ static void get_operand (char **ptr, sh_operand_info *op) { char *src = *ptr; - int mode = -1; + sh_arg_type mode = (sh_arg_type) -1; unsigned int len; if (src[0] == '#') @@ -2235,7 +2235,8 @@ get_specific (sh_opcode_info *opcode, sh_operand_info *operands) } static void -insert (char *where, int how, int pcrel, sh_operand_info *op) +insert (char *where, bfd_reloc_code_real_type how, int pcrel, + sh_operand_info *op) { fix_new_exp (frag_now, where - frag_now->fr_literal, @@ -2246,7 +2247,8 @@ insert (char *where, int how, int pcrel, sh_operand_info *op) } static void -insert4 (char * where, int how, int pcrel, sh_operand_info * op) +insert4 (char * where, bfd_reloc_code_real_type how, int pcrel, + sh_operand_info * op) { fix_new_exp (frag_now, where - frag_now->fr_literal, diff --git a/gas/config/tc-sh64.c b/gas/config/tc-sh64.c index 4de044c21e..d4627f86fb 100644 --- a/gas/config/tc-sh64.c +++ b/gas/config/tc-sh64.c @@ -133,7 +133,8 @@ static const unsigned char shmedia_little_nop_pattern[4] = }; static void shmedia_md_begin (void); -static int shmedia_parse_reg (char *, int *, int *, shmedia_arg_type); +static int shmedia_parse_reg (char *, shmedia_arg_type *, int *, + shmedia_arg_type); static void shmedia_md_assemble (char *); static void shmedia_md_apply_fix (fixS *, valueT *); static int shmedia_md_estimate_size_before_relax (fragS *, segT); @@ -1611,7 +1612,8 @@ shmedia_immediate_op (char *where, shmedia_operand_info *op, int pcrel, chars consumed. */ static int -shmedia_parse_reg (char *src, int *mode, int *reg, shmedia_arg_type argtype) +shmedia_parse_reg (char *src, shmedia_arg_type *mode, int *reg, + shmedia_arg_type argtype) { int l0 = TOLOWER (src[0]); int l1 = l0 ? TOLOWER (src[1]) : 0; @@ -2222,7 +2224,7 @@ shmedia_get_operand (char **ptr, shmedia_operand_info *op, shmedia_arg_type argtype) { char *src = *ptr; - int mode = -1; + shmedia_arg_type mode = (shmedia_arg_type) -1; unsigned int len; len = shmedia_parse_reg (src, &mode, &(op->reg), argtype); -- 2.34.1