This is the mail archive of the
mailing list for the binutils project.
[PATCHv3 0/7] Add initial arc nps400 support
- From: Andrew Burgess <andrew dot burgess at embecosm dot com>
- To: binutils at sourceware dot org
- Cc: Claudiu dot Zissulescu at synopsys dot com, Cupertino dot Miranda at synopsys dot com, noamca at mellanox dot com, Nick Clifton <nickc at redhat dot com>, Andreas Schwab <schwab at suse dot de>, Andrew Burgess <andrew dot burgess at embecosm dot com>
- Date: Tue, 15 Mar 2016 23:01:34 +0000
- Subject: [PATCHv3 0/7] Add initial arc nps400 support
- Authentication-results: sourceware.org; auth=none
- References: <cover dot 1456947552 dot git dot andrew dot burgess at embecosm dot com>
Here's a rewrite that removes the need to use the vendor string in
order change the behaviour of binutils.
I didn't set out to expand my 2 patch series into a 7 patch series in
order to prove that avoiding the vendor string resulted in a bunch of
extra code :) though I can understand if it looks that way.
Patch 1 is a bug fix for a new big-endian arc regression that has
Patch 2 was patch 1 in the previous series.
Patch 3 and 4 are clean up of the constants used to setup the elf
header flags. I hadn't looked at these too closely before, but now I
needed to add a new one I though this code could be simplified.
Patch 5 adds the new nps400 cpu type, this is the code that replaces
the use of the vendor string in the old patch 2 from my previous
iteration of this series. I have now split this out into its own
patch as there's more of it.
Patch 6 is a new patch that modifies the way that the CLASS attribute
of arc flag operands are used. This makes the final patch smaller
than it was previously.
Patch 7 is the new instruction part of what used to be patch 2 in the
previous iteration of this series. I've now included a few more
instructions, so there's a few more operands. However, thanks to
patch 6 there's actually less insert/extract code than before.
Is this OK?
 I still don't understand why that's a bad thing though....
Andrew Burgess (7):
gas/arc: Fix test for big-endian arc
arc/gas: default mach is arc700, initialised in md_begin
arc: Remove duplicated constant in include/elf/arc.h
arc: Remove EF_ARC_CPU_GENERIC constant.
arc: Add nps400 machine type, and assembler flag.
arc/opcodes: Use flag operand class to handle multiple flag matches
arc/nps400: Add first nps400 instructions
bfd/ChangeLog | 21 +++
bfd/archures.c | 1 +
bfd/bfd-in2.h | 1 +
bfd/cpu-arc.c | 5 +-
bfd/elf32-arc.c | 16 +--
binutils/ChangeLog | 13 ++
binutils/readelf.c | 9 +-
binutils/testsuite/binutils-all/objdump.exp | 2 +-
gas/ChangeLog | 44 ++++++
gas/config/tc-arc.c | 104 +++++++-------
gas/testsuite/gas/arc/asm-errors.d | 2 +
gas/testsuite/gas/arc/asm-errors.err | 4 +
gas/testsuite/gas/arc/asm-errors.s | 4 +
gas/testsuite/gas/arc/inline-data-1.d | 1 +
gas/testsuite/gas/arc/inline-data-2.d | 9 ++
gas/testsuite/gas/arc/nps400-0.d | 15 +++
gas/testsuite/gas/arc/nps400-0.s | 2 +
gas/testsuite/gas/arc/nps400-1.d | 18 +++
gas/testsuite/gas/arc/nps400-1.s | 12 ++
include/ChangeLog | 27 ++++
include/elf/arc.h | 12 +-
include/opcode/arc.h | 25 ++--
opcodes/ChangeLog | 28 ++++
opcodes/arc-dis.c | 4 +
opcodes/arc-nps400-tbl.h | 11 ++
opcodes/arc-opc.c | 201 ++++++++++++++++++++++++----
26 files changed, 476 insertions(+), 115 deletions(-)
create mode 100644 gas/testsuite/gas/arc/asm-errors.d
create mode 100644 gas/testsuite/gas/arc/asm-errors.err
create mode 100644 gas/testsuite/gas/arc/asm-errors.s
create mode 100644 gas/testsuite/gas/arc/inline-data-2.d
create mode 100644 gas/testsuite/gas/arc/nps400-0.d
create mode 100644 gas/testsuite/gas/arc/nps400-0.s
create mode 100644 gas/testsuite/gas/arc/nps400-1.d
create mode 100644 gas/testsuite/gas/arc/nps400-1.s
create mode 100644 opcodes/arc-nps400-tbl.h