[RFC,0/7] nanoMIPS port

Message ID 1632662673568.98965@mediatek.com
Headers
Series nanoMIPS port |

Message

Dragan Mladjenovic Sept. 26, 2021, 1:24 p.m. UTC
  Hi all,


This is somewhat a continuation of the previous effort [1] to bring nanoMIPS support upstream.
We would like to move our toolchain releases [2] to something more closer to the upstream GCC.
As part of that, we are interested in feedback from the community if the current approach of
code sharing between nanoMIPS and MIPS backend is viable for future upstream inclusion?

The RFC presented here contains enough to produce the nanomips-elf toolchain when paired
with [3], [4], [5]. It targets a little-endian bare metal environment using p32 ABI with soft-float.
Any feedback on it will be appreciated.

Best regards,

Dragan


References:

[1] https://gcc.gnu.org/legacy-ml/gcc/2018-05/msg00012.html
[2] https://github.com/MediaTek-Labs/nanomips-gnu-toolchain/releases/tag/nanoMIPS-2021.07-01
[3] https://github.com/MediaTek-Labs/newlib/tree/mtk/newlib250
[4] https://github.com/MediaTek-Labs/binutils-gdb/tree/mtk/binutils_v9
[5] https://github.com/MediaTek-Labs/binutils-gdb/tree/mtk/gold_v7


  (Robert Suchanek)
  (Toma Tabacu)
  (Matthew Fortune)
  (Zoran Jovanovic)
  (Prachi Godbole)
  (Faraz Shahbazker)
  (Steve Ellcey)
  (Jack Romo)
  (Stefan Markovic)
  (Sara Popadic)
  (Mihailo Stojanovic)
  (Dragan Mladjenovic)
  Avoid references to register names in instruction output patterns
  Make mips-classic.md entry point for mips*-*-* targets
  Add nanoMIPS support
  Add test cases for nanoMIPS
  Fix unhelpful messages for disabled options
  Enable MIPS DSP rev3 ASE for nanoMIPS
  Add documentation for nanoMIPS


 config.sub                                    |    3 +-
 config/mt-nanomips (new)                      |    6 +
 configure                                     |    9 +-
 configure.ac                                  |    9 +-
 contrib/test_installed                        |    3 +-
 gcc/config.gcc                                |   65 +
 gcc/config/mips/constraints.md                |   57 +-
 gcc/config/mips/genopt-nanomips.sh (new +x)   |   74 +
 gcc/config/mips/i7200.md (new)                |  142 +
 gcc/config/mips/micromips.md                  |   12 +-
 gcc/config/mips/mips-classic.md (new)         |  142 +
 gcc/config/mips/mips-dsp.md                   |   17 +-
 gcc/config/mips/mips-ftypes.def               |    1 +
 gcc/config/mips/mips-opts.h                   |    8 +
 gcc/config/mips/mips-protos.h                 |   81 +-
 gcc/config/mips/mips.c                        | 3697 +++++++++++++++--
 gcc/config/mips/mips.h                        |  456 +-
 gcc/config/mips/mips.md                       | 1043 +++--
 gcc/config/mips/mips.opt                      |  126 +-
 gcc/config/mips/nanomips-cpus.def (new)       |   41 +
 gcc/config/mips/nanomips-tables.opt (new)     |   40 +
 gcc/config/mips/nanomips.h (new)              |  349 ++
 gcc/config/mips/nanomips.md (new)             |  285 ++
 gcc/config/mips/nanomips.opt (new)            |   60 +
 gcc/config/mips/predicates.md                 |  246 +-
 gcc/config/mips/t-nanomips (new)              |   23 +
 gcc/config/mips/t-nanomips-elf (new)          |   36 +
 gcc/configure                                 |    8 +
 gcc/configure.ac                              |    6 +
 gcc/doc/extend.texi                           |  124 +
 gcc/doc/invoke.texi                           |  367 ++
 gcc/doc/md.texi                               |   71 +
 gcc/opt-suggestions.c                         |    3 +
 gcc/optc-gen.awk                              |    5 +-
 gcc/opts.c                                    |    4 +
 .../gcc.target/nanomips/addiu48-1.c (new)     |   12 +
 .../gcc.target/nanomips/addiu48-2.c (new)     |   12 +
 .../gcc.target/nanomips/beqic-1.c (new)       |   13 +
 .../gcc.target/nanomips/bgeiuc-1.c (new)      |   31 +
 .../gcc.target/nanomips/bltc-1.c (new)        |   28 +
 .../gcc.target/nanomips/bltic-1.c (new)       |   11 +
 .../gcc.target/nanomips/bltiuc-1.c (new)      |   19 +
 .../gcc.target/nanomips/bnec-1.c (new)        |   11 +
 .../gcc.target/nanomips/bneic-1.c (new)       |   11 +
 .../gcc.target/nanomips/bnezc-1.c (new)       |   18 +
 .../gcc.target/nanomips/branch-2.c (new)      |   13 +
 .../gcc.target/nanomips/branch-3.c (new)      |   12 +
 .../gcc.target/nanomips/branch-4.c (new)      |   12 +
 .../gcc.target/nanomips/branch-5.c (new)      |   11 +
 .../gcc.target/nanomips/branch-helper.h (new) |  107 +
 .../gcc.target/nanomips/bswap-1.c (new)       |   10 +
 .../gcc.target/nanomips/bswap-2.c (new)       |    9 +
 .../gcc.target/nanomips/bswap-3.c (new)       |   13 +
 .../gcc.target/nanomips/bswap-4.c (new)       |    9 +
 .../gcc.target/nanomips/cache-1.c (new)       |   31 +
 .../gcc.target/nanomips/call-saved-1.c (new)  |   14 +
 .../gcc.target/nanomips/clear-cache-1.c (new) |   13 +
 .../gcc.target/nanomips/constraint-m.c (new)  |    9 +
 .../gcc.target/nanomips/dpaq_sa_l_w.c (new)   |   51 +
 .../gcc.target/nanomips/dpsq_sa_l_w.c (new)   |   37 +
 .../gcc.target/nanomips/dsp-ctrl.c (new)      |   69 +
 .../gcc.target/nanomips/dsp-lhxs.c (new)      |   11 +
 .../gcc.target/nanomips/dsp-no-lhx.c (new)    |   11 +
 .../gcc.target/nanomips/ext-5.c (new)         |   12 +
 .../gcc.target/nanomips/ext-7.c (new)         |   11 +
 .../gcc.target/nanomips/ext_ins.c (new)       |   25 +
 .../nanomips/fixed-scalar-type.c (new)        |  218 +
 .../nanomips/fixed-vector-type.c (new)        |  133 +
 .../gcc.target/nanomips/fp-alloca.c (new)     |   16 +
 .../gcc.target/nanomips/gprel-1.c (new)       |   20 +
 .../hazard-barrier-return-attribute.c (new)   |   19 +
 .../nanomips/inline-memcpy-1.c (new)          |   16 +
 .../nanomips/inline-memcpy-2.c (new)          |   15 +
 .../gcc.target/nanomips/ins-1.c (new)         |   17 +
 .../gcc.target/nanomips/ins-2.c (new)         |   17 +
 .../gcc.target/nanomips/jump-table-1.c (new)  |   38 +
 .../gcc.target/nanomips/jump-table.c (new)    |   21 +
 .../gcc.target/nanomips/length-1.c (new)      |   13 +
 .../gcc.target/nanomips/length-2.c (new)      |   11 +
 .../gcc.target/nanomips/lhxs.c (new)          |   11 +
 .../gcc.target/nanomips/li48-1.c (new)        |   11 +
 .../gcc.target/nanomips/li48-2.c (new)        |   12 +
 .../nanomips/libcall-abs-call.c (new)         |    9 +
 .../gcc.target/nanomips/long-calls-pg.c (new) |    7 +
 .../gcc.target/nanomips/lwm-swm.c (new)       |   17 +
 .../gcc.target/nanomips/lx-1.c (new)          |   20 +
 .../gcc.target/nanomips/lx-3.c (new)          |   15 +
 .../gcc.target/nanomips/madd-4.c (new)        |   27 +
 .../gcc.target/nanomips/maddu-3.c (new)       |   30 +
 .../gcc.target/nanomips/maddu-4.c (new)       |   30 +
 .../gcc.target/nanomips/memcpy-1.c (new)      |   20 +
 .../nanomips/mips-prepend-1.c (new)           |    8 +
 .../nanomips/mips32-dsp-run.c (new)           | 1063 +++++
 .../gcc.target/nanomips/mips32-dspr2.c (new)  |  541 +++
 .../gcc.target/nanomips/movcc-1.c (new)       |   19 +
 .../gcc.target/nanomips/movep-1.c (new)       |   17 +
 .../gcc.target/nanomips/movep-2.c (new)       |   13 +
 .../gcc.target/nanomips/msub-4.c (new)        |   21 +
 .../gcc.target/nanomips/msubu-4.c (new)       |   24 +
 .../gcc.target/nanomips/mulsize-1.c (new)     |   10 +
 .../gcc.target/nanomips/mulsize-2.c (new)     |   11 +
 .../gcc.target/nanomips/mulsize-3.c (new)     |   12 +
 .../gcc.target/nanomips/mulsize-4.c (new)     |   12 +
 .../gcc.target/nanomips/mulsize-5.c (new)     |   13 +
 .../gcc.target/nanomips/mulsize-6.c (new)     |   13 +
 .../nanomips-attr-nomicromips.c (new)         |    3 +
 .../nanomips/nanomips-attr-nomips16.c (new)   |    3 +
 .../nanomips/nanomips-dsp-accinit-2.c (new)   |   23 +
 .../gcc.target/nanomips/nanomips-dsp.c (new)  | 1160 ++++++
 .../nanomips/nanomips-dspr3-type-1.c (new)    |   30 +
 .../nanomips/nanomips-dspr3-type-2.c (new)    |   12 +
 .../nanomips/nanomips-err-mabi32.c (new)      |    4 +
 ...omips-models-func-extern-large-nmf.c (new) |   38 +
 .../nanomips-models-func-static-nmf.c (new)   |  145 +
 ...ips-models-func-static-nopcrel-nmf.c (new) |  145 +
 ...nomips-models-module-nopcrel-nopid.c (new) |    6 +
 ...nanomips-models-module-nopcrel-pid.c (new) |    6 +
 ...nanomips-models-module-pcrel-nopid.c (new) |    6 +
 .../nanomips-models-module-pcrel-pid.c (new)  |    6 +
 ...ps-models-var-access-got-large-nmf.c (new) |   15 +
 ...nomips-models-var-access-gprel-nmf.c (new) |   65 +
 ...ps-models-var-access-gprel-pid-nmf.c (new) |   72 +
 ...mips-models-var-access-nopcrel-nmf.c (new) |   80 +
 ...nomips-models-var-access-pcrel-nmf.c (new) |   76 +
 ...s-models-var-address-got-large-nmf.c (new) |   14 +
 ...omips-models-var-address-gprel-nmf.c (new) |   62 +
 ...s-models-var-address-gprel-pid-nmf.c (new) |   62 +
 ...ips-models-var-address-nopcrel-nmf.c (new) |   62 +
 ...omips-models-var-address-pcrel-nmf.c (new) |   62 +
 .../nanomips-module-default-pic1.c (new)      |    6 +
 .../gcc.target/nanomips/nanomips.exp (new)    |  880 ++++
 .../gcc.target/nanomips/near-far-1.c (new)    |   21 +
 .../gcc.target/nanomips/near-far-2.c (new)    |   26 +
 .../gcc.target/nanomips/near-far-3.c (new)    |   18 +
 .../gcc.target/nanomips/near-far-4.c (new)    |   23 +
 gcc/testsuite/gcc.target/nanomips/nor.c (new) |   11 +
 .../gcc.target/nanomips/pr33755.c (new)       |   29 +
 .../gcc.target/nanomips/pr35802.c (new)       |   17 +
 .../gcc.target/nanomips/pr54240.c (new)       |   27 +
 .../gcc.target/nanomips/pr55315.c (new)       |   11 +
 .../gcc.target/nanomips/pr59137.c (new)       |   33 +
 .../gcc.target/nanomips/pr65862-1.c (new)     |   16 +
 .../gcc.target/nanomips/pr65862-2.c (new)     |   31 +
 .../gcc.target/nanomips/pr68273.c (new)       |   79 +
 .../gcc.target/nanomips/pr69129.c (new)       |   29 +
 .../gcc.target/nanomips/reg-var-1.c (new)     |   16 +
 .../gcc.target/nanomips/restore-1.c (new)     |   19 +
 .../gcc.target/nanomips/restore-2.c (new)     |   23 +
 .../gcc.target/nanomips/restore-jrc-1.c (new) |   10 +
 .../gcc.target/nanomips/scc-1.c (new)         |   23 +
 .../gcc.target/nanomips/sdata-1.c (new)       |   62 +
 .../gcc.target/nanomips/sdata-2.c (new)       |   62 +
 .../gcc.target/nanomips/sdata-3.c (new)       |   62 +
 .../gcc.target/nanomips/sdata-4.c (new)       |   45 +
 .../gcc.target/nanomips/seqi-sltu-1.c (new)   |   18 +
 .../gcc.target/nanomips/soft-float-1.c (new)  |    8 +
 .../nanomips/ssdata-const-sf.c (new)          |    7 +
 .../gcc.target/nanomips/sx-1.c (new)          |   20 +
 .../gcc.target/nanomips/sx-2.c (new)          |   14 +
 .../gcc.target/nanomips/teq-1.c (new)         |   13 +
 .../gcc.target/nanomips/tne-1.c (new)         |   12 +
 .../gcc.target/nanomips/union-zext.c (new)    |   29 +
 .../gcc.target/nanomips/va-arg-1.c (new)      |   48 +
 .../nanomips/var-multiword-misaligned.c (new) |   17 +
 gcc/testsuite/lib/scanasm.exp                 |    3 +
 gcc/testsuite/lib/target-supports.exp         |    4 +-
 include/longlong.h                            |    9 +-
 libgcc/config.host                            |   21 +
 libgcc/config/mips/lib1funcs-nano.S (new)     |   86 +
 libgcc/config/mips/t-nanomips (new)           |   10 +
 libgcc/configure                              |    2 +-
 libgcc/configure.ac                           |    2 +-
 172 files changed, 14043 insertions(+), 831 deletions(-)
 create mode 100644 config/mt-nanomips
 create mode 100755 gcc/config/mips/genopt-nanomips.sh
 create mode 100644 gcc/config/mips/i7200.md
 create mode 100644 gcc/config/mips/mips-classic.md
 create mode 100644 gcc/config/mips/nanomips-cpus.def
 create mode 100644 gcc/config/mips/nanomips-tables.opt
 create mode 100644 gcc/config/mips/nanomips.h
 create mode 100644 gcc/config/mips/nanomips.md
 create mode 100644 gcc/config/mips/nanomips.opt
 create mode 100644 gcc/config/mips/t-nanomips
 create mode 100644 gcc/config/mips/t-nanomips-elf
 create mode 100644 gcc/testsuite/gcc.target/nanomips/addiu48-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/addiu48-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/beqic-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bgeiuc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bltc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bltic-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bltiuc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bnec-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bneic-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bnezc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/branch-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/branch-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/branch-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/branch-5.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/branch-helper.h
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bswap-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bswap-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bswap-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/bswap-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/cache-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/call-saved-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/clear-cache-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/constraint-m.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/dpaq_sa_l_w.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/dpsq_sa_l_w.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/dsp-ctrl.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/dsp-lhxs.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/dsp-no-lhx.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ext-5.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ext-7.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ext_ins.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/fixed-scalar-type.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/fixed-vector-type.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/fp-alloca.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/gprel-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/hazard-barrier-return-attribute.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/inline-memcpy-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/inline-memcpy-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ins-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ins-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/jump-table-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/jump-table.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/length-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/length-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/lhxs.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/li48-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/li48-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/libcall-abs-call.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/long-calls-pg.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/lwm-swm.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/lx-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/lx-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/madd-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/maddu-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/maddu-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/memcpy-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mips-prepend-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mips32-dsp-run.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mips32-dspr2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/movcc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/movep-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/movep-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/msub-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/msubu-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-5.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/mulsize-6.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-attr-nomicromips.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-attr-nomips16.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-dsp-accinit-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-dsp.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-dspr3-type-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-dspr3-type-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-err-mabi32.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-func-extern-large-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-func-static-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-func-static-nopcrel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-module-nopcrel-nopid.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-module-nopcrel-pid.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-module-pcrel-nopid.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-module-pcrel-pid.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-access-got-large-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-access-gprel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-access-gprel-pid-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-access-nopcrel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-access-pcrel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-address-got-large-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-address-gprel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-address-gprel-pid-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-address-nopcrel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-models-var-address-pcrel-nmf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips-module-default-pic1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nanomips.exp
 create mode 100644 gcc/testsuite/gcc.target/nanomips/near-far-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/near-far-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/near-far-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/near-far-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/nor.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr33755.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr35802.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr54240.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr55315.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr59137.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr65862-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr65862-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr68273.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/pr69129.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/reg-var-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/restore-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/restore-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/restore-jrc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/scc-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sdata-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sdata-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sdata-3.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sdata-4.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/seqi-sltu-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/soft-float-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/ssdata-const-sf.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sx-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/sx-2.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/teq-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/tne-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/union-zext.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/va-arg-1.c
 create mode 100644 gcc/testsuite/gcc.target/nanomips/var-multiword-misaligned.c
 create mode 100644 libgcc/config/mips/lib1funcs-nano.S
 create mode 100644 libgcc/config/mips/t-nanomips