From patchwork Sun Sep 26 13:24:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dragan Mladjenovic X-Patchwork-Id: 1532977 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=U8HVknm1; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4HHRNK58Wfz9t1C for ; Sun, 26 Sep 2021 23:25:35 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8D01A385800C for ; Sun, 26 Sep 2021 13:25:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8D01A385800C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1632662730; bh=EiPk1QRmoQj1Xf/k12By1501axZ+pTbNeKhr3ae8/m4=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=U8HVknm1bT1bGLWzFm3dainCTgdWo6xNbGLqb39q7OAF4rHKxzk2E0tukmF8gIOHN m7xdBP0X7zFmhfSquVkay2qD/pUaVlAeq+RxHQiTYgPo6dafqYInGkJJQi54PXv2OH lD5Wib1dFsLIXI3BjKhSUGaa+Kn4HoPwk1BTyr4w= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mailgw01.mediatek.com (mailgw01.mediatek.com [216.200.240.184]) by sourceware.org (Postfix) with ESMTPS id 598043858C60; Sun, 26 Sep 2021 13:24:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 598043858C60 X-UUID: 728d372a7fbb4289b351c91c270d8035-20210926 X-UUID: 728d372a7fbb4289b351c91c270d8035-20210926 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 295556596; Sun, 26 Sep 2021 06:24:35 -0700 Received: from MTKMBS62N1.mediatek.inc (172.29.193.41) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Sep 2021 06:24:33 -0700 Received: from MTKMBS62N1.mediatek.inc ([fe80::697c:586d:7cff:34e7]) by MTKMBS62N1.mediatek.inc ([fe80::697c:586d:7cff:34e7%12]) with mapi id 15.00.1497.015; Sun, 26 Sep 2021 06:24:33 -0700 To: "gcc-patches@gcc.gnu.org" Subject: [RFC 0/7] nanoMIPS port Thread-Topic: [RFC 0/7] nanoMIPS port Thread-Index: AQHXsthFGZWobslvikaxToQOWnhoxg== Date: Sun, 26 Sep 2021 13:24:33 +0000 Message-ID: <1632662673568.98965@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [172.29.193.239] MIME-Version: 1.0 X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, HTML_MESSAGE, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Dragan Mladjenovic via Gcc-patches From: Dragan Mladjenovic Reply-To: Dragan Mladjenovic Cc: Jeff Law , Matthew Fortune , Jakub Jelinek , YunQiang Su , "Petar.Jovanovic@syrmia.com" , Faraz Shahbazker , Vince Del Vecchio Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" 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