aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/NEWS3
-rw-r--r--gas/as.c6
-rw-r--r--gas/config.in3
-rw-r--r--gas/config/tc-arc.c9
-rwxr-xr-xgas/configure18
-rw-r--r--gas/configure.ac11
6 files changed, 46 insertions, 4 deletions
diff --git a/gas/NEWS b/gas/NEWS
index f5708a2..4bcf6de 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -34,6 +34,9 @@
* Add assembly-time relaxation option for ARC cpus.
+* Add --with-cpu=TYPE configure option for ARC gas. This allows the default
+ cpu type to be adjusted at configure time.
+
Changes in 2.26:
* Add a configure option --enable-compressed-debug-sections={all,gas} to
diff --git a/gas/as.c b/gas/as.c
index 8784fb4..6ccf167 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -665,8 +665,14 @@ parse_args (int * pargc, char *** pargv)
This program is free software; you may redistribute it under the terms of\n\
the GNU General Public License version 3 or later.\n\
This program has absolutely no warranty.\n"));
+#ifdef TARGET_WITH_CPU
+ printf (_("This assembler was configured for a target of `%s' "
+ "and default,\ncpu type `%s'.\n"),
+ TARGET_ALIAS, TARGET_WITH_CPU);
+#else
printf (_("This assembler was configured for a target of `%s'.\n"),
TARGET_ALIAS);
+#endif
exit (EXIT_SUCCESS);
case OPTION_EMULATION:
diff --git a/gas/config.in b/gas/config.in
index e06f160..5129c28 100644
--- a/gas/config.in
+++ b/gas/config.in
@@ -318,6 +318,9 @@
/* Target vendor. */
#undef TARGET_VENDOR
+/* Target specific CPU. */
+#undef TARGET_WITH_CPU
+
/* Use b modifier when opening binary files? */
#undef USE_BINARY_FOPEN
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 155d991..2046604 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -51,6 +51,10 @@
/* Equal to MAX_PRECISION in atof-ieee.c. */
#define MAX_LITTLENUMS 6
+#ifndef TARGET_WITH_CPU
+#define TARGET_WITH_CPU "arc700"
+#endif /* TARGET_WITH_CPU */
+
/* Enum used to enumerate the relaxable ins operands. */
enum rlx_operand_type
{
@@ -2466,7 +2470,7 @@ md_begin (void)
const struct arc_opcode *opcode = arc_opcodes;
if (!mach_type_specified_p)
- arc_select_cpu ("arc700");
+ arc_select_cpu (TARGET_WITH_CPU);
/* The endianness can be chosen "at the factory". */
target_big_endian = byte_order == BIG_ENDIAN;
@@ -3401,7 +3405,8 @@ md_show_usage (FILE *stream)
{
fprintf (stream, _("ARC-specific assembler options:\n"));
- fprintf (stream, " -mcpu=<cpu name>\t assemble for CPU <cpu name>\n");
+ fprintf (stream, " -mcpu=<cpu name>\t assemble for CPU <cpu name> "
+ "(default: %s)\n", TARGET_WITH_CPU);
fprintf (stream, " -mcpu=nps400\t\t same as -mcpu=arc700 -mnps400\n");
fprintf (stream, " -mA6/-mARC600/-mARC601 same as -mcpu=arc600\n");
fprintf (stream, " -mA7/-mARC700\t\t same as -mcpu=arc700\n");
diff --git a/gas/configure b/gas/configure
index b6298b5..b66f712 100755
--- a/gas/configure
+++ b/gas/configure
@@ -771,6 +771,7 @@ enable_x86_relax_relocations
enable_elf_stt_common
enable_werror
enable_build_warnings
+with_cpu
enable_nls
enable_maintainer_mode
with_system_zlib
@@ -1435,6 +1436,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-cpu=CPU default cpu variant is CPU (currently only supported
+ on ARC)
--with-system-zlib use installed libz
Some influential environment variables:
@@ -10982,7 +10985,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10985 "configure"
+#line 10988 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11088,7 +11091,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11091 "configure"
+#line 11094 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11828,6 +11831,17 @@ fi
ac_config_headers="$ac_config_headers config.h:config.in"
+
+# Check whether --with-cpu was given.
+if test "${with_cpu+set}" = set; then :
+ withval=$with_cpu;
+cat >>confdefs.h <<_ACEOF
+#define TARGET_WITH_CPU "${with_cpu}"
+_ACEOF
+
+fi
+
+
# PR 14072
diff --git a/gas/configure.ac b/gas/configure.ac
index 8f71825..13f5107 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -106,6 +106,17 @@ AM_BINUTILS_WARNINGS
# Generate a header file
AC_CONFIG_HEADERS(config.h:config.in)
+dnl Option --with-cpu=TYPE allows configure type control of the default
+dnl cpu type within the assembler. Currently only the ARC target
+dnl supports this feature, but others may be added in the future.
+AC_ARG_WITH(cpu,
+ AS_HELP_STRING([--with-cpu=CPU],
+ [default cpu variant is CPU (currently only supported on ARC)]),
+ [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
+ "${with_cpu}",
+ [Target specific CPU.])],
+ [])
+
# PR 14072
AH_VERBATIM([00_CONFIG_H_CHECK],
[/* Check that config.h is #included before system headers