summaryrefslogtreecommitdiff
path: root/gas/config/tc-rx.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2013-07-18 12:15:15 +0000
committerNick Clifton <nickc@redhat.com>2013-07-18 12:15:15 +0000
commitf0c0028234ccf31aed655d454d60f25d4f213f8d (patch)
tree1468360d47ccef76606d15761d2159957216b1b6 /gas/config/tc-rx.c
parent39f21624991525f1f937a796cf008654a8596240 (diff)
downloadbinutils-gdb-f0c0028234ccf31aed655d454d60f25d4f213f8d.tar.gz
* config/rx-defs.h: Add macros for RX100, RX200, RX600, and
RX610. * config/rx-parse.y: (rx_check_float_support): Add function to check floating point operation support for target RX100 and RX200. * config/tc-rx.c: Add CPU options RX100, RX200, RX600, and RX610. * doc/c-rx.texi: Add -mcpu option to recognize macros for RX100, RX200, RX600, and RX610
Diffstat (limited to 'gas/config/tc-rx.c')
-rw-r--r--gas/config/tc-rx.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c
index b1d0b20773c..f15ed93c4d4 100644
--- a/gas/config/tc-rx.c
+++ b/gas/config/tc-rx.c
@@ -1,6 +1,5 @@
/* tc-rx.c -- Assembler for the Renesas RX
- Copyright 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright 2008-2013 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -56,6 +55,8 @@ static int rx_num_int_regs = 0;
int rx_pid_register;
int rx_gp_register;
+enum rx_cpu_types rx_cpu = RX600;
+
static void rx_fetchalign (int ignore ATTRIBUTE_UNUSED);
enum options
@@ -72,6 +73,7 @@ enum options
OPTION_INT_REGS,
OPTION_USES_GCC_ABI,
OPTION_USES_RX_ABI,
+ OPTION_CPU,
};
#define RX_SHORTOPTS ""
@@ -98,6 +100,7 @@ struct option md_longopts[] =
{"mint-register", required_argument, NULL, OPTION_INT_REGS},
{"mgcc-abi", no_argument, NULL, OPTION_USES_GCC_ABI},
{"mrx-abi", no_argument, NULL, OPTION_USES_RX_ABI},
+ {"mcpu",required_argument,NULL,OPTION_CPU},
{NULL, no_argument, NULL, 0}
};
size_t md_longopts_size = sizeof (md_longopts);
@@ -155,6 +158,22 @@ md_parse_option (int c ATTRIBUTE_UNUSED, char * arg ATTRIBUTE_UNUSED)
case OPTION_USES_RX_ABI:
elf_flags |= E_FLAG_RX_ABI;
return 1;
+
+ case OPTION_CPU:
+ if (strcasecmp (arg, "rx100") == 0)
+ rx_cpu = RX100;
+ else if (strcasecmp (arg, "rx200") == 0)
+ rx_cpu = RX200;
+ else if (strcasecmp (arg, "rx600") == 0)
+ rx_cpu = RX600;
+ else if (strcasecmp (arg, "rx610") == 0)
+ rx_cpu = RX610;
+ else
+ {
+ as_warn (_("unrecognised RX CPU type %s"), arg);
+ break;
+ }
+ return 1;
}
return 0;
}
@@ -173,6 +192,7 @@ md_show_usage (FILE * stream)
fprintf (stream, _(" --mrelax\n"));
fprintf (stream, _(" --mpid\n"));
fprintf (stream, _(" --mint-register=<value>\n"));
+ fprintf (stream, _(" --mcpu=<rx100|rx200|rx600|rx610>\n"));
}
static void