[PATCH 3/4] [ARC][committed] Code cleanup and improvements.
Claudiu Zissulescu
claziss@gmail.com
Mon Jan 13 09:19:00 GMT 2020
Code clean up and improvements when changing the cpu from command
line. Also, remove unused/old emulations.
gas/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (arc_select_cpu): Re-init the bfd if we change
the CPU.
* config/tc-arc.h: Add header if/defs.
* testsuite/gas/arc/pseudos.d: Improve matching pattern.
ls/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* Makefile.am: Remove earcelf_prof.c and earclinux_prof.c
emulations.
* Makefile.in: Regenerate.
* configure.tgt: Likewise.
* emulparams/arcelf_prof.sh: Remove file.
* emulparams/arclinux_prof.sh: Likewise.
opcodes/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (C_NE): Make it required.
---
gas/ChangeLog | 7 +++++++
gas/config/tc-arc.c | 12 +++++++++++-
gas/config/tc-arc.h | 7 +++++--
gas/testsuite/gas/arc/pseudos.d | 2 +-
ld/ChangeLog | 9 +++++++++
ld/Makefile.am | 4 ----
ld/Makefile.in | 6 ------
ld/configure.tgt | 4 ++--
ld/emulparams/arcelf_prof.sh | 26 --------------------------
ld/emulparams/arclinux_prof.sh | 27 ---------------------------
opcodes/ChangeLog | 4 ++++
opcodes/arc-opc.c | 2 +-
12 files changed, 40 insertions(+), 70 deletions(-)
delete mode 100644 ld/emulparams/arcelf_prof.sh
delete mode 100644 ld/emulparams/arclinux_prof.sh
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c6f93cc8d2..0bf722b209 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
+
+ * config/tc-arc.c (arc_select_cpu): Re-init the bfd if we change
+ the CPU.
+ * config/tc-arc.h: Add header if/defs.
+ * testsuite/gas/arc/pseudos.d: Improve matching pattern.
+
2020-01-13 Alan Modra <amodra@gmail.com>
* testsuite/gas/wasm32/allinsn.d: Update expected output.
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index ed1e3fb5dd..f8d469cc2e 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -841,6 +841,7 @@ static void
arc_select_cpu (const char *arg, enum mach_selection_type sel)
{
int i;
+ static struct cpu_type old_cpu = { 0, 0, 0, E_ARC_OSABI_CURRENT, 0 };
/* We should only set a default if we've not made a selection from some
other source. */
@@ -871,7 +872,6 @@ arc_select_cpu (const char *arg, enum mach_selection_type sel)
}
return;
}
-
/* Initialise static global data about selected machine type. */
selected_cpu.flags = cpu_types[i].flags;
selected_cpu.name = cpu_types[i].name;
@@ -889,7 +889,17 @@ arc_select_cpu (const char *arg, enum mach_selection_type sel)
/* Check if set features are compatible with the chosen CPU. */
arc_check_feature ();
+ /* If we change the CPU, we need to re-init the bfd. */
+ if (mach_selection_mode != MACH_SELECTION_NONE
+ && (old_cpu.mach != selected_cpu.mach))
+ {
+ bfd_find_target (arc_target_format, stdoutput);
+ if (! bfd_set_arch_mach (stdoutput, bfd_arch_arc, selected_cpu.mach))
+ as_warn (_("Could not set architecture and machine"));
+ }
+
mach_selection_mode = sel;
+ old_cpu = selected_cpu;
}
/* Here ends all the ARCompact extension instruction assembling
diff --git a/gas/config/tc-arc.h b/gas/config/tc-arc.h
index 9bd2ff67b3..b8eee4fb05 100644
--- a/gas/config/tc-arc.h
+++ b/gas/config/tc-arc.h
@@ -20,14 +20,15 @@
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-#include "opcode/arc.h"
-
+#ifndef TC_ARC
/* By convention, you should define this macro in the `.h' file. For
example, `tc-m68k.h' defines `TC_M68K'. You might have to use this
if it is necessary to add CPU specific code to the object format
file. */
#define TC_ARC
+#include "opcode/arc.h"
+
/* We want local label support. */
#define LOCAL_LABELS_FB 1
@@ -267,3 +268,5 @@ struct arc_relax_type
/* Number of flags. Used for re-assembling in md_convert_frag. */
int nflg;
};
+
+#endif
diff --git a/gas/testsuite/gas/arc/pseudos.d b/gas/testsuite/gas/arc/pseudos.d
index 9332f4d787..7f59d47239 100644
--- a/gas/testsuite/gas/arc/pseudos.d
+++ b/gas/testsuite/gas/arc/pseudos.d
@@ -6,7 +6,7 @@
Disassembly of section .text:
-00000000 <.text>:
+[0]+ <.text>:
0: 1cfc b008 st.aw r0,\[sp,-4\]
4: 1404 3401 ld.ab r1,\[sp,4\]
8: 0901 0002 brlt.* r1,r0,0 ;0x8
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 58f9b8b44c..0c4a056313 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
+
+ * Makefile.am: Remove earcelf_prof.c and earclinux_prof.c
+ emulations.
+ * configure.tgt: Likewise.
+ * Makefile.in: Regenerate.
+ * emulparams/arcelf_prof.sh: Remove file.
+ * emulparams/arclinux_prof.sh: Likewise.
+
2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
* scripttempl/elfarcv2.sc : Allow interrupt vector table to be
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 2c7e337cea..2ed13eba87 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -170,10 +170,8 @@ ALL_EMULATION_SOURCES = \
earcv2elf.c \
earcv2elfx.c \
earcelf.c \
- earcelf_prof.c \
earclinux.c \
earclinux_nps.c \
- earclinux_prof.c \
earm_wince_pe.c \
earmelf.c \
earmelf_fbsd.c \
@@ -660,10 +658,8 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elfx.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf_prof.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_nps.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_prof.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Pc@am__quote@
diff --git a/ld/Makefile.in b/ld/Makefile.in
index e79a8c855b..f635845643 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -660,10 +660,8 @@ ALL_EMULATION_SOURCES = \
earcv2elf.c \
earcv2elfx.c \
earcelf.c \
- earcelf_prof.c \
earclinux.c \
earclinux_nps.c \
- earclinux_prof.c \
earm_wince_pe.c \
earmelf.c \
earmelf_fbsd.c \
@@ -1215,10 +1213,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ealpha.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ealphavms.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf_prof.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_nps.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_prof.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elfx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Po@am__quote@
@@ -2266,10 +2262,8 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elfx.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf_prof.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_nps.Pc@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_prof.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Pc@am__quote@
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 18c3ba4c4d..23194e357f 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -105,7 +105,7 @@ alpha*-*-*vms*) targ_emul=alphavms
am33_2.0-*-linux*) targ_emul=elf32am33lin # mn10300 variant
;;
arc*-*-elf*) targ_emul=arcelf
- targ_extra_emuls="arcelf_prof arclinux arclinux_nps arclinux_prof arcv2elf arcv2elfx"
+ targ_extra_emuls="arclinux arclinux_nps arcv2elf arcv2elfx"
;;
arc*-*-linux*) case "${with_cpu}" in
nps400) targ_emul=arclinux_nps
@@ -115,7 +115,7 @@ arc*-*-linux*) case "${with_cpu}" in
targ_extra_emuls=arclinux_nps
;;
esac
- targ_extra_emuls="${targ_extra_emuls} arclinux_prof arcelf arcelf_prof arcv2elf arcv2elfx"
+ targ_extra_emuls="${targ_extra_emuls} arcelf arcv2elf arcv2elfx"
;;
arm*-*-cegcc*) targ_emul=arm_wince_pe
targ_extra_ofiles="deffilep.o pe-dll.o"
diff --git a/ld/emulparams/arcelf_prof.sh b/ld/emulparams/arcelf_prof.sh
deleted file mode 100644
index cd01769914..0000000000
--- a/ld/emulparams/arcelf_prof.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-source_sh ${srcdir}/emulparams/arc-endianness.sh
-SCRIPT_NAME=elfarc
-TEMPLATE_NAME=elf
-if [ "x${ARC_ENDIAN}" = "xbig" ]; then
- OUTPUT_FORMAT="elf32-bigarc"
-else
- OUTPUT_FORMAT="elf32-littlearc"
-fi
-LITTLE_OUTPUT_FORMAT="elf32-littlearc"
-BIG_OUTPUT_FORMAT="elf32-bigarc"
-# leave room for vector table, 32 vectors * 8 bytes
-TEXT_START_ADDR=0x100
-MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
-#NONPAGED_TEXT_START_ADDR=0x0
-ARCH=arc
-MACHINE=
-ENTRY=__start
-SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;'
-OTHER_READONLY_SECTIONS="
- .__arc_profile_desc ${RELOCATING-0} : { *(.__arc_profile_desc) }
- .__arc_profile_forward ${RELOCATING-0} : { *(.__arc_profile_forward) }
-"
-OTHER_BSS_SECTIONS="
- .__arc_profile_counters ${RELOCATING-0} : { *(.__arc_profile_counters) }
-"
-EMBEDDED=yes
diff --git a/ld/emulparams/arclinux_prof.sh b/ld/emulparams/arclinux_prof.sh
deleted file mode 100644
index da5ab405fb..0000000000
--- a/ld/emulparams/arclinux_prof.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-source_sh ${srcdir}/emulparams/arc-endianness.sh
-SCRIPT_NAME=arclinux
-if [ "x${ARC_ENDIAN}" = "xbig" ]; then
- OUTPUT_FORMAT="elf32-bigarc"
-else
- OUTPUT_FORMAT="elf32-littlearc"
-fi
-LITTLE_OUTPUT_FORMAT="elf32-littlearc"
-BIG_OUTPUT_FORMAT="elf32-bigarc"
-TEXT_START_ADDR=0x10000
-MAXPAGESIZE=0x2000
-COMMONPAGESIZE=0x2000
-NONPAGED_TEXT_START_ADDR=0x10000
-ARCH=arc
-MACHINE=
-ENTRY=__start
-TEMPLATE_NAME=elf
-EXTRA_EM_FILE=arclinux
-GENERATE_SHLIB_SCRIPT=yes
-SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;'
-OTHER_READONLY_SECTIONS="
- .__arc_profile_desc ${RELOCATING-0} : { *(.__arc_profile_desc) }
- .__arc_profile_forward ${RELOCATING-0} : { *(.__arc_profile_forward) }
-"
-OTHER_BSS_SECTIONS="
- .__arc_profile_counters ${RELOCATING-0} : { *(.__arc_profile_counters) }
-"
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 91ce742846..bb235dce4c 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2012-01-13 Claudiu Zissulescu <claziss@gmail.com>
+
+ * arc-opc.c (C_NE): Make it required.
+
2012-01-13 Claudiu Zissulescu <claziss@gmail.com>
* opcode/arc-dis.c (regnames): Correct ACCL/ACCH naming, fix typo
diff --git a/opcodes/arc-opc.c b/opcodes/arc-opc.c
index b90e5dad1b..675738aa6b 100644
--- a/opcodes/arc-opc.c
+++ b/opcodes/arc-opc.c
@@ -1691,7 +1691,7 @@ const struct arc_flag_class arc_flag_classes[] =
{ F_CLASS_OPTIONAL, { F_ASFAKE, F_NULL}},
#define C_NE (C_AS + 1)
- { F_CLASS_OPTIONAL, { F_NE, F_NULL}},
+ { F_CLASS_REQUIRED, { F_NE, F_NULL}},
/* ARC NPS400 Support: See comment near head of file. */
#define C_NPS_CL (C_NE + 1)
--
2.24.1
More information about the Binutils
mailing list