public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/7] arc: Add new ARCv3 isa support to ARC's backend
@ 2023-09-19  8:12 Claudiu Zissulescu
  2023-09-19  8:12 ` [PATCH 1/7] arc: Add new GAS tests for ARCv3 Claudiu Zissulescu
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Claudiu Zissulescu @ 2023-09-19  8:12 UTC (permalink / raw)
  To: binutils

Hi all,

Before pushing the new ARCv3 ISA modifications to ARC's backend. I
would like to publish the mods here for flushing out any
missunderstanding of my modifications which are tuching the mainline
configuration files.

The new ARCv3 ISA is represented by two new new DesignWare ARC HS5x
and HS6x processor IP families for high-performance embedded
applications. The 32-bit ARC HS5x and 64-bit HS6x processors,
available in single-core and multicore versions, are implementations
of a new superscalar ARCv3 Instruction Set Architecture (ISA).  The
HS5x processors feature a 32-bit pipeline that can execute all ARCv3
32-bit instructions, while the HS6x processors feature a full 64-bit
pipeline and register file that can execute both 32-bit and 64-bit
instructions.  In addition, the ARC HS6x supports 64-bit virtual and
52-bit physical address spaces to enable direct addressing of current
and future large memories, as well as 128-bit loads and stores for
efficient data movement.  Like all ARC processors, the HS5x and HS6x
processors are highly configurable and implement ARC Processor
EXtension (APEX) technology that enables the support of custom
instructions to meet the unique performance, power, and area
requirements of each target application.

The new ARCv3 isa support is using the current ARCv1/ARCv2 binutils
backend adding a number of modifications:

- Uses a new `bfd/elfnn-arc.c` BFD template file to generate the
  ARCv1/ARCv2 bfd file, ARC32 bfd file and ARC64 bfd file.

- All ARCv3 32/64bit tests are placed in coresponding `gas/arc64` and
  `ld/arc64` folders.

- Two new ARC machines are recognized, namely arc32-*-* and arc64-*-*.

- New ARC 32/64 bit relocations are added.

- GAS configure produces two new defines used by ARC, namely
  TARGET_ARCV3_64 and TARGET_ARCv3_32. These defines are used to
  select the rigth parts in tc-arc.{c,h}.

- ARCv3 ISA uses a new FPU unit which requires separate register file.


Contributors:
Claudiu Zissulescu <claziss@synopsys.com>
Cupertino Miranda <cupertino.miranda@oracle.com> <cmiranda@synopsys.com>


Claudiu Zissulescu (7):
  arc: Add new GAS tests for ARCv3.
  arc: Add new LD tests for ARCv3.
  arc: Add new ARCv3 ISA to BFD.
  arc: Add new linker emulation and scripts for ARCv3 ISA.
  arc: Update opcode related include files for ARCv3.
  arc: Update ARC's Gnu Assembler backend with ARCv3 ISA.
  arc: Add new opcode functions for ARCv3 ISA.

 bfd/Makefile.am                               |   23 +-
 bfd/Makefile.in                               |   27 +-
 bfd/arc-got.h                                 |  253 +-
 bfd/arc-plt.c                                 |  121 +
 bfd/arc-plt.def                               |  127 +-
 bfd/arc-plt.h                                 |   93 +-
 bfd/archures.c                                |    5 +
 bfd/bfd-in2.h                                 |   25 +
 bfd/config.bfd                                |   20 +-
 bfd/configure                                 |    6 +-
 bfd/configure.ac                              |    6 +-
 bfd/cpu-arc.c                                 |   79 +-
 bfd/cpu-arc64.c                               |   75 +
 bfd/{elf32-arc.c => elfnn-arc.c}              | 1486 +++++---
 bfd/libbfd.h                                  |   22 +
 bfd/reloc.c                                   |   44 +
 bfd/targets.c                                 |    6 +
 gas/config.in                                 |    6 +
 gas/config/tc-arc.c                           |  723 ++--
 gas/config/tc-arc.h                           |   46 +-
 gas/configure                                 |   14 +-
 gas/configure.ac                              |   10 +-
 gas/configure.tgt                             |    5 +-
 gas/testsuite/gas/arc64/arc64.exp             |   24 +
 gas/testsuite/gas/arc64/float01.d             |   65 +
 gas/testsuite/gas/arc64/float01.s             |   64 +
 gas/testsuite/gas/arc64/ldd.d                 |   46 +
 gas/testsuite/gas/arc64/ldd.s                 |   55 +
 gas/testsuite/gas/arc64/lddl.d                |   48 +
 gas/testsuite/gas/arc64/lddl.s                |   54 +
 gas/testsuite/gas/arc64/load.d                |   70 +
 gas/testsuite/gas/arc64/load.s                |   82 +
 gas/testsuite/gas/arc64/st.d                  |   61 +
 gas/testsuite/gas/arc64/st.s                  |   68 +
 gas/testsuite/gas/arc64/std.d                 |   55 +
 gas/testsuite/gas/arc64/std.s                 |   60 +
 gas/testsuite/gas/arc64/stdl.d                |   35 +
 gas/testsuite/gas/arc64/stdl.s                |   37 +
 gas/testsuite/gas/arc64/stl.d                 |   46 +
 gas/testsuite/gas/arc64/stl.s                 |   50 +
 include/elf/arc-cpu.def                       |   63 +-
 include/elf/arc-reloc.def                     |  171 +-
 include/elf/arc.h                             |    1 +
 include/opcode/arc-attrs.h                    |    4 +-
 include/opcode/arc-func.h                     |  188 +-
 include/opcode/arc.h                          |  121 +-
 ld/Makefile.am                                |    4 +
 ld/Makefile.in                                |    8 +
 ld/configure.tgt                              |   21 +-
 ld/emulparams/arc64elf32.sh                   |   12 +
 ld/emulparams/arc64elf64.sh                   |   12 +
 ld/emulparams/arc64linux32.sh                 |   22 +
 ld/emulparams/arc64linux64.sh                 |   22 +
 ld/scripttempl/elfarc.sc                      |   18 +-
 ld/testsuite/ld-arc/got-weak.d                |   12 -
 ld/testsuite/ld-arc/got-weak.s                |    7 -
 .../ld-arc64/arcv3_64-reloc-near-exe.dd       |   29 +
 .../ld-arc64/arcv3_64-reloc-near-so.dd        |   21 +
 ld/testsuite/ld-arc64/arcv3_64-reloc-near.s   |   11 +
 ld/testsuite/ld-arc64/arcv3_64.exp            |   48 +
 ld/testsuite/ld-arc64/bl34.dd                 |   12 +
 ld/testsuite/ld-arc64/bl34.s                  |   13 +
 ld/testsuite/ld-arc64/linkscript.ld           |    5 +
 ld/testsuite/ld-arc64/plt34-got.dd            |    9 +
 ld/testsuite/ld-arc64/plt34-got.s             |    9 +
 ld/testsuite/ld-arc64/plt34-reloc.dd          |   12 +
 ld/testsuite/ld-arc64/plt34-reloc.s           |   14 +
 opcodes/Makefile.am                           |    1 +
 opcodes/Makefile.in                           |    2 +
 opcodes/arc-dis.c                             |  290 +-
 opcodes/arc-ext-tbl.h                         |  124 -
 opcodes/arc-flag-classes.def                  |  125 +
 opcodes/arc-flag.def                          |  179 +
 opcodes/arc-fxi.h                             |   60 +
 opcodes/arc-opc.c                             | 2990 +----------------
 opcodes/arc-operands.def                      |  502 +++
 opcodes/arc-regs.h                            |    8 +-
 opcodes/arc64-opc.c                           |  834 +++++
 opcodes/arcxx-opc.inc                         | 1840 ++++++++++
 opcodes/configure                             |    1 +
 opcodes/configure.ac                          |    1 +
 opcodes/disassemble.c                         |    6 +
 82 files changed, 7686 insertions(+), 4288 deletions(-)
 create mode 100644 bfd/arc-plt.c
 create mode 100644 bfd/cpu-arc64.c
 rename bfd/{elf32-arc.c => elfnn-arc.c} (68%)
 create mode 100644 gas/testsuite/gas/arc64/arc64.exp
 create mode 100644 gas/testsuite/gas/arc64/float01.d
 create mode 100644 gas/testsuite/gas/arc64/float01.s
 create mode 100644 gas/testsuite/gas/arc64/ldd.d
 create mode 100644 gas/testsuite/gas/arc64/ldd.s
 create mode 100644 gas/testsuite/gas/arc64/lddl.d
 create mode 100644 gas/testsuite/gas/arc64/lddl.s
 create mode 100644 gas/testsuite/gas/arc64/load.d
 create mode 100644 gas/testsuite/gas/arc64/load.s
 create mode 100644 gas/testsuite/gas/arc64/st.d
 create mode 100644 gas/testsuite/gas/arc64/st.s
 create mode 100644 gas/testsuite/gas/arc64/std.d
 create mode 100644 gas/testsuite/gas/arc64/std.s
 create mode 100644 gas/testsuite/gas/arc64/stdl.d
 create mode 100644 gas/testsuite/gas/arc64/stdl.s
 create mode 100644 gas/testsuite/gas/arc64/stl.d
 create mode 100644 gas/testsuite/gas/arc64/stl.s
 create mode 100644 ld/emulparams/arc64elf32.sh
 create mode 100644 ld/emulparams/arc64elf64.sh
 create mode 100644 ld/emulparams/arc64linux32.sh
 create mode 100644 ld/emulparams/arc64linux64.sh
 delete mode 100644 ld/testsuite/ld-arc/got-weak.d
 delete mode 100644 ld/testsuite/ld-arc/got-weak.s
 create mode 100644 ld/testsuite/ld-arc64/arcv3_64-reloc-near-exe.dd
 create mode 100644 ld/testsuite/ld-arc64/arcv3_64-reloc-near-so.dd
 create mode 100644 ld/testsuite/ld-arc64/arcv3_64-reloc-near.s
 create mode 100644 ld/testsuite/ld-arc64/arcv3_64.exp
 create mode 100644 ld/testsuite/ld-arc64/bl34.dd
 create mode 100644 ld/testsuite/ld-arc64/bl34.s
 create mode 100644 ld/testsuite/ld-arc64/linkscript.ld
 create mode 100644 ld/testsuite/ld-arc64/plt34-got.dd
 create mode 100644 ld/testsuite/ld-arc64/plt34-got.s
 create mode 100644 ld/testsuite/ld-arc64/plt34-reloc.dd
 create mode 100644 ld/testsuite/ld-arc64/plt34-reloc.s
 delete mode 100644 opcodes/arc-ext-tbl.h
 create mode 100644 opcodes/arc-flag-classes.def
 create mode 100644 opcodes/arc-flag.def
 create mode 100644 opcodes/arc-operands.def
 create mode 100644 opcodes/arc64-opc.c
 create mode 100644 opcodes/arcxx-opc.inc

-- 
2.30.2


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-09-19  8:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-19  8:12 [PATCH 0/7] arc: Add new ARCv3 isa support to ARC's backend Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 1/7] arc: Add new GAS tests for ARCv3 Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 2/7] arc: Add new LD " Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 3/7] arc: Add new ARCv3 ISA to BFD Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 4/7] arc: Add new linker emulation and scripts for ARCv3 ISA Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 5/7] arc: Update opcode related include files for ARCv3 Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 6/7] arc: Update ARC's Gnu Assembler backend with ARCv3 ISA Claudiu Zissulescu
2023-09-19  8:12 ` [PATCH 7/7] arc: Add new opcode functions for " Claudiu Zissulescu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).