From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from APC01-PU1-obe.outbound.protection.outlook.com (mail-eopbgr1320121.outbound.protection.outlook.com [40.107.132.121]) by sourceware.org (Postfix) with ESMTPS id 1E6D73947C04 for ; Mon, 8 Mar 2021 04:30:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1E6D73947C04 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cipunited.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=yunqiang.su@cipunited.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ilnfEVm9gKFBQIMSIYxeJMRbrrJJq2nuKuZH1gfHA2GLewuaNh3iw0PHV7cduTAuBSbCyV+QkPNSwK6CvtWcRCB2RswpgiXmM/NOrUHdf6nmqyaEYQy5yK8rLGLl9urj7pGMWQTOX6AVyqOymWrMKDg0KosDIJJxpsGE955pmfBhxtTPnsEECFrijbpbNrhr10Gi5IQLLIr3PuiveJB7uNjybN5JmTt1P1U3gD+Wgw3uj/Rbbr1lRyG5c7xYT+/l11Tv3GkWQ7l1uQcXi3MynSRnQ6IUesm9NO/QUgYm8MmPQEf3q30iA4M5e+W79+fB3WavblghJktyMdk2VP5FeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FZKaLwH4w4HeBOxSR0FxVPbfkkoLjVEg8chgj6OMxPc=; b=a2IsH4ij0q+jGnFPYw6w4X472ODTFPHtbYvJ7iWy+O7O2XT5Z+qJEJVgui9ShBmWY30p/IKMBhUMFdzhQT1mkb3snjNgTsEPx2qxx7oWznNhFb7yrftPh7CA512JTS8e341S+auhjdn8tT+WvyQYlxGst7qO8OzVRdLHXnukWBoAoAmrk6TMz1KFmodCWnuEV0JqX+owiRMUsposhq/o4S1TnN/gi7MDpwvmORTQXYMm9CugTTAkEgrte1B3CGGQCr8Yv9h8PtXCiZqwHqtptTG0t984NAg58RMIjCizUPP+9Lg6gOwpEFDOaA+XRU8sYkmS91Tz2hQ52gR+lSLMEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cipunited.com; dmarc=pass action=none header.from=cipunited.com; dkim=pass header.d=cipunited.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cipunited.onmicrosoft.com; s=selector1-cipunited-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FZKaLwH4w4HeBOxSR0FxVPbfkkoLjVEg8chgj6OMxPc=; b=yhS8OAtYOBPqkRiI5iHWq5fZTfY7FlZq5PccHOWgzB56XKfpupM64Db7BE8zTIBgwq1m41fxTO/Sh+g4BgPy7F4trXEMOsEfLV6sa7XAOSdzeXsCLqZ+SGtY4ALYnKbNv+Gjc8gYPao2f3M/YWEBDlYio+qpyNvyeHpaXqIJvAQ= Authentication-Results: flygoat.com; dkim=none (message not signed) header.d=none;flygoat.com; dmarc=none action=none header.from=cipunited.com; Received: from HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) by HK2PR0401MB1953.apcprd04.prod.outlook.com (2603:1096:202:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.20; Mon, 8 Mar 2021 04:30:36 +0000 Received: from HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::b5d5:d70f:ed37:984c]) by HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::b5d5:d70f:ed37:984c%6]) with mapi id 15.20.3890.037; Mon, 8 Mar 2021 04:30:36 +0000 From: YunQiang Su To: jiaxun.yang@flygoat.com, macro@orcam.me.uk Cc: binutils@sourceware.org, syq@debian.org, YunQiang Su Subject: [PATCH 3/3] MIPS: Fix testcase for MIPSr6 Date: Mon, 8 Mar 2021 04:30:16 +0000 Message-Id: <20210308043016.11511-3-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210308043016.11511-1-yunqiang.su@cipunited.com> References: <20210308043016.11511-1-yunqiang.su@cipunited.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [60.247.76.83] X-ClientProxiedBy: HK2PR02CA0150.apcprd02.prod.outlook.com (2603:1096:202:16::34) To HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (60.247.76.83) by HK2PR02CA0150.apcprd02.prod.outlook.com (2603:1096:202:16::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Mon, 8 Mar 2021 04:30:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f210b23a-0667-4211-3b0b-08d8e1eaeb76 X-MS-TrafficTypeDiagnostic: HK2PR0401MB1953: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2582; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UXdzzAk4uMq6Q1hMCVkefIjaD0qhcLbq+x8qa+/y2qgOz7rRyPEYJ2kYz4mMmOZGpf3WR+cuhNj393KLrWaDnp9efOKuQp55d3RgzEkwuxW2oxn1yH8q9Ky7YDf/iIKo0TIwNbYifRxTmM8Jsky2xizWiUtAinjpmLyWT2xuiYqwithsJZY3bwLHEIvrH5escmn4/lNs/Z17A89k1dOQLAzjNBvfnrBjsp+Jm7cVsMy5WS0xsr0/uGlkdp6+wtDB27i2gqQm/6suOcayqNihXVLTwUiMKZT860q/OveSAazss5bwvBCGUFJFdQdD+lbNTSebY9sh7sSeg447vTNjVE7upW+g1iPcAlE1U5V7fEsVSO9e2PXnjTnYtIjCWaeuvos1XCVw5FQDYDajTX42AJx0qcxl5TaX63qVLQW8pmsFOtxlV/VU/x8yzBsBZvjbyIXhC2jLDy3FUjPqMsASOmJY5HCpGddQ1PNwb6JbHYtXoz3U3P2OHfAyzPwo27jsgiXXSHJXIoNGod+NWiGH4zAFsXZmfeTjx0zNAkU/FU1dxhfF2sYlfA58xItvga5ppltZHm35bhG9LdAlwysxAg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HKAPR04MB3956.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(346002)(39830400003)(376002)(136003)(396003)(30864003)(66556008)(66476007)(66946007)(6666004)(2906002)(52116002)(69590400012)(1076003)(5660300002)(478600001)(16526019)(6506007)(6512007)(4326008)(86362001)(186003)(316002)(956004)(26005)(2616005)(8676002)(6486002)(8936002)(36756003)(83380400001)(579004)(559001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?wZZgb86nSUZDrYsTFO2gnDUSB4M9OSwv/4CFxlMFiGhlHldVyDGJSCSoAFRb?= =?us-ascii?Q?7VUFKhhzbRMcNYwqsgyK8GqGK8sO/tS98QlPuF5DJGZpVG72Xng+/9PPGafd?= =?us-ascii?Q?lL1oI/6X4XZGMeL8kFXE6gvfuDH1TTv66YYViQzeq025gpan2vYV1cgmrLVB?= =?us-ascii?Q?LZDEkyrt0vQIC2k5rhuLgw088zYIMVNDvkw4FxfCZz3j9ESWVxXqLvAnEnT6?= =?us-ascii?Q?4O2LYNAj5k/001hu/6v4XHkmVEBcUsBkiVBq/7yyq8bQqGl7J6+eIDgllmLC?= =?us-ascii?Q?YSvKqQKnbKJCTSr0ziLe6Itxx0j7wFobzoDArZhh9P7KW4DgJI+yrJ50LVIE?= =?us-ascii?Q?Kv92YBMwj+QeL8dTtuOD7ablUK15IJ5sfUo3zal8fje/8vqmiwhie8FZhTCF?= =?us-ascii?Q?OLNLMwI9ZuIq8bxvM+ZTA+/yGMpx88UAbSisUPaKyfoNyLhbYb8JHm94g9Z5?= =?us-ascii?Q?JeQFa0Vp37dKsbWDiXog7wIz0D1B8b+QCGWYCSV5TyJh3gszaIhcFrg6jlI7?= =?us-ascii?Q?5tDCYL74Cn1h/SpdgnzFAn5N+mfU6NtEud/HJV107zMHzh1t6kObc98OuY9K?= =?us-ascii?Q?MuPs0D7AqpFDsuYob1Z636JOxdcmmqIJNDvYlg5ERuz5JXMnKComezUHZM12?= =?us-ascii?Q?Stcl/2B9Fm2gt53RNhVfH19AbUAh2JMmT41ruPcvcUQ4O1LbPUblKS0P9cnb?= =?us-ascii?Q?jYZyJ8f4notxF4ospIYgugbdwACdMvzuKSR6RGbBn0X8JWscgK1GmmWeKyG9?= =?us-ascii?Q?7DGdQzLTeEaozQCP/wb31ECR+X7Qctn5jRZnxq70ZsxjTWWxS97Zo0CazU3o?= =?us-ascii?Q?b5PxDwvRCs8XdcEZ6O9b97Lo41GarT86aqDucX7WIbvibI4XFzpA9yDyyuEq?= =?us-ascii?Q?CGh6ju1pK1wSE+LfX9mQT7JtbgZfnIUVzIO6Ugp09YngLrUKjowNtrXIh4BB?= =?us-ascii?Q?HEQ6FKwa1EabcC28UKA1tIa/v4IASBFfXz8GLlTE062XVLXtyFXHsrnsvSsb?= =?us-ascii?Q?ubqGeGHr4eCSsslb7OEM99ZQfetHKzhVuWFOup/sryKNMXZEILbxsyP3d3cs?= =?us-ascii?Q?XBWxjlsILOEt1pV/Von134SMGVgHDSD2N4uGlDhFRbc3vL8aLm3O87jaQ489?= =?us-ascii?Q?x89oTcW/Cv2aOCUNYAfE8UxdjUEX3+Yd4NZ1GsObYSLzCXar48c/l7/I9vCa?= =?us-ascii?Q?SIqc4sYYxs37d9ZRDSfaopDaACr8+mBS0sl5O8iUS1LCyHZ/qlR2954XvZKb?= =?us-ascii?Q?59rWXSdsQX3drCJVNGrsxhWNhOM7YmYpA5uI0qL3HGRWdhuSP9U0VDH6l3Qi?= =?us-ascii?Q?BZCfxNdMfJNZPh8/2t4dOOCP?= X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: f210b23a-0667-4211-3b0b-08d8e1eaeb76 X-MS-Exchange-CrossTenant-AuthSource: HKAPR04MB3956.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2021 04:30:36.6028 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e31cf5b5-ee69-4d5f-9c69-edeeda2458c0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lzNCOjKy1Oi9vZVjlLBOHPEl8jHtJJuyslNM4ns2IsyngNfrbtae1UcO0pfIUwtgIO0b1N0A2lValQFa0/47y/AvFqICxXe43zuIqQD4Vkg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR0401MB1953 X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_NUMSUBJECT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2021 04:31:03 -0000 From: YunQiang Su The major changes include: 1. disable microMIPS and MIPS16 for r6 2. FP64 only support for 32r6, so Tag_GNU_MIPS_ABI_FP changes 3. Encoding for jr changed: 03e00008 -> 03e00009 4. Some insn removed: jalx, eva, lwl, addi 5. MIPSr6 supports NAN2008 only, so drop lagacy nan tests ChangeLog: 2021-03-08 YunQiang Su * binutils/testsuite/binutils-all/mips/global-local-symtab-final-n32.d: remove -mips3, since it conflicts with -march=from-abi for r6. * binutils/testsuite/binutils-all/mips/global-local-symtab-final-n64.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-n32.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-n32t.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-n64.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32t.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64.d: Likewise * binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64t.d: Likewise * binutils/testsuite/binutils-all/mips/mips-xpa-virt-1.d: R6 encoding changes * binutils/testsuite/binutils-all/mips/mips-xpa-virt-2.d: Likewise * binutils/testsuite/binutils-all/mips/mips-xpa-virt-3.d: Likewise * binutils/testsuite/binutils-all/mips/mips.exp: disable mips16 for r6 * gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d: r6 support FP64 only * gas/testsuite/gas/mips/branch-section-1.d: r6 encoding changes * gas/testsuite/gas/mips/branch-section-3.d: Likewise * gas/testsuite/gas/mips/branch-weak-1.d: Likewise * gas/testsuite/gas/mips/elf-rel.s: r6 removes addi * gas/testsuite/gas/mips/elfel-rel.d: Likewise * gas/testsuite/gas/mips/mips.exp: Disable some tests for r6 * gas/testsuite/gas/mips/mipsr6@beq.d: New test for R6. * gas/testsuite/gas/mips/mipsr6@cache.d: Likewise * gas/testsuite/gas/mips/mipsr6@hwr-names.d: Likewise * gas/testsuite/gas/mips/mipsr6@mips32.d: Likewise * gas/testsuite/gas/mips/mipsr6@pref.d: Likewise * gas/testsuite/gas/mips/option-pic-1.d: r6 encoding changes * ld/testsuite/ld-mips-elf/attr-gnu-4-01.d: r6 support FP64 only * ld/testsuite/ld-mips-elf/attr-gnu-4-11.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-4-41.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-00.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-01.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-02.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-10.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-11.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-20.d: Likewise * ld/testsuite/ld-mips-elf/attr-gnu-8-22.d: Likewise * ld/testsuite/ld-mips-elf/emit-relocs-1.d: r6 encoding changes * ld/testsuite/ld-mips-elf/export-class-call16-n32.dd: Likewise * ld/testsuite/ld-mips-elf/export-class-call16-n64.dd: Likewise * ld/testsuite/ld-mips-elf/export-class-call16-o32.dd: Likewise * ld/testsuite/ld-mips-elf/gp-disp-sym.s: r6 removes addi * ld/testsuite/ld-mips-elf/jalr3.dd: r6 encoding changes * ld/testsuite/ld-mips-elf/jalr4.dd: Likewise * ld/testsuite/ld-mips-elf/mips-elf.exp: use var abi_as64flags instead of hardcoded -mips3 disable test not suitable for r6 * ld/testsuite/ld-mips-elf/n64-plt-1.dd: r6 encoding changes * ld/testsuite/ld-mips-elf/n64-plt-4.dd: Likewise * ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d: Likewise --- .../mips/global-local-symtab-final-n32.d | 2 +- .../mips/global-local-symtab-final-n64.d | 2 +- .../mips/global-local-symtab-n32.d | 2 +- .../mips/global-local-symtab-n32t.d | 2 +- .../mips/global-local-symtab-n64.d | 2 +- .../mips/global-local-symtab-sort-n32.d | 2 +- .../mips/global-local-symtab-sort-n32t.d | 2 +- .../mips/global-local-symtab-sort-n64.d | 2 +- .../mips/global-local-symtab-sort-n64t.d | 2 +- .../binutils-all/mips/mips-xpa-virt-1.d | 8 +- .../binutils-all/mips/mips-xpa-virt-2.d | 4 +- .../binutils-all/mips/mips-xpa-virt-3.d | 4 +- binutils/testsuite/binutils-all/mips/mips.exp | 4 + gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d | 2 +- gas/testsuite/gas/mips/branch-section-1.d | 2 +- gas/testsuite/gas/mips/branch-section-3.d | 2 +- gas/testsuite/gas/mips/branch-weak-1.d | 2 +- gas/testsuite/gas/mips/elf-rel.s | 36 +- gas/testsuite/gas/mips/elfel-rel.d | 12 +- gas/testsuite/gas/mips/mips.exp | 969 ++++++++++-------- gas/testsuite/gas/mips/mipsr6@beq.d | 2 +- gas/testsuite/gas/mips/mipsr6@cache.d | 2 +- gas/testsuite/gas/mips/mipsr6@hwr-names.d | 2 +- gas/testsuite/gas/mips/mipsr6@mips32.d | 4 +- gas/testsuite/gas/mips/mipsr6@pref.d | 2 +- gas/testsuite/gas/mips/option-pic-1.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-4-01.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-4-11.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-4-41.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-00.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-01.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-02.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-10.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-11.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-20.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-8-22.d | 2 +- ld/testsuite/ld-mips-elf/emit-relocs-1.d | 2 +- .../ld-mips-elf/export-class-call16-n32.dd | 8 +- .../ld-mips-elf/export-class-call16-n64.dd | 8 +- .../ld-mips-elf/export-class-call16-o32.dd | 8 +- ld/testsuite/ld-mips-elf/gp-disp-sym.s | 2 +- ld/testsuite/ld-mips-elf/jalr3.dd | 2 +- ld/testsuite/ld-mips-elf/jalr4.dd | 8 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 309 +++--- ld/testsuite/ld-mips-elf/n64-plt-1.dd | 2 +- ld/testsuite/ld-mips-elf/n64-plt-4.dd | 2 +- ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d | 2 +- 47 files changed, 782 insertions(+), 665 deletions(-) diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n32.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n32.d index 0623ddc7b2..1ae6f88fe0 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n32.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n32.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (fully linked) (n32) -#as: -n32 -mno-pdr -mips3 +#as: -n32 -mno-pdr #ld: -e 0 -T ../../../../ld/testsuite/ld-mips-elf/global-local-symtab.ld #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n64.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n64.d index eaee0081fb..6ec2f4cac3 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n64.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-final-n64.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (fully linked) (n64) -#as: -64 -mno-pdr -mips3 +#as: -64 -mno-pdr #ld: -e 0 -T ../../../../ld/testsuite/ld-mips-elf/global-local-symtab.ld #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-n32.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-n32.d index ef48105afd..fb6f9f1df1 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-n32.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-n32.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS global/local symbol table split (n32) -#as: -n32 -mno-pdr -mips3 +#as: -n32 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -S #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-n32t.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-n32t.d index b44891f067..d6348fa29e 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-n32t.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-n32t.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS global/local symbol table split (n32) -#as: -n32 -mno-pdr -mips3 +#as: -n32 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -S #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-n64.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-n64.d index a170d74ce5..f54ac01118 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-n64.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-n64.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS global/local symbol table split (n64) -#as: -64 -mno-pdr -mips3 +#as: -64 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -SW #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32.d index 818d7919d4..d9e24b8e67 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (relocatable) (n32) -#as: -n32 -mno-pdr -mips3 +#as: -n32 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32t.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32t.d index a6f6548c77..5e8837fd81 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32t.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n32t.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (relocatable) (n32) -#as: -n32 -mno-pdr -mips3 +#as: -n32 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64.d index dcb5c23c7d..13e3f33a82 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (relocatable) (n64) -#as: -64 -mno-pdr -mips3 +#as: -64 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64t.d b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64t.d index e38f78909a..8db5a2e2f0 100644 --- a/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64t.d +++ b/binutils/testsuite/binutils-all/mips/global-local-symtab-sort-n64t.d @@ -1,7 +1,7 @@ #PROG: objcopy #DUMPPROG: readelf #name: MIPS symbol table sort and section symbol names (relocatable) (n64) -#as: -64 -mno-pdr -mips3 +#as: -64 -mno-pdr #objcopy: -j .data -j .symtab -j .strtab -j .shstrtab #readelf: -s #source: ../../../../gas/testsuite/gas/mips/global-local-symtab.s diff --git a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-1.d b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-1.d index 1bb38ac0c4..0202fd5a98 100644 --- a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-1.d +++ b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-1.d @@ -6,8 +6,8 @@ .*: +file format .*mips.* Disassembly of section \.text: -[0-9a-f]+ <[^>]*> 40020800 mfc0 v0,c0_random -[0-9a-f]+ <[^>]*> 40420800 cfc0 v0,c0_random -[0-9a-f]+ <[^>]*> 40620800 0x40620800 -[0-9a-f]+ <[^>]*> 40620c00 0x40620c00 +[0-9a-f]+ <[^>]*> 40020800 (mfc0|mfhc0) v0,c0_random +[0-9a-f]+ <[^>]*> 40420800 (cfc0|mfhc0) v0,c0_random +[0-9a-f]+ <[^>]*> 40620800 (0x40620800|mfgc0[\t ]+v0,c0_random) +[0-9a-f]+ <[^>]*> 40620c00 (0x40620c00|mfhgc0[\t ]+v0,c0_random) \.\.\. diff --git a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-2.d b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-2.d index 58bd5fa9bf..311fa34ed2 100644 --- a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-2.d +++ b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-2.d @@ -8,6 +8,6 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> 40020800 mfc0 v0,c0_random [0-9a-f]+ <[^>]*> 40420800 mfhc0 v0,c0_random -[0-9a-f]+ <[^>]*> 40620800 0x40620800 -[0-9a-f]+ <[^>]*> 40620c00 0x40620c00 +[0-9a-f]+ <[^>]*> 40620800 (0x40620800|mfgc0[\t ]+v0,c0_random) +[0-9a-f]+ <[^>]*> 40620c00 (0x40620c00|mfhgc0[\t ]+v0,c0_random) \.\.\. diff --git a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-3.d b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-3.d index f42f7d71ae..23878fb452 100644 --- a/binutils/testsuite/binutils-all/mips/mips-xpa-virt-3.d +++ b/binutils/testsuite/binutils-all/mips/mips-xpa-virt-3.d @@ -7,7 +7,7 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> 40020800 mfc0 v0,c0_random -[0-9a-f]+ <[^>]*> 40420800 cfc0 v0,c0_random +[0-9a-f]+ <[^>]*> 40420800 (cfc0|mfhc0) v0,c0_random [0-9a-f]+ <[^>]*> 40620800 mfgc0 v0,c0_random -[0-9a-f]+ <[^>]*> 40620c00 0x40620c00 +[0-9a-f]+ <[^>]*> 40620c00 (0x40620c00|mfhgc0[\t ]+v0,c0_random) \.\.\. diff --git a/binutils/testsuite/binutils-all/mips/mips.exp b/binutils/testsuite/binutils-all/mips/mips.exp index bcda9bf901..687c57b791 100644 --- a/binutils/testsuite/binutils-all/mips/mips.exp +++ b/binutils/testsuite/binutils-all/mips/mips.exp @@ -219,6 +219,7 @@ if {[istarget *-*-openbsd*] } { set irixemul 1 } set tmips [expr $irixemul ? {""} : {"t"}] +set is_r6 [expr [istarget mipsisa*r6*-*]] run_dump_test_o32 "mips-ase-1" run_dump_test_o32 "mips-ase-2" @@ -227,6 +228,8 @@ run_dump_test "mips-xpa-virt-1" run_dump_test "mips-xpa-virt-2" run_dump_test "mips-xpa-virt-3" run_dump_test "mips-xpa-virt-4" + +if { !$is_r6 } { run_dump_test_o32 "mixed-mips16" noarch run_dump_test_o32 "mixed-micromips" noarch run_dump_test "mixed-mips16-micromips" @@ -238,6 +241,7 @@ run_dump_test_o32 "mips16-extend-insn" noarch run_dump_test_o32 "mips16e2-extend-insn" noarch run_dump_test_o32 "mips16-alias" noarch run_dump_test_o32 "mips16-noalias" noarch +} run_dump_test_o32 "mips-note-2" run_dump_test_n32 "mips-note-2-n32" diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d b/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d index 97fc8bf3f4..4a42b844a6 100644 --- a/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d +++ b/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d @@ -4,7 +4,7 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: 128-bit MSA #... diff --git a/gas/testsuite/gas/mips/branch-section-1.d b/gas/testsuite/gas/mips/branch-section-1.d index 7782d0c075..08c678d27e 100644 --- a/gas/testsuite/gas/mips/branch-section-1.d +++ b/gas/testsuite/gas/mips/branch-section-1.d @@ -12,6 +12,6 @@ Disassembly of section \.text: \.\.\. Disassembly of section \.init: -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/branch-section-3.d b/gas/testsuite/gas/mips/branch-section-3.d index b10fcde731..8276316553 100644 --- a/gas/testsuite/gas/mips/branch-section-3.d +++ b/gas/testsuite/gas/mips/branch-section-3.d @@ -13,6 +13,6 @@ Disassembly of section \.text: \.\.\. Disassembly of section \.init: -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/branch-weak-1.d b/gas/testsuite/gas/mips/branch-weak-1.d index 859a2ca69f..349b5d96c8 100644 --- a/gas/testsuite/gas/mips/branch-weak-1.d +++ b/gas/testsuite/gas/mips/branch-weak-1.d @@ -10,6 +10,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_PC16 bar [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/elf-rel.s b/gas/testsuite/gas/mips/elf-rel.s index 873bc5fd86..06c67a659b 100644 --- a/gas/testsuite/gas/mips/elf-rel.s +++ b/gas/testsuite/gas/mips/elf-rel.s @@ -12,12 +12,12 @@ l2 = l0+49150 lui $at,%hi(l0-4) lui $at,%hi(l1+0x8000) l1: - addi $at,$at,%lo(l1) - addi $at,$at,%lo(l1+0x10004) - addi $at,$at,%lo(l1+0x10000) - addi $at,$at,%lo(l1+4) - addi $at,$at,%lo(l1+0x8000) - addi $at,$at,%lo(l0-4) + addiu $at,$at,%lo(l1) + addiu $at,$at,%lo(l1+0x10004) + addiu $at,$at,%lo(l1+0x10000) + addiu $at,$at,%lo(l1+4) + addiu $at,$at,%lo(l1+0x8000) + addiu $at,$at,%lo(l0-4) lui $at,%hi(l2) lui $at,%hi(l2+4) @@ -25,12 +25,12 @@ l1: lui $at,%hi(l2+0x10004) lui $at,%hi(l2-4) lui $at,%hi(l2+0x8000) - addi $at,$at,%lo(l2) - addi $at,$at,%lo(l2+4) - addi $at,$at,%lo(l2+0x10000) - addi $at,$at,%lo(l2+0x10004) - addi $at,$at,%lo(l2+0x8000) - addi $at,$at,%lo(l2-4) + addiu $at,$at,%lo(l2) + addiu $at,$at,%lo(l2+4) + addiu $at,$at,%lo(l2+0x10000) + addiu $at,$at,%lo(l2+0x10004) + addiu $at,$at,%lo(l2+0x8000) + addiu $at,$at,%lo(l2-4) lui $at,%hi((l2)) lui $at,%hi(((l2+4))) @@ -38,9 +38,9 @@ l1: lui $at,%hi(((((l2+0x10004))))) lui $at,%hi((((((l2-4)))))) lui $at,%hi(((((((l2+0x8000))))))) - addi $at,$at,%lo((l2)) - addi $at,$at,%lo(((l2+4))) - addi $at,$at,%lo((((l2+0x10000)))) - addi $at,$at,%lo(((((l2+0x10004))))) - addi $at,$at,%lo((((((l2+0x8000)))))) - addi $at,$at,%lo(((((((l2-4))))))) + addiu $at,$at,%lo((l2)) + addiu $at,$at,%lo(((l2+4))) + addiu $at,$at,%lo((((l2+0x10000)))) + addiu $at,$at,%lo(((((l2+0x10004))))) + addiu $at,$at,%lo((((((l2+0x8000)))))) + addiu $at,$at,%lo(((((((l2-4))))))) diff --git a/gas/testsuite/gas/mips/elfel-rel.d b/gas/testsuite/gas/mips/elfel-rel.d index bac44edbef..c6b2b10cee 100644 --- a/gas/testsuite/gas/mips/elfel-rel.d +++ b/gas/testsuite/gas/mips/elfel-rel.d @@ -49,12 +49,12 @@ OFFSET [ ]+ TYPE VALUE Contents of section \.text: 0000 0000013c 0000013c 0100013c 0100013c .* - 0010 0000013c 0100013c 18002120 1c002120 .* - 0020 18002120 1c002120 18802120 fcff2120 .* + 0010 0000013c 0100013c 18002124 1c002124 .* + 0020 18002124 1c002124 18802124 fcff2124 .* 0030 0100013c 0100013c 0200013c 0200013c .* - 0040 0100013c 0100013c febf2120 02c02120 .* - 0050 febf2120 02c02120 fe3f2120 fabf2120 .* + 0040 0100013c 0100013c febf2124 02c02124 .* + 0050 febf2124 02c02124 fe3f2124 fabf2124 .* 0060 0100013c 0100013c 0200013c 0200013c .* - 0070 0100013c 0100013c febf2120 02c02120 .* - 0080 febf2120 02c02120 fe3f2120 fabf2120 .* + 0070 0100013c 0100013c febf2124 02c02124 .* + 0080 febf2124 02c02124 fe3f2124 fabf2124 .* #pass diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index d021f05a12..895f556650 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -560,6 +560,7 @@ if { [istarget mips*-*-vxworks*] } { set has_newabi [expr [istarget *-*-irix6*] || [istarget mips*-*-linux*] \ || [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*] \ || [istarget mips*-img-elf*]] + set is_r6 [expr [istarget mipsisa*r6*-*]] if { [istarget "mips*-*-*linux*"] || [istarget "mips*-sde-elf*"] @@ -620,101 +621,105 @@ if { [istarget mips*-*-vxworks*] } { # close below 4096 as this is the default obstack size limit that # we use and some space will have been already consumed. The exact # amount depends on the host's programming model. - for { set count 960 } { $count <= 1024 } { incr count } { - run_list_test "branch-swap-2" "--defsym count=$count" \ - "MIPS branch swapping ($count)" + #FIXME: currently R6 cannot work with microMIPS + if { !$is_r6 } { + for { set count 960 } { $count <= 1024 } { incr count } { + run_list_test "branch-swap-2" "--defsym count=$count" \ + "MIPS branch swapping ($count)" + } } run_dump_test_arches "branch-swap-3" [mips_arch_list_all] run_dump_test_arches "branch-swap-4" [mips_arch_list_all] run_dump_test "branch-section-1" - run_dump_test "branch-section-2" - run_dump_test "branch-section-3" - run_dump_test "branch-section-4" - run_dump_test "branch-extern-1" - run_dump_test "branch-extern-2" - run_dump_test "branch-extern-3" - run_dump_test "branch-extern-4" run_dump_test "branch-weak-1" - run_dump_test "branch-weak-2" - run_dump_test "branch-weak-3" - run_dump_test "branch-weak-4" - run_dump_test "branch-weak-5" - run_dump_test "branch-weak-6" - run_dump_test "branch-weak-7" - run_dump_test "branch-local-1" - run_dump_test "branch-local-2" - run_dump_test "branch-local-ignore-2" - run_dump_test "branch-local-3" - run_dump_test "branch-local-ignore-3" - run_dump_test "branch-local-4" - run_dump_test "branch-local-5" - run_dump_test "branch-local-ignore-5" - run_dump_test "branch-local-6" - run_dump_test "branch-local-ignore-6" - run_dump_test "branch-local-7" - if $has_newabi { - run_dump_test "branch-local-n32-1" - run_dump_test "branch-local-n32-2" - run_dump_test "branch-local-ignore-n32-2" - run_dump_test "branch-local-n32-3" - run_dump_test "branch-local-ignore-n32-3" - run_dump_test "branch-local-n32-4" - run_dump_test "branch-local-n32-5" - run_dump_test "branch-local-ignore-n32-5" - run_dump_test "branch-local-n32-6" - run_dump_test "branch-local-ignore-n32-6" - run_dump_test "branch-local-n32-7" - run_dump_test "branch-local-n64-1" - run_dump_test "branch-local-n64-2" - run_dump_test "branch-local-ignore-n64-2" - run_dump_test "branch-local-n64-3" - run_dump_test "branch-local-ignore-n64-3" - run_dump_test "branch-local-n64-4" - run_dump_test "branch-local-n64-5" - run_dump_test "branch-local-ignore-n64-5" - run_dump_test "branch-local-n64-6" - run_dump_test "branch-local-ignore-n64-6" - run_dump_test "branch-local-n64-7" - } - run_dump_test "branch-addend" - run_dump_test "branch-addend-micromips" - if $has_newabi { - run_dump_test "branch-addend-n32" - run_dump_test "branch-addend-micromips-n32" - run_dump_test "branch-addend-n64" - run_dump_test "branch-addend-micromips-n64" - } - run_dump_test "branch-absolute" - run_dump_test "branch-absolute-addend" - if $has_newabi { - run_dump_test "branch-absolute-n32" - run_dump_test "branch-absolute-addend-n32" - run_dump_test "branch-absolute-n64" - run_dump_test "branch-absolute-addend-n64" + if { !$is_r6 } { + run_dump_test "branch-section-2" + run_dump_test "branch-section-3" + run_dump_test "branch-section-4" + run_dump_test "branch-extern-1" + run_dump_test "branch-extern-2" + run_dump_test "branch-extern-3" + run_dump_test "branch-extern-4" + run_dump_test "branch-weak-2" + run_dump_test "branch-weak-3" + run_dump_test "branch-weak-4" + run_dump_test "branch-weak-5" + run_dump_test "branch-weak-6" + run_dump_test "branch-weak-7" + run_dump_test "branch-local-1" + run_dump_test "branch-local-2" + run_dump_test "branch-local-ignore-2" + run_dump_test "branch-local-3" + run_dump_test "branch-local-ignore-3" + run_dump_test "branch-local-4" + run_dump_test "branch-local-5" + run_dump_test "branch-local-ignore-5" + run_dump_test "branch-local-6" + run_dump_test "branch-local-ignore-6" + run_dump_test "branch-local-7" + if $has_newabi { + run_dump_test "branch-local-n32-1" + run_dump_test "branch-local-n32-2" + run_dump_test "branch-local-ignore-n32-2" + run_dump_test "branch-local-n32-3" + run_dump_test "branch-local-ignore-n32-3" + run_dump_test "branch-local-n32-4" + run_dump_test "branch-local-n32-5" + run_dump_test "branch-local-ignore-n32-5" + run_dump_test "branch-local-n32-6" + run_dump_test "branch-local-ignore-n32-6" + run_dump_test "branch-local-n32-7" + run_dump_test "branch-local-n64-1" + run_dump_test "branch-local-n64-2" + run_dump_test "branch-local-ignore-n64-2" + run_dump_test "branch-local-n64-3" + run_dump_test "branch-local-ignore-n64-3" + run_dump_test "branch-local-n64-4" + run_dump_test "branch-local-n64-5" + run_dump_test "branch-local-ignore-n64-5" + run_dump_test "branch-local-n64-6" + run_dump_test "branch-local-ignore-n64-6" + run_dump_test "branch-local-n64-7" + } + run_dump_test "branch-addend" + run_dump_test "branch-addend-micromips" + if $has_newabi { + run_dump_test "branch-addend-n32" + run_dump_test "branch-addend-micromips-n32" + run_dump_test "branch-addend-n64" + run_dump_test "branch-addend-micromips-n64" + } + run_dump_test "branch-absolute" + run_dump_test "branch-absolute-addend" + if $has_newabi { + run_dump_test "branch-absolute-n32" + run_dump_test "branch-absolute-addend-n32" + run_dump_test "branch-absolute-n64" + run_dump_test "branch-absolute-addend-n64" + } + + run_dump_test "compact-eh-eb-1" + run_dump_test "compact-eh-eb-2" + run_dump_test "compact-eh-eb-3" + run_dump_test "compact-eh-eb-4" + run_dump_test "compact-eh-eb-5" + run_dump_test "compact-eh-eb-6" + run_dump_test "compact-eh-eb-7" + run_dump_test "compact-eh-el-1" + run_dump_test "compact-eh-el-2" + run_dump_test "compact-eh-el-3" + run_dump_test "compact-eh-el-4" + run_dump_test "compact-eh-el-5" + run_dump_test "compact-eh-el-6" + run_dump_test "compact-eh-el-7" + run_list_test "compact-eh-err1" + run_list_test "compact-eh-err2" } run_dump_test_arches "nal-1" [mips_arch_list_matching mips1 !micromips] run_dump_test_arches "nal-2" [mips_arch_list_matching mips1 !micromips] - - run_dump_test "compact-eh-eb-1" - run_dump_test "compact-eh-eb-2" - run_dump_test "compact-eh-eb-3" - run_dump_test "compact-eh-eb-4" - run_dump_test "compact-eh-eb-5" - run_dump_test "compact-eh-eb-6" - run_dump_test "compact-eh-eb-7" - run_dump_test "compact-eh-el-1" - run_dump_test "compact-eh-el-2" - run_dump_test "compact-eh-el-3" - run_dump_test "compact-eh-el-4" - run_dump_test "compact-eh-el-5" - run_dump_test "compact-eh-el-6" - run_dump_test "compact-eh-el-7" - run_list_test "compact-eh-err1" - run_list_test "compact-eh-err2" - run_dump_test "div" if { !$addr32 && $has_newabi } { @@ -736,39 +741,41 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "fix-rm7000-2" \ [mips_arch_list_matching mips3 !singlefloat \ !mips64r6] - run_dump_test_arches "24k-branch-delay-1" \ + if { !$is_r6 } { + run_dump_test_arches "24k-branch-delay-1" \ [mips_arch_list_matching mips1] - run_dump_test_arches "24k-triple-stores-1" \ + run_dump_test_arches "24k-triple-stores-1" \ [mips_arch_list_matching fpisa5 !octeon] - run_dump_test_arches "24k-triple-stores-2" \ + run_dump_test_arches "24k-triple-stores-2" \ [mips_arch_list_matching mips2] - run_dump_test_arches "24k-triple-stores-2-llsc" \ + run_dump_test_arches "24k-triple-stores-2-llsc" \ [mips_arch_list_matching mips2 !nollsc] - run_dump_test_arches "24k-triple-stores-3" \ + run_dump_test_arches "24k-triple-stores-3" \ [mips_arch_list_matching mips2] - run_dump_test_arches "24k-triple-stores-4" \ + run_dump_test_arches "24k-triple-stores-4" \ [mips_arch_list_matching mips2 !singlefloat] - run_dump_test_arches "24k-triple-stores-5" \ + run_dump_test_arches "24k-triple-stores-5" \ [mips_arch_list_matching mips1] - run_dump_test_arches "24k-triple-stores-6" \ + run_dump_test_arches "24k-triple-stores-6" \ [mips_arch_list_matching mips2 !singlefloat] - run_dump_test_arches "24k-triple-stores-7" \ + run_dump_test_arches "24k-triple-stores-7" \ [mips_arch_list_matching mips2 !singlefloat] - run_dump_test_arches "24k-triple-stores-8" \ + run_dump_test_arches "24k-triple-stores-8" \ [mips_arch_list_matching mips1] - run_dump_test_arches "24k-triple-stores-9" \ + run_dump_test_arches "24k-triple-stores-9" \ [mips_arch_list_matching mips1] - run_dump_test_arches "24k-triple-stores-10" \ + run_dump_test_arches "24k-triple-stores-10" \ [mips_arch_list_matching mips1] - run_dump_test_arches "24k-triple-stores-11" \ + run_dump_test_arches "24k-triple-stores-11" \ [mips_arch_list_matching mips1] - run_dump_test_arches "jal-svr4pic${imips}" \ + run_dump_test_arches "jal-svr4pic${imips}" \ [mips_arch_list_matching mips1] - run_dump_test_arches "jal-svr4pic-noreorder${imips}" \ + run_dump_test_arches "jal-svr4pic-noreorder${imips}" \ [mips_arch_list_matching mips1] - run_dump_test_arches "jal-svr4pic-local${imips}" \ + run_dump_test_arches "jal-svr4pic-local${imips}" \ [mips_arch_list_matching mips1] + } if $has_newabi { run_dump_test_arches "jal-svr4pic-local-n32" \ [mips_arch_list_matching mips3] @@ -905,118 +912,136 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3 !mips32r6] run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3 !mips32r6] - run_dump_test_arches "mips16" [mips_arch_list_matching mips16-64] - if { $has_newabi } { - run_dump_test_arches "mips16-64" \ + if { !$is_r6 } { + run_dump_test_arches "mips16" [mips_arch_list_matching mips16-64] + if { $has_newabi } { + run_dump_test_arches "mips16-64" \ [mips_arch_list_matching mips16-64] - } - run_dump_test_arches "mips16-macro" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-macro-t" \ + } + run_dump_test_arches "mips16-macro" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-macro-t" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-macro-e" \ + run_dump_test_arches "mips16-macro-e" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-insn-t" \ + run_dump_test_arches "mips16-insn-t" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-insn-e" \ + run_dump_test_arches "mips16-insn-e" \ [mips_arch_list_matching mips16-32] - # Check MIPS16e extensions - run_dump_test_arches "mips16e" [mips_arch_list_matching mips16e-32] - run_dump_test_arches "mips16e-64" [mips_arch_list_matching mips16e-32] - # Check MIPS16e2 extensions. - run_dump_test_arches "mips16e2" [mips_arch_list_matching mips16e2-32] - run_dump_test_arches "mips16e2-mt" [mips_arch_list_matching mips16e2-32] - # Check MIPS16 ISA subset disassembly - run_dump_test_arches "mips16-sub" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16e-sub" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16e-64-sub" \ + # Check MIPS16e extensions + run_dump_test_arches "mips16e" [mips_arch_list_matching mips16e-32] + run_dump_test_arches "mips16e-64" [mips_arch_list_matching mips16e-32] + # Check MIPS16e2 extensions. + run_dump_test_arches "mips16e2" [mips_arch_list_matching mips16e2-32] + run_dump_test_arches "mips16e2-mt" [mips_arch_list_matching mips16e2-32] + # Check MIPS16 ISA subset disassembly + run_dump_test_arches "mips16-sub" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16e-sub" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16e-64-sub" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16e2-sub" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16e2-mt-sub" \ + run_dump_test_arches "mips16e2-sub" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16e2-mt-sub" \ [mips_arch_list_matching mips16-32] - # Check jalx handling - run_dump_test "mips16-jalx" - run_dump_test "mips-jalx" - run_dump_test "mips-jalx-2" - run_dump_test "jalx-imm" - run_dump_test "jalx-addend" - run_dump_test "jalx-local" - if $has_newabi { - run_dump_test "jalx-imm-n32" - run_dump_test "jalx-addend-n32" - run_dump_test "jalx-local-n32" - run_dump_test "jalx-imm-n64" - run_dump_test "jalx-addend-n64" - run_dump_test "jalx-local-n64" - } - - run_list_test "unaligned-jump-1" "-32" \ + # Check jalx handling + run_dump_test "mips16-jalx" + run_dump_test "mips-jalx" + run_dump_test "mips-jalx-2" + run_dump_test "jalx-imm" + run_dump_test "jalx-addend" + run_dump_test "jalx-local" + if $has_newabi { + run_dump_test "jalx-imm-n32" + run_dump_test "jalx-addend-n32" + run_dump_test "jalx-local-n32" + run_dump_test "jalx-imm-n64" + run_dump_test "jalx-addend-n64" + run_dump_test "jalx-local-n64" + } + } + + if { !$is_r6 } { + run_list_test "unaligned-jump-1" "-32" \ "MIPS jump to unaligned symbol 1" - run_list_test "unaligned-jump-2" "-32" \ + run_list_test "unaligned-jump-2" "-32" \ "MIPS jump to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-jump-3" - } - run_list_test "unaligned-jump-mips16-1" "-32" \ + if $has_newabi { + run_dump_test "unaligned-jump-3" + } + run_list_test "unaligned-jump-mips16-1" "-32" \ "MIPS16 jump to unaligned symbol 1" - run_list_test "unaligned-jump-mips16-2" "-32" \ + run_list_test "unaligned-jump-mips16-2" "-32" \ "MIPS16 jump to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-jump-mips16-3" - } - run_list_test "unaligned-jump-micromips-1" "-32" \ + if $has_newabi { + run_dump_test "unaligned-jump-mips16-3" + } + run_list_test "unaligned-jump-micromips-1" "-32" \ "microMIPS jump to unaligned symbol 1" - run_list_test "unaligned-jump-micromips-2" "-32" \ + run_list_test "unaligned-jump-micromips-2" "-32" \ "microMIPS jump to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-jump-micromips-3" + if $has_newabi { + run_dump_test "unaligned-jump-micromips-3" + } } - run_list_test "unaligned-branch-1" "-32" \ + if { !$is_r6 } { + run_list_test "unaligned-branch-1" "-32" \ "MIPS branch to unaligned symbol 1" - run_list_test "unaligned-branch-2" "-32" \ + run_list_test "unaligned-branch-2" "-32" \ "MIPS branch to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-branch-3" } - run_list_test "unaligned-branch-r6-1" "-32" \ + if { !$is_r6 } { + if $has_newabi { + run_dump_test "unaligned-branch-3" + } + } + if { !$is_r6 } { + run_list_test "unaligned-branch-r6-1" "-32" \ "MIPSr6 branch to unaligned symbol 1" + } run_list_test "unaligned-branch-r6-2" "-32 -mips64r6" \ "MIPSr6 branch to unaligned symbol 2" - run_list_test "unaligned-branch-r6-3" "-32" \ + if { !$is_r6 } { + run_list_test "unaligned-branch-r6-3" "-32" \ "MIPSr6 branch to unaligned symbol 3" + } run_list_test "unaligned-branch-r6-4" "-32 -mips64r6" \ "MIPSr6 branch to unaligned symbol 4" if $has_newabi { - run_dump_test "unaligned-branch-r6-5" + if { !$is_r6 } { + run_dump_test "unaligned-branch-r6-5" + } run_dump_test "unaligned-branch-r6-6" } - run_list_test "unaligned-branch-mips16-1" "-32" \ + if { !$is_r6 } { + run_list_test "unaligned-branch-mips16-1" "-32" \ "MIPS16 branch to unaligned symbol 1" - run_list_test "unaligned-branch-mips16-2" "-32" \ + run_list_test "unaligned-branch-mips16-2" "-32" \ "MIPS16 branch to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-branch-mips16-3" - } - run_list_test "unaligned-branch-micromips-1" "-32" \ + if $has_newabi { + run_dump_test "unaligned-branch-mips16-3" + } + run_list_test "unaligned-branch-micromips-1" "-32" \ "microMIPS branch to unaligned symbol 1" - run_list_test "unaligned-branch-micromips-2" "-32" \ + run_list_test "unaligned-branch-micromips-2" "-32" \ "microMIPS branch to unaligned symbol 2" - if $has_newabi { - run_dump_test "unaligned-branch-micromips-3" + if $has_newabi { + run_dump_test "unaligned-branch-micromips-3" + } } # Check MIPS16 HI16/LO16 relocations - run_dump_test "mips16-hilo" - run_dump_test "mips16e2-hilo" - if $has_newabi { - run_dump_test "mips16-hilo-n32" - run_dump_test "mips16e2-hilo-n32" + if { !$is_r6 } { + run_dump_test "mips16-hilo" + run_dump_test "mips16e2-hilo" + if $has_newabi { + run_dump_test "mips16-hilo-n32" + run_dump_test "mips16e2-hilo-n32" + } + run_dump_test "mips16-hilo-match" + run_dump_test "mips16-reloc-error" + run_dump_test "mips16e2-reloc-error" + run_dump_test "mips16-reg-error" + run_dump_test "mips16e2-imm-error" } - run_dump_test "mips16-hilo-match" - run_dump_test "mips16-reloc-error" - run_dump_test "mips16e2-reloc-error" - run_dump_test "mips16-reg-error" - run_dump_test "mips16e2-imm-error" run_dump_test "delay" run_dump_test "nodelay" @@ -1047,7 +1072,7 @@ if { [istarget mips*-*-vxworks*] } { run_list_test_arches "mips32-sf32" "-32 -msoft-float" \ [mips_arch_list_matching mips32] run_dump_test_arches "mips32-cp2" [mips_arch_list_matching mips32 \ - !octeon] + !octeon !mips32r6] run_dump_test_arches "mips32r2" [mips_arch_list_matching mips32r2] run_dump_test_arches "mips32r2-cp2" [mips_arch_list_matching mips32r2 \ @@ -1070,9 +1095,12 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "mips64r2" [mips_arch_list_matching mips64r2] run_list_test_arches "mips64r2-ill" [mips_arch_list_matching mips64r2] - run_dump_test "set-arch" + if { !$is_r6 } { + # r6 add some "R_MIPS_PC16" + run_dump_test "set-arch" + } - if { !$addr32 } { + if { !$addr32 && !$is_r6 } { run_dump_test "mips64-mips3d" if { $has_newabi } { run_dump_test_arches "mips64-mips3d-incl" \ @@ -1102,9 +1130,11 @@ if { [istarget mips*-*-vxworks*] } { [mips_arch_list_matching mips64r2 \ !micromips !mips32r6] - run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon] + run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon !mips32r6] - run_list_test "illegal" "-32" + if { !$is_r6 } { + run_list_test "illegal" "-32" + } run_list_test "baddata1" "-32" run_list_test "jalr" "" @@ -1142,13 +1172,15 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "elf_arch_mips64r6" # Verify that ASE markings are handled properly. - run_dump_test "elf_ase_mips16" - run_dump_test "elf_ase_mips16-2" - run_dump_test "elf_ase_mips16e2" - run_dump_test "elf_ase_mips16e2-2" + if { !$is_r6 } { + run_dump_test "elf_ase_mips16" + run_dump_test "elf_ase_mips16-2" + run_dump_test "elf_ase_mips16e2" + run_dump_test "elf_ase_mips16e2-2" - run_dump_test "elf_ase_micromips" - run_dump_test "elf_ase_micromips-2" + run_dump_test "elf_ase_micromips" + run_dump_test "elf_ase_micromips-2" + } # Verify that machine markings are handled properly. run_dump_test "elf_mach_5900" @@ -1174,34 +1206,44 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64 !mips16-32] run_dump_test "e32-rel4" run_dump_test "elf-rel5" - run_dump_test "elf-rel6" - if $has_newabi { - run_dump_test "elf-rel6-n32" - run_dump_test "elf-rel6-n64" + if { !$is_r6 } { + run_dump_test "elf-rel6" + if $has_newabi { + run_dump_test "elf-rel6-n32" + run_dump_test "elf-rel6-n64" + } } run_dump_test "elf-rel7" run_dump_test "elf-rel8" - run_dump_test "elf-rel8-mips16" + if { !$is_r6 } { + run_dump_test "elf-rel8-mips16" + } run_dump_test "elf-rel9" - run_dump_test "elf-rel9-mips16" - run_dump_test "elf-rel9-mips16e2" + if { !$is_r6 } { + run_dump_test "elf-rel9-mips16" + run_dump_test "elf-rel9-mips16e2" + } if $has_newabi { run_dump_test "elf-rel10" run_dump_test "elf-rel11" } run_dump_test "elf-rel12" run_dump_test "elf-rel13" - run_dump_test "elf-rel13-mips16" + if { !$is_r6 } { + run_dump_test "elf-rel13-mips16" + } run_dump_test "elf-rel14" if $has_newabi { run_dump_test "elf-rel15" run_dump_test "elf-rel16" - run_dump_test "elf-rel-got-n32" - run_dump_test "elf-rel-xgot-n32" - run_dump_test "elf-rel-got-n64" - run_dump_test "elf-rel-xgot-n64" + if { !$is_r6 } { + run_dump_test "elf-rel-got-n32" + run_dump_test "elf-rel-xgot-n32" + run_dump_test "elf-rel-got-n64" + run_dump_test "elf-rel-xgot-n64" + } } run_dump_test "elf-rel17" if $has_newabi { @@ -1226,21 +1268,25 @@ if { [istarget mips*-*-vxworks*] } { if $has_newabi { run_dump_test "elf-rel28-n32" - run_dump_test "elf-rel28-micromips-n32" run_dump_test "elf-rel28-n64" - run_dump_test "elf-rel28-micromips-n64" - run_dump_test "elf-rel28-lldscd-n32" - run_dump_test "elf-rel28-lldscd-micromips-n32" - run_dump_test "elf-rel28-lldscd-n64" - run_dump_test "elf-rel28-lldscd-micromips-n64" + if { !$is_r6 } { + run_dump_test "elf-rel28-micromips-n32" + run_dump_test "elf-rel28-micromips-n64" + run_dump_test "elf-rel28-lldscd-n32" + run_dump_test "elf-rel28-lldscd-micromips-n32" + run_dump_test "elf-rel28-lldscd-n64" + run_dump_test "elf-rel28-lldscd-micromips-n64" + } run_dump_test_arches "elf-rel29" [mips_arch_list_matching mips3] } run_list_test_arches "elf-rel30" "-32" [mips_arch_list_all] - run_dump_test "comdat-reloc" + if { !$is_r6 } { + run_dump_test "comdat-reloc" - run_dump_test "${tmips}mips${el}16-e" - run_dump_test "${tmips}mips${el}16-f" + run_dump_test "${tmips}mips${el}16-e" + run_dump_test "${tmips}mips${el}16-f" + } run_dump_test "elf-consthilo" run_dump_test "expr1" @@ -1279,15 +1325,19 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "loc-swap-2" [mips_arch_list_all] run_dump_test_arches "loc-swap-3" [mips_arch_list_all] - run_dump_test "nan-legacy-1" - run_dump_test "nan-legacy-2" - run_dump_test "nan-legacy-3" - run_dump_test "nan-legacy-4" - run_dump_test "nan-legacy-5" + if { !$is_r6 } { + run_dump_test "nan-legacy-1" + run_dump_test "nan-legacy-2" + run_dump_test "nan-legacy-3" + run_dump_test "nan-legacy-4" + run_dump_test "nan-legacy-5" + } run_dump_test "nan-2008-1" run_dump_test "nan-2008-2" - run_dump_test "nan-2008-3" + if { !$is_r6 } { + run_dump_test "nan-2008-3" + } run_dump_test "nan-2008-4" run_list_test "nan-error-1" @@ -1366,7 +1416,9 @@ if { [istarget mips*-*-vxworks*] } { if $has_newabi { run_dump_test "ldstla-n64" run_dump_test "ldstla-n64-shared" - run_dump_test "ldstla-n64-sym32" + if { !$is_r6 } { + run_dump_test "ldstla-n64-sym32" + } } run_dump_test "macro-warn-1" @@ -1389,32 +1441,34 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "at-1" run_list_test "at-2" "-32 -mips1" "MIPS at-2" - run_dump_test "loongson-2e" - run_dump_test "loongson-2f" - run_dump_test "loongson-2f-2" - run_dump_test "loongson-2f-3" + if { !$is_r6 } { + run_dump_test "loongson-2e" + run_dump_test "loongson-2f" + run_dump_test "loongson-2f-2" + run_dump_test "loongson-2f-3" - run_dump_test "loongson-3a" - run_dump_test "loongson-3a-2" - run_dump_test "loongson-3a-3" + run_dump_test "loongson-3a" + run_dump_test "loongson-3a-2" + run_dump_test "loongson-3a-3" - run_dump_test "loongson-2f-mmi" - run_dump_test "loongson-3a-mmi" + run_dump_test "loongson-2f-mmi" + run_dump_test "loongson-3a-mmi" - run_dump_test_arches "loongson-cam" [mips_arch_list_matching gs464] - run_dump_test_arches "loongson-ext2" [mips_arch_list_matching gs464] + run_dump_test_arches "loongson-cam" [mips_arch_list_matching gs464] + run_dump_test_arches "loongson-ext2" [mips_arch_list_matching gs464] - if { $has_newabi } { - run_dump_test_arches "octeon" [mips_arch_list_matching octeon] - } - run_dump_test_arches "octeon-saa-saad" [mips_arch_list_matching octeonp] - run_list_test_arches "octeon-ill" [mips_arch_list_matching octeon] - if { $has_newabi } { - run_dump_test_arches "octeon-pref" \ - [mips_arch_list_matching octeon] + if { $has_newabi } { + run_dump_test_arches "octeon" [mips_arch_list_matching octeon] + } + run_dump_test_arches "octeon-saa-saad" [mips_arch_list_matching octeonp] + run_list_test_arches "octeon-ill" [mips_arch_list_matching octeon] + if { $has_newabi } { + run_dump_test_arches "octeon-pref" \ + [mips_arch_list_matching octeon] + } + run_dump_test_arches "octeon2" [mips_arch_list_matching octeon2] + run_dump_test_arches "octeon3" [mips_arch_list_matching octeon3] } - run_dump_test_arches "octeon2" [mips_arch_list_matching octeon2] - run_dump_test_arches "octeon3" [mips_arch_list_matching octeon3] run_dump_test "smartmips" run_dump_test_arches "mips32-dsp" [mips_arch_list_matching mips32r2 \ @@ -1435,34 +1489,35 @@ if { [istarget mips*-*-vxworks*] } { [mips_arch_list_matching mips1 !micromips] \ [mips_arch_list_matching mips16-32]]] - run_dump_test "mips16-dwarf2" - if $has_newabi { - run_dump_test "mips16-dwarf2-n32" + if { !$is_r6 } { + run_dump_test "mips16-dwarf2" + if $has_newabi { + run_dump_test "mips16-dwarf2-n32" + } + run_dump_test "mips16-stabs" + + run_dump_test "mips16e-jrc" + run_dump_test "mips16e2-lui" + run_dump_test "mips16e2-mt-err" + run_dump_test "mips16e2-copy" + run_dump_test "mips16e2-copy-err" + + run_dump_test "mips16-intermix" + run_dump_test "mips16-extend" + run_dump_test "mips16-extend-swap" + run_dump_test "mips16-sprel-swap" + run_dump_test "mips16-sdrasp" + run_dump_test "mips16-insn-length-noargs" + + run_dump_test "mips16-branch-unextended-1" + run_dump_test "mips16-branch-unextended-2" + run_dump_test "mips16-relax-unextended-1" + run_dump_test "mips16-relax-unextended-2" + run_dump_test "mips16-jal-t" + run_dump_test "mips16-jal-e" + + run_dump_test_arches "mips16-asmacro" [mips_arch_list_matching mips16-32] } - run_dump_test "mips16-stabs" - - run_dump_test "mips16e-jrc" - run_dump_test "mips16e2-lui" - run_dump_test "mips16e2-mt-err" - run_dump_test "mips16e2-copy" - run_dump_test "mips16e2-copy-err" - - run_dump_test "mips16-intermix" - run_dump_test "mips16-extend" - run_dump_test "mips16-extend-swap" - run_dump_test "mips16-sprel-swap" - run_dump_test "mips16-sdrasp" - run_dump_test "mips16-insn-length-noargs" - - run_dump_test "mips16-branch-unextended-1" - run_dump_test "mips16-branch-unextended-2" - run_dump_test "mips16-relax-unextended-1" - run_dump_test "mips16-relax-unextended-2" - run_dump_test "mips16-jal-t" - run_dump_test "mips16-jal-e" - - run_dump_test_arches "mips16-asmacro" [mips_arch_list_matching mips16-32] - run_dump_test "vxworks1" run_dump_test "vxworks1-xgot" run_dump_test "vxworks1-el" @@ -1470,11 +1525,13 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "noreorder" run_dump_test "align" - run_dump_test "align2" - run_dump_test "align2-el" + if { !$is_r6 } { + run_dump_test "align2" + run_dump_test "align2-el" + run_dump_test "insn-opts" + } run_dump_test "align3" run_dump_test "odd-float" - run_dump_test "insn-opts" run_list_test_arches "mips-macro-ill-sfp" "-32 -msingle-float" \ [mips_arch_list_matching mips2] @@ -1488,7 +1545,9 @@ if { [istarget mips*-*-vxworks*] } { "-32 -msingle-float -mdouble-float" \ [mips_arch_list_matching mips1 !singlefloat] - run_dump_test "mips16-vis-1" + if { !$is_r6 } { + run_dump_test "mips16-vis-1" + } run_dump_test "call-nonpic-1" run_dump_test "mips32-sync" run_dump_test_arches "mips32r2-sync" [lsort -dictionary -unique [concat \ @@ -1519,33 +1578,35 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "reginfo-2-n32" } - run_dump_test "micromips" - run_dump_test "micromips-trap" - run_dump_test "micromips-compact" - run_dump_test "micromips-insn32" - run_dump_test "micromips-noinsn32" - run_list_test "micromips" "-mips32r2 -32 -mfp64 -minsn32" \ - "microMIPS for MIPS32r2 (instructions invalid in insn32 mode)" - run_list_test "micromips-size-0" \ - "-32 -march=mips64 -mmicromips" "microMIPS instruction size 0" - run_dump_test "micromips-size-1" - run_dump_test "micromips-branch-relax" - run_dump_test "micromips-branch-relax-pic${imips}" - run_dump_test "micromips-branch-relax-insn32" - run_dump_test "micromips-branch-relax-insn32-pic${imips}" - run_dump_test "micromips-branch-delay" - run_dump_test "micromips-warn-branch-delay" - run_dump_test "micromips-warn-branch-delay-1" - run_dump_test "micromips-branch-absolute" - run_dump_test "micromips-branch-absolute-addend" - if $has_newabi { - run_dump_test "micromips-branch-absolute-n32" - run_dump_test "micromips-branch-absolute-addend-n32" - run_dump_test "micromips-branch-absolute-n64" - run_dump_test "micromips-branch-absolute-addend-n64" + if { !$is_r6 } { + run_dump_test "micromips" + run_dump_test "micromips-trap" + run_dump_test "micromips-compact" + run_dump_test "micromips-insn32" + run_dump_test "micromips-noinsn32" + run_list_test "micromips" "-mips32r2 -32 -mfp64 -minsn32" \ + "microMIPS for MIPS32r2 (instructions invalid in insn32 mode)" + run_list_test "micromips-size-0" \ + "-32 -march=mips64 -mmicromips" "microMIPS instruction size 0" + run_dump_test "micromips-size-1" + run_dump_test "micromips-branch-relax" + run_dump_test "micromips-branch-relax-pic${imips}" + run_dump_test "micromips-branch-relax-insn32" + run_dump_test "micromips-branch-relax-insn32-pic${imips}" + run_dump_test "micromips-branch-delay" + run_dump_test "micromips-warn-branch-delay" + run_dump_test "micromips-warn-branch-delay-1" + run_dump_test "micromips-branch-absolute" + run_dump_test "micromips-branch-absolute-addend" + if $has_newabi { + run_dump_test "micromips-branch-absolute-n32" + run_dump_test "micromips-branch-absolute-addend-n32" + run_dump_test "micromips-branch-absolute-n64" + run_dump_test "micromips-branch-absolute-addend-n64" + } + run_dump_test "micromips-b16" + run_list_test "micromips-ill" } - run_dump_test "micromips-b16" - run_list_test "micromips-ill" run_dump_test_arches "mcu" [mips_arch_list_matching mips32r2 \ !octeon] @@ -1599,7 +1660,9 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2 !mips32r6] run_dump_test "l_d-reloc" - run_list_test "bltzal" + if { !$is_r6 } { + run_list_test "bltzal" + } run_dump_test_arches "msa" [mips_arch_list_matching mips32r2] if { $has_newabi } { @@ -1622,185 +1685,189 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "pcrel-4-64" } - run_dump_test "pcrel-reloc-1" + if { !$is_r6 } { + run_dump_test "pcrel-reloc-1" + run_dump_test "pcrel-reloc-2" + run_dump_test "pcrel-reloc-3" + run_dump_test "pcrel-reloc-4" + run_dump_test "pcrel-reloc-5" + run_dump_test "pcrel-reloc-6" + run_list_test "pcrel-reloc-6" "-32 --defsym offset=4" \ + "MIPS local PC-relative relocations 6b" + } run_dump_test "pcrel-reloc-1-r6" - run_dump_test "pcrel-reloc-2" run_dump_test "pcrel-reloc-2-r6" - run_dump_test "pcrel-reloc-3" run_dump_test "pcrel-reloc-3-r6" - run_dump_test "pcrel-reloc-4" run_dump_test "pcrel-reloc-4-r6" - run_dump_test "pcrel-reloc-5" run_dump_test "pcrel-reloc-5-r6" - run_dump_test "pcrel-reloc-6" - run_list_test "pcrel-reloc-6" "-32 --defsym offset=4" \ - "MIPS local PC-relative relocations 6b" - - run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-1" [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-2" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-3" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-4" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-5" [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-pic-0" \ + + if { !$is_r6 } { + run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-pcrel-1" [mips_arch_list_matching mips16-64] + run_dump_test_arches "mips16-pcrel-2" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-pcrel-3" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-pcrel-4" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-pcrel-5" [mips_arch_list_matching mips16-32] + run_dump_test_arches "mips16-pcrel-pic-0" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-pic-1" \ + run_dump_test_arches "mips16-pcrel-pic-1" \ [mips_arch_list_matching mips16-64] - if $has_newabi { - run_dump_test_arches "mips16-pcrel-n32-0" \ + if $has_newabi { + run_dump_test_arches "mips16-pcrel-n32-0" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-n32-1" \ + run_dump_test_arches "mips16-pcrel-n32-1" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-n64-sym32-0" \ + run_dump_test_arches "mips16-pcrel-n64-sym32-0" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-n64-sym32-1" \ + run_dump_test_arches "mips16-pcrel-n64-sym32-1" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-n64-0" \ + run_dump_test_arches "mips16-pcrel-n64-0" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-n64-1" \ + run_dump_test_arches "mips16-pcrel-n64-1" \ [mips_arch_list_matching mips16-64] - } - run_dump_test_arches "mips16-pcrel-delay-0" \ + } + run_dump_test_arches "mips16-pcrel-delay-0" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-delay-1" \ + run_dump_test_arches "mips16-pcrel-delay-1" \ [mips_arch_list_matching mips16-32] - run_dump_test "mips16-pcrel-relax-0" - run_dump_test "mips16-pcrel-relax-1" - run_dump_test "mips16-pcrel-relax-2" - run_dump_test "mips16-pcrel-relax-3" - run_dump_test_arches "mips16-pcrel-reloc-0" \ + run_dump_test "mips16-pcrel-relax-0" + run_dump_test "mips16-pcrel-relax-1" + run_dump_test "mips16-pcrel-relax-2" + run_dump_test "mips16-pcrel-relax-3" + run_dump_test_arches "mips16-pcrel-reloc-0" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-reloc-1" \ + run_dump_test_arches "mips16-pcrel-reloc-1" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-reloc-2" \ + run_dump_test_arches "mips16-pcrel-reloc-2" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-reloc-3" \ + run_dump_test_arches "mips16-pcrel-reloc-3" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-reloc-4" \ + run_dump_test_arches "mips16-pcrel-reloc-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-reloc-5" \ + run_dump_test_arches "mips16-pcrel-reloc-5" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-reloc-6" \ + run_dump_test_arches "mips16-pcrel-reloc-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-reloc-7" \ + run_dump_test_arches "mips16-pcrel-reloc-7" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-0" \ + run_dump_test_arches "mips16-pcrel-addend-0" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-1" \ + run_dump_test_arches "mips16-pcrel-addend-1" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-2" \ + run_dump_test_arches "mips16-pcrel-addend-2" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-3" \ + run_dump_test_arches "mips16-pcrel-addend-3" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-4" \ + run_dump_test_arches "mips16-pcrel-addend-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-5" \ + run_dump_test_arches "mips16-pcrel-addend-5" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-6" \ + run_dump_test_arches "mips16-pcrel-addend-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-7" \ + run_dump_test_arches "mips16-pcrel-addend-7" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-8" \ + run_dump_test_arches "mips16-pcrel-addend-8" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-9" \ + run_dump_test_arches "mips16-pcrel-addend-9" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-pic-8" \ + run_dump_test_arches "mips16-pcrel-addend-pic-8" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-addend-pic-9" \ + run_dump_test_arches "mips16-pcrel-addend-pic-9" \ [mips_arch_list_matching mips16-64] - if $has_newabi { - run_dump_test_arches "mips16-pcrel-addend-n32-8" \ + if $has_newabi { + run_dump_test_arches "mips16-pcrel-addend-n32-8" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-n32-9" \ + run_dump_test_arches "mips16-pcrel-addend-n32-9" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-n64-sym32-8" \ + run_dump_test_arches "mips16-pcrel-addend-n64-sym32-8" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-n64-sym32-9" \ + run_dump_test_arches "mips16-pcrel-addend-n64-sym32-9" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-n64-8" \ + run_dump_test_arches "mips16-pcrel-addend-n64-8" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-addend-n64-9" \ + run_dump_test_arches "mips16-pcrel-addend-n64-9" \ [mips_arch_list_matching mips16-64] - } - run_dump_test_arches "mips16-pcrel-absolute" \ + } + run_dump_test_arches "mips16-pcrel-absolute" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-absolute-1" \ + run_dump_test_arches "mips16-pcrel-absolute-1" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-absolute-2" \ + run_dump_test_arches "mips16-pcrel-absolute-2" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-3" \ + run_dump_test_arches "mips16-pcrel-absolute-3" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-4" \ + run_dump_test_arches "mips16-pcrel-absolute-4" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-absolute-5" \ + run_dump_test_arches "mips16-pcrel-absolute-5" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-absolute-6" \ + run_dump_test_arches "mips16-pcrel-absolute-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-7" \ + run_dump_test_arches "mips16-pcrel-absolute-7" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-4" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-4" \ [mips_arch_list_matching mips16-32] - run_dump_test_arches "mips16-pcrel-absolute-pic-6" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-6" \ [mips_arch_list_matching mips16-64] - if $has_newabi { - run_dump_test_arches "mips16-pcrel-absolute-n32-4" \ + if $has_newabi { + run_dump_test_arches "mips16-pcrel-absolute-n32-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-n32-6" \ + run_dump_test_arches "mips16-pcrel-absolute-n32-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-n64-4" \ + run_dump_test_arches "mips16-pcrel-absolute-n64-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-n64-6" \ + run_dump_test_arches "mips16-pcrel-absolute-n64-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-4" \ + run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-6" \ + run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n32-4" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n32-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n32-6" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n32-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n64-4" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n64-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n64-6" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n64-6" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-4" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-4" \ [mips_arch_list_matching mips16-64] - run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-6" \ + run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-6" \ [mips_arch_list_matching mips16-64] + } + run_dump_test "mips16-branch-reloc-0" + run_dump_test "mips16-branch-reloc-1" + run_dump_test "mips16-branch-reloc-2" + run_dump_test "mips16-branch-reloc-3" + run_dump_test "mips16-branch-reloc-4" + run_dump_test "mips16-branch-reloc-5" + run_dump_test "mips16-branch-addend-0" + run_dump_test "mips16-branch-addend-1" + run_dump_test "mips16-branch-addend-2" + run_dump_test "mips16-branch-addend-3" + run_dump_test "mips16-branch-addend-4" + run_dump_test "mips16-branch-addend-5" + run_dump_test "mips16-branch-absolute" + run_dump_test "mips16-branch-absolute-1" + run_dump_test "mips16-branch-absolute-2" + run_dump_test "mips16-branch-absolute-addend" + run_dump_test "mips16-branch-absolute-addend-1" + if $has_newabi { + run_dump_test "mips16-branch-absolute-n32" + run_dump_test "mips16-branch-absolute-n32-1" + run_dump_test "mips16-branch-absolute-n32-2" + run_dump_test "mips16-branch-absolute-addend-n32" + run_dump_test "mips16-branch-absolute-addend-n32-1" + run_dump_test "mips16-branch-absolute-n64" + run_dump_test "mips16-branch-absolute-n64-1" + run_dump_test "mips16-branch-absolute-n64-2" + run_dump_test "mips16-branch-absolute-addend-n64" + run_dump_test "mips16-branch-absolute-addend-n64-1" + } + run_dump_test "mips16-absolute-reloc-0" + run_dump_test "mips16-absolute-reloc-1" + run_dump_test "mips16-absolute-reloc-2" + run_dump_test "mips16-absolute-reloc-3" } - run_dump_test "mips16-branch-reloc-0" - run_dump_test "mips16-branch-reloc-1" - run_dump_test "mips16-branch-reloc-2" - run_dump_test "mips16-branch-reloc-3" - run_dump_test "mips16-branch-reloc-4" - run_dump_test "mips16-branch-reloc-5" - run_dump_test "mips16-branch-addend-0" - run_dump_test "mips16-branch-addend-1" - run_dump_test "mips16-branch-addend-2" - run_dump_test "mips16-branch-addend-3" - run_dump_test "mips16-branch-addend-4" - run_dump_test "mips16-branch-addend-5" - run_dump_test "mips16-branch-absolute" - run_dump_test "mips16-branch-absolute-1" - run_dump_test "mips16-branch-absolute-2" - run_dump_test "mips16-branch-absolute-addend" - run_dump_test "mips16-branch-absolute-addend-1" - if $has_newabi { - run_dump_test "mips16-branch-absolute-n32" - run_dump_test "mips16-branch-absolute-n32-1" - run_dump_test "mips16-branch-absolute-n32-2" - run_dump_test "mips16-branch-absolute-addend-n32" - run_dump_test "mips16-branch-absolute-addend-n32-1" - run_dump_test "mips16-branch-absolute-n64" - run_dump_test "mips16-branch-absolute-n64-1" - run_dump_test "mips16-branch-absolute-n64-2" - run_dump_test "mips16-branch-absolute-addend-n64" - run_dump_test "mips16-branch-absolute-addend-n64-1" - } - run_dump_test "mips16-absolute-reloc-0" - run_dump_test "mips16-absolute-reloc-1" - run_dump_test "mips16-absolute-reloc-2" - run_dump_test "mips16-absolute-reloc-3" run_dump_test_arches "attr-gnu-4-0" "-32" \ [mips_arch_list_matching mips1] @@ -1924,7 +1991,7 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "attr-gnu-4-3" "-64" \ [mips_arch_list_matching mips3] } - + run_list_test_arches "attr-gnu-4-4" "-32 -mfp32" \ [mips_arch_list_matching mips1 !mips32r6] run_list_test_arches "attr-gnu-4-4" "-32 -mfpxx" \ @@ -1993,30 +2060,35 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "attr-gnu-4-7" "-32 -mfp64 -mno-odd-spreg" \ [mips_arch_list_matching mips32r2] - run_dump_test "attr-gnu-abi-fp-1" + if { !$is_r6 } { + run_dump_test "attr-gnu-abi-fp-1" + } run_dump_test "attr-gnu-abi-msa-1" run_dump_test "module-override" run_dump_test "module-defer-warn1" - run_list_test "module-defer-warn2" "-32" + ## mips32r2 or above support FP64, so no "Error: `fp=64' used with a 32-bit fpu" + run_list_test "module-defer-warn2" "-32 -mips32" - foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \ - -msingle-float -msoft-float] { - foreach cmdopt [list -mfp32 -mfpxx -mfp64 "-mfp64 -mno-odd-spreg" \ - -msingle-float -msoft-float] { - run_dump_test "module${testopt}" \ - [list [list as $cmdopt] [list name ($cmdopt)]] - } + if { !$is_r6 } { + foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \ + -msingle-float -msoft-float] { + foreach cmdopt [list -mfp32 -mfpxx -mfp64 "-mfp64 -mno-odd-spreg" \ + -msingle-float -msoft-float] { + run_dump_test "module${testopt}" \ + [list [list as $cmdopt] [list name ($cmdopt)]] + } + } + run_dump_test "module-set-mfpxx" } - run_dump_test "module-set-mfpxx" run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx" \ - [mips_arch_list_matching mips2 !singlefloat] + [mips_arch_list_matching mips2 !singlefloat !mips32r6] run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx -mno-odd-spreg" \ - [mips_arch_list_matching mips2 !singlefloat] + [mips_arch_list_matching mips2 !singlefloat !mips32r6] run_dump_test_arches "fpxx-oddfpreg" \ - [mips_arch_list_matching oddspreg] - run_dump_test_arches "odd-spreg" "-mfp32" [mips_arch_list_matching oddspreg] + [mips_arch_list_matching oddspreg !mips32r6] + run_dump_test_arches "odd-spreg" "-mfp32" [mips_arch_list_matching oddspreg !mips32r6] run_dump_test_arches "odd-spreg" "-mfpxx" [mips_arch_list_matching oddspreg] run_dump_test_arches "odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2] run_dump_test_arches "no-odd-spreg" "-mfp32" [mips_arch_list_matching mips1 \ @@ -2035,13 +2107,15 @@ if { [istarget mips*-*-vxworks*] } { "MIPS invalid PIC option in VxWorks PIC" run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \ "MIPS invalid switch to SVR4 PIC from VxWorks PIC" - run_dump_test "option-pic-relax-0" - run_dump_test "option-pic-relax-1" - run_dump_test "option-pic-relax-2" - run_dump_test "option-pic-relax-3" - run_dump_test "option-pic-relax-3a" - run_dump_test "option-pic-relax-4" - run_dump_test "option-pic-relax-5" + if { !$is_r6 } { + run_dump_test "option-pic-relax-0" + run_dump_test "option-pic-relax-1" + run_dump_test "option-pic-relax-2" + run_dump_test "option-pic-relax-3" + run_dump_test "option-pic-relax-3a" + run_dump_test "option-pic-relax-4" + run_dump_test "option-pic-relax-5" + } run_dump_test_arches "isa-override-1" "" [mips_arch_list_matching mips1] run_dump_test_arches "isa-override-2" "" [mips_arch_list_matching mips1] @@ -2050,18 +2124,20 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "debug-label-end-2" run_dump_test "debug-label-end-3" - run_dump_test "org-1" - run_dump_test "org-2" - run_dump_test "org-3" - run_dump_test "org-4" - run_dump_test "org-5" - run_dump_test "org-6" - run_dump_test "org-7" - run_dump_test "org-8" - run_dump_test "org-9" - run_dump_test "org-10" - run_dump_test "org-11" - run_dump_test "org-12" + if { !$is_r6 } { + run_dump_test "org-1" + run_dump_test "org-2" + run_dump_test "org-3" + run_dump_test "org-4" + run_dump_test "org-5" + run_dump_test "org-6" + run_dump_test "org-7" + run_dump_test "org-8" + run_dump_test "org-9" + run_dump_test "org-10" + run_dump_test "org-11" + run_dump_test "org-12" + } run_dump_test_arches "stabs-symbol-type" [mips_arch_list_all] @@ -2091,8 +2167,9 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arch "llpscp-64" "" mips64r6 run_dump_test "pr14798${imips}" - run_dump_test "insn-isa-mode" - run_dump_test "insn-isa-mode" + if { !$is_r6 } { + run_dump_test "insn-isa-mode" + } run_dump_test "global-local-symtab-o32${tmips}" run_dump_test "global-local-symtab-sort-o32${tmips}" if $has_newabi { diff --git a/gas/testsuite/gas/mips/mipsr6@beq.d b/gas/testsuite/gas/mips/mipsr6@beq.d index d6fc670445..c73109164c 100644 --- a/gas/testsuite/gas/mips/mipsr6@beq.d +++ b/gas/testsuite/gas/mips/mipsr6@beq.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses -mmips:4000 #name: MIPS beq -#as: -32 +#as: -32 --defsym r6=1 #source: beq.s # Test the beq macro. diff --git a/gas/testsuite/gas/mips/mipsr6@cache.d b/gas/testsuite/gas/mips/mipsr6@cache.d index 803f5de05f..ca6e06066e 100644 --- a/gas/testsuite/gas/mips/mipsr6@cache.d +++ b/gas/testsuite/gas/mips/mipsr6@cache.d @@ -1,7 +1,7 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS CACHE instruction #source: cache.s -#as: -32 +#as: -32 --defsym r6=1 # Check MIPS CACHE instruction assembly. diff --git a/gas/testsuite/gas/mips/mipsr6@hwr-names.d b/gas/testsuite/gas/mips/mipsr6@hwr-names.d index e44a120c38..3c1473fd88 100644 --- a/gas/testsuite/gas/mips/mipsr6@hwr-names.d +++ b/gas/testsuite/gas/mips/mipsr6@hwr-names.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32r6 -M gpr-names=numeric,hwr-names=mips32r6 #name: MIPS HWR disassembly (mips32r6) -#as: -32 +#as: -32 --defsym r6=1 #source: hwr-names.s # Check objdump's handling of -M hwr-names=foo options. diff --git a/gas/testsuite/gas/mips/mipsr6@mips32.d b/gas/testsuite/gas/mips/mipsr6@mips32.d index e7af216b49..b909880cd5 100644 --- a/gas/testsuite/gas/mips/mipsr6@mips32.d +++ b/gas/testsuite/gas/mips/mipsr6@mips32.d @@ -1,7 +1,7 @@ #objdump: -dr --prefix-addresses --show-raw-insn -#name: MIPS MIPS32 instructions -#as: -32 #source: mips32.s +#name: MIPS MIPS32 instructions +#as: -32 --defsym r6=1 # Check MIPS32 instruction assembly diff --git a/gas/testsuite/gas/mips/mipsr6@pref.d b/gas/testsuite/gas/mips/mipsr6@pref.d index a6446655a9..389b03334a 100644 --- a/gas/testsuite/gas/mips/mipsr6@pref.d +++ b/gas/testsuite/gas/mips/mipsr6@pref.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS PREF instruction -#as: -32 --defsym tpref=1 +#as: -32 --defsym tpref=1 --defsym r6=1 #source: cache.s # Check MIPS PREF instruction assembly. diff --git a/gas/testsuite/gas/mips/option-pic-1.d b/gas/testsuite/gas/mips/option-pic-1.d index da32af6a6c..612414ae75 100644 --- a/gas/testsuite/gas/mips/option-pic-1.d +++ b/gas/testsuite/gas/mips/option-pic-1.d @@ -13,6 +13,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_LO16 bar [0-9a-f]+ <[^>]*> 8f820000 lw v0,0\(gp\) [ ]*[0-9a-f]+: R_MIPS_GOT16 bar -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d index 24d051d5c4..2993d6d0b6 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d @@ -2,6 +2,7 @@ #source: attr-gnu-4-1.s #ld: -r #readelf: -A +#xfail: mipsisa32r6*-*-* mipsisa64r6*-*-* Attribute Section: gnu File Attributes diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d index ce94a818eb..a76da49fad 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d @@ -2,6 +2,7 @@ #source: attr-gnu-4-1.s #ld: -r #readelf: -A +#xfail: mipsisa32r6*-*-* mipsisa64r6*-*-* Attribute Section: gnu File Attributes diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d index 49f2137e0e..acebbeb7d2 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d @@ -1,6 +1,7 @@ #source: attr-gnu-4-4.s -W #source: attr-gnu-4-1.s #ld: -r +#xfail: mipsisa32r6*-*-* mipsisa64r6*-*-* #error: \A[^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n #error: [^\n]*: warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -mdouble-float\n #error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d index 2f8e5f0925..34f766bae5 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d @@ -5,5 +5,5 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d index e2cda3341e..26a835f979 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: 128-bit MSA #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d index 54b196fa38..aee5d4cf57 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\) #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d index f7c512beeb..de9ac3009a 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: 128-bit MSA #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d index be87af4bd1..c07721c426 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: 128-bit MSA #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d index 05f4da064a..47de4c7763 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\) #pass diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d index 908ce4f00a..ba267ebdd3 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d @@ -5,6 +5,6 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \((double precision|32-bit CPU, 64-bit FPU)\) Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\) #pass diff --git a/ld/testsuite/ld-mips-elf/emit-relocs-1.d b/ld/testsuite/ld-mips-elf/emit-relocs-1.d index 86305d314c..d305752aad 100644 --- a/ld/testsuite/ld-mips-elf/emit-relocs-1.d +++ b/ld/testsuite/ld-mips-elf/emit-relocs-1.d @@ -23,7 +23,7 @@ OFFSET TYPE VALUE * Contents of section \.text: - 80000 03e00008 00000000 00000000 00000000 .* + 80000 03e0000[89] 00000000 00000000 00000000 .* Contents of section \.merge1: 80400 666c7574 74657200 flutter.* Contents of section \.merge2: diff --git a/ld/testsuite/ld-mips-elf/export-class-call16-n32.dd b/ld/testsuite/ld-mips-elf/export-class-call16-n32.dd index a033972a9d..011089a56b 100644 --- a/ld/testsuite/ld-mips-elf/export-class-call16-n32.dd +++ b/ld/testsuite/ld-mips-elf/export-class-call16-n32.dd @@ -21,21 +21,21 @@ Disassembly of section \.text: 12340038: 00000000 nop 1234003c: dfbc0000 ld gp,0\(sp\) 12340040: dfbf0008 ld ra,8\(sp\) -12340044: 03e00008 jr ra +12340044: 03e0000[89] jr ra 12340048: 27bd0010 addiu sp,sp,16 \.\.\. 12340060 : -12340060: 03e00008 jr ra +12340060: 03e0000[89] jr ra 12340064: 00000000 nop \.\.\. 12340070 : -12340070: 03e00008 jr ra +12340070: 03e0000[89] jr ra 12340074: 00000000 nop \.\.\. 12340080 : -12340080: 03e00008 jr ra +12340080: 03e0000[89] jr ra 12340084: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/export-class-call16-n64.dd b/ld/testsuite/ld-mips-elf/export-class-call16-n64.dd index 7b481aaa01..1694500b52 100644 --- a/ld/testsuite/ld-mips-elf/export-class-call16-n64.dd +++ b/ld/testsuite/ld-mips-elf/export-class-call16-n64.dd @@ -21,21 +21,21 @@ Disassembly of section \.text: 123456789abc0038: 00000000 nop 123456789abc003c: dfbc0000 ld gp,0\(sp\) 123456789abc0040: dfbf0008 ld ra,8\(sp\) -123456789abc0044: 03e00008 jr ra +123456789abc0044: 03e0000[89] jr ra 123456789abc0048: 67bd0010 daddiu sp,sp,16 \.\.\. 123456789abc0060 : -123456789abc0060: 03e00008 jr ra +123456789abc0060: 03e0000[89] jr ra 123456789abc0064: 00000000 nop \.\.\. 123456789abc0070 : -123456789abc0070: 03e00008 jr ra +123456789abc0070: 03e0000[89] jr ra 123456789abc0074: 00000000 nop \.\.\. 123456789abc0080 : -123456789abc0080: 03e00008 jr ra +123456789abc0080: 03e0000[89] jr ra 123456789abc0084: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/export-class-call16-o32.dd b/ld/testsuite/ld-mips-elf/export-class-call16-o32.dd index 616af2fe0c..2ea8be6229 100644 --- a/ld/testsuite/ld-mips-elf/export-class-call16-o32.dd +++ b/ld/testsuite/ld-mips-elf/export-class-call16-o32.dd @@ -23,21 +23,21 @@ Disassembly of section \.text: 12340040: 00000000 nop 12340044: 8fbc0000 lw gp,0\(sp\) 12340048: 8fbf0004 lw ra,4\(sp\) -1234004c: 03e00008 jr ra +1234004c: 03e0000[89] jr ra 12340050: 27bd0008 addiu sp,sp,8 \.\.\. 12340060 : -12340060: 03e00008 jr ra +12340060: 03e0000[89] jr ra 12340064: 00000000 nop \.\.\. 12340070 : -12340070: 03e00008 jr ra +12340070: 03e0000[89] jr ra 12340074: 00000000 nop \.\.\. 12340080 : -12340080: 03e00008 jr ra +12340080: 03e0000[89] jr ra 12340084: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/gp-disp-sym.s b/ld/testsuite/ld-mips-elf/gp-disp-sym.s index c6380ba1fb..3b06e717f5 100644 --- a/ld/testsuite/ld-mips-elf/gp-disp-sym.s +++ b/ld/testsuite/ld-mips-elf/gp-disp-sym.s @@ -2,4 +2,4 @@ .text foo: lui $t0, %hi(_gp_disp) - addi $t0, $t0, %lo(_gp_disp) + addiu $t0, $t0, %lo(_gp_disp) diff --git a/ld/testsuite/ld-mips-elf/jalr3.dd b/ld/testsuite/ld-mips-elf/jalr3.dd index 6b6d484120..5c9d83fdfd 100644 --- a/ld/testsuite/ld-mips-elf/jalr3.dd +++ b/ld/testsuite/ld-mips-elf/jalr3.dd @@ -9,6 +9,6 @@ Disassembly of section \.text: c: 00000000 nop 0+000010 <\$bar>: - 10: 03e00008 jr ra + 10: 03e0000[89] jr ra 14: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/jalr4.dd b/ld/testsuite/ld-mips-elf/jalr4.dd index 56ee0940b7..207a10283b 100644 --- a/ld/testsuite/ld-mips-elf/jalr4.dd +++ b/ld/testsuite/ld-mips-elf/jalr4.dd @@ -9,15 +9,15 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> 00000000 nop [0-9a-f]+ <[^>]*> 0320f809 jalr t9 [0-9a-f]+ <[^>]*> 00000000 nop -[0-9a-f]+ <[^>]*> 03200009 jalr zero,t9 +[0-9a-f]+ <[^>]*> 03200009 (jalr zero,t9|jr t9) [0-9a-f]+ <[^>]*> 00000000 nop -[0-9a-f]+ <[^>]*> 03200008 jr t9 +[0-9a-f]+ <[^>]*> 0320000[89] jr t9 [0-9a-f]+ <[^>]*> 00000000 nop [0-9a-f]+ <[^>]*> 0320f809 jalr t9 [0-9a-f]+ <[^>]*> 00000000 nop -[0-9a-f]+ <[^>]*> 03200009 jalr zero,t9 +[0-9a-f]+ <[^>]*> 03200009 (jalr zero,t9|jr t9) [0-9a-f]+ <[^>]*> 00000000 nop -[0-9a-f]+ <[^>]*> 03200008 jr t9 +[0-9a-f]+ <[^>]*> 0320000[89] jr t9 [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. \.\.\. diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 1eb9dd271f..4c1a487053 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -149,10 +149,18 @@ set abi_ldflags(n32) "" set abi_ldflags(n64) "" set abi_ldflags(eabi) "" +if { $has_abi(o32) && $is_r6 } { + set abi_as64flags "-mips64r6" +} elseif { $has_abi(o32) && !$is_r6 } { + set abi_as64flags "-mips3" +} else { + set abi_as64flags "" +} + # Override as needed. if {[istarget *-*-openbsd*] } { set irixemul 0 -} elseif { [istarget mips64*-*-linux*] } { +} elseif { [istarget mips*64*-*-linux*] } { if [istarget *el-*-*] { set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32ltsmip @@ -251,7 +259,7 @@ if {[istarget *-*-openbsd*] } { } set tmips [expr $irixemul ? {""} : {"t"}] -if { $linux_gnu } { +if { $linux_gnu && !$is_r6 } { run_ld_link_tests [list \ [list "Dummy shared library for MIPS16 PIC test 1" \ "-shared -melf32btsmip" "" \ @@ -301,66 +309,71 @@ if { $linux_gnu } { } # Check MIPS16 markings being passed through link. -run_dump_test "mips16-1" +if { !$is_r6 } { + run_dump_test "mips16-1" +} # MIPS branch offset final link checking. run_dump_test "branch-misc-1" run_dump_test "branch-misc-2" -run_dump_test_o32 "branch-absolute" -run_dump_test_o32 "branch-absolute-addend" -run_dump_test_n32 "branch-absolute-n32" -run_dump_test_n32 "branch-absolute-addend-n32" -run_dump_test_n64 "branch-absolute-n64" -run_dump_test_n64 "branch-absolute-addend-n64" - -run_dump_test_o32 "mips16-pcrel-0" -run_dump_test_o32 "mips16-pcrel-1" noarch -run_dump_test_o32 "mips16e2-pcrel-0" noarch -run_dump_test_o32 "mips16e2-pcrel-1" noarch -run_dump_test_o32 "mips16-pcrel-addend-2" -run_dump_test_o32 "mips16-pcrel-addend-6" -run_dump_test_o32 "mips16e2-pcrel-addend-2" noarch -run_dump_test_o32 "mips16e2-pcrel-addend-6" noarch -run_dump_test_n32 "mips16-pcrel-n32-0" -run_dump_test_n32 "mips16-pcrel-n32-1" -run_dump_test_n64 "mips16-pcrel-n64-sym32-0" -run_dump_test_n64 "mips16-pcrel-n64-sym32-1" -run_dump_test_n32 "mips16e2-pcrel-n32-0" noarch -run_dump_test_n32 "mips16e2-pcrel-n32-1" noarch -run_dump_test_n64 "mips16e2-pcrel-n64-sym32-0" noarch -run_dump_test_n64 "mips16e2-pcrel-n64-sym32-1" noarch - -run_dump_test_o32 "mips16-branch-2" -run_dump_test_o32 "mips16-branch-3" -run_dump_test_o32 "mips16-branch-addend-2" -run_dump_test_o32 "mips16-branch-addend-3" -run_dump_test_o32 "mips16-branch-absolute" -run_dump_test_o32 "mips16-branch-absolute-1" -run_dump_test_o32 "mips16-branch-absolute-2" -run_dump_test_o32 "mips16-branch-absolute-addend" -run_dump_test_o32 "mips16-branch-absolute-addend-1" -run_dump_test_n32 "mips16-branch-absolute-n32" -run_dump_test_n32 "mips16-branch-absolute-n32-1" -run_dump_test_n32 "mips16-branch-absolute-n32-2" -run_dump_test_n32 "mips16-branch-absolute-addend-n32" -run_dump_test_n32 "mips16-branch-absolute-addend-n32-1" -run_dump_test_n64 "mips16-branch-absolute-n64" -run_dump_test_n64 "mips16-branch-absolute-n64-1" -run_dump_test_n64 "mips16-branch-absolute-n64-2" -run_dump_test_n64 "mips16-branch-absolute-addend-n64" -run_dump_test_n64 "mips16-branch-absolute-addend-n64-1" - -run_dump_test_o32 "micromips-branch-absolute" -run_dump_test_o32 "micromips-branch-absolute-addend" -run_dump_test_n32 "micromips-branch-absolute-n32" -run_dump_test_n32 "micromips-branch-absolute-addend-n32" -run_dump_test_n64 "micromips-branch-absolute-n64" -run_dump_test_n64 "micromips-branch-absolute-addend-n64" - -# Jalx test -run_dump_test "jalx-1" -if { $linux_gnu } { +if { !$is_r6 } { + run_dump_test_o32 "branch-absolute" + run_dump_test_o32 "branch-absolute-addend" + run_dump_test_n32 "branch-absolute-n32" + run_dump_test_n32 "branch-absolute-addend-n32" + run_dump_test_n64 "branch-absolute-n64" + run_dump_test_n64 "branch-absolute-addend-n64" + + run_dump_test_o32 "mips16-pcrel-0" + run_dump_test_o32 "mips16-pcrel-1" noarch + run_dump_test_o32 "mips16e2-pcrel-0" noarch + run_dump_test_o32 "mips16e2-pcrel-1" noarch + run_dump_test_o32 "mips16-pcrel-addend-2" + run_dump_test_o32 "mips16-pcrel-addend-6" + run_dump_test_o32 "mips16e2-pcrel-addend-2" noarch + run_dump_test_o32 "mips16e2-pcrel-addend-6" noarch + run_dump_test_n32 "mips16-pcrel-n32-0" + run_dump_test_n32 "mips16-pcrel-n32-1" + run_dump_test_n64 "mips16-pcrel-n64-sym32-0" + run_dump_test_n64 "mips16-pcrel-n64-sym32-1" + run_dump_test_n32 "mips16e2-pcrel-n32-0" noarch + run_dump_test_n32 "mips16e2-pcrel-n32-1" noarch + run_dump_test_n64 "mips16e2-pcrel-n64-sym32-0" noarch + run_dump_test_n64 "mips16e2-pcrel-n64-sym32-1" noarch + + run_dump_test_o32 "mips16-branch-2" + run_dump_test_o32 "mips16-branch-3" + run_dump_test_o32 "mips16-branch-addend-2" + run_dump_test_o32 "mips16-branch-addend-3" + run_dump_test_o32 "mips16-branch-absolute" + run_dump_test_o32 "mips16-branch-absolute-1" + run_dump_test_o32 "mips16-branch-absolute-2" + run_dump_test_o32 "mips16-branch-absolute-addend" + run_dump_test_o32 "mips16-branch-absolute-addend-1" + run_dump_test_n32 "mips16-branch-absolute-n32" + run_dump_test_n32 "mips16-branch-absolute-n32-1" + run_dump_test_n32 "mips16-branch-absolute-n32-2" + run_dump_test_n32 "mips16-branch-absolute-addend-n32" + run_dump_test_n32 "mips16-branch-absolute-addend-n32-1" + run_dump_test_n64 "mips16-branch-absolute-n64" + run_dump_test_n64 "mips16-branch-absolute-n64-1" + run_dump_test_n64 "mips16-branch-absolute-n64-2" + run_dump_test_n64 "mips16-branch-absolute-addend-n64" + run_dump_test_n64 "mips16-branch-absolute-addend-n64-1" + + run_dump_test_o32 "micromips-branch-absolute" + run_dump_test_o32 "micromips-branch-absolute-addend" + run_dump_test_n32 "micromips-branch-absolute-n32" + run_dump_test_n32 "micromips-branch-absolute-addend-n32" + run_dump_test_n64 "micromips-branch-absolute-n64" + run_dump_test_n64 "micromips-branch-absolute-addend-n64" + + # Jalx test + run_dump_test "jalx-1" +} + +if { $linux_gnu && !$is_r6 } { run_ld_link_tests [list \ [list "Dummy shared library for JALX test 2" \ "-shared -nostdlib -melf32btsmip" "" \ @@ -382,69 +395,75 @@ if { $linux_gnu } { "jalx-2"]] } -run_dump_test_o32 "jalx-addend" -run_dump_test_o32 "jalx-local" -run_dump_test_o32 "bal-jalx-addend" -run_dump_test_o32 "bal-jalx-addend-micromips" -run_dump_test_o32 "bal-jalx-local" -run_dump_test_o32 "bal-jalx-local-micromips" -run_dump_test_o32 "bal-jalx-pic" -run_dump_test_o32 "bal-jalx-pic-micromips" -run_dump_test_o32 "bal-jalx-pic-ignore" -run_dump_test_o32 "bal-jalx-pic-ignore-micromips" -run_dump_test_n32 "jalx-addend-n32" -run_dump_test_n32 "jalx-local-n32" -run_dump_test_n32 "bal-jalx-addend-n32" -run_dump_test_n32 "bal-jalx-addend-micromips-n32" -run_dump_test_n32 "bal-jalx-local-n32" -run_dump_test_n32 "bal-jalx-local-micromips-n32" -run_dump_test_n32 "bal-jalx-pic-n32" -run_dump_test_n32 "bal-jalx-pic-micromips-n32" -run_dump_test_n32 "bal-jalx-pic-ignore-n32" -run_dump_test_n32 "bal-jalx-pic-ignore-micromips-n32" -run_dump_test_n64 "jalx-addend-n64" -run_dump_test_n64 "jalx-local-n64" -run_dump_test_n64 "bal-jalx-addend-n64" -run_dump_test_n64 "bal-jalx-addend-micromips-n64" -run_dump_test_n64 "bal-jalx-local-n64" -run_dump_test_n64 "bal-jalx-local-micromips-n64" -run_dump_test_n64 "bal-jalx-pic-n64" -run_dump_test_n64 "bal-jalx-pic-micromips-n64" -run_dump_test_n64 "bal-jalx-pic-ignore-n64" -run_dump_test_n64 "bal-jalx-pic-ignore-micromips-n64" - -run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-3" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]] - -run_dump_test_n32 "unaligned-jalx-addend-0" -run_dump_test_n32 "unaligned-jalx-addend-1" -run_dump_test_n32 "unaligned-jalx-addend-2" -run_dump_test_n32 "unaligned-jalx-addend-3" -run_dump_test_n32 "unaligned-jalx-addend-mips16-0" -run_dump_test_n32 "unaligned-jalx-addend-mips16-1" -run_dump_test_n32 "unaligned-jalx-addend-micromips-0" -run_dump_test_n32 "unaligned-jalx-addend-micromips-1" +if { !$is_r6 } { + run_dump_test_o32 "jalx-addend" + run_dump_test_o32 "jalx-local" + run_dump_test_o32 "bal-jalx-addend" + run_dump_test_o32 "bal-jalx-addend-micromips" + run_dump_test_o32 "bal-jalx-local" + run_dump_test_o32 "bal-jalx-local-micromips" + run_dump_test_o32 "bal-jalx-pic" + run_dump_test_o32 "bal-jalx-pic-micromips" + run_dump_test_o32 "bal-jalx-pic-ignore" + run_dump_test_o32 "bal-jalx-pic-ignore-micromips" + run_dump_test_n32 "jalx-addend-n32" + run_dump_test_n32 "jalx-local-n32" + run_dump_test_n32 "bal-jalx-addend-n32" + run_dump_test_n32 "bal-jalx-addend-micromips-n32" + run_dump_test_n32 "bal-jalx-local-n32" + run_dump_test_n32 "bal-jalx-local-micromips-n32" + run_dump_test_n32 "bal-jalx-pic-n32" + run_dump_test_n32 "bal-jalx-pic-micromips-n32" + run_dump_test_n32 "bal-jalx-pic-ignore-n32" + run_dump_test_n32 "bal-jalx-pic-ignore-micromips-n32" + run_dump_test_n64 "jalx-addend-n64" + run_dump_test_n64 "jalx-local-n64" + run_dump_test_n64 "bal-jalx-addend-n64" + run_dump_test_n64 "bal-jalx-addend-micromips-n64" + run_dump_test_n64 "bal-jalx-local-n64" + run_dump_test_n64 "bal-jalx-local-micromips-n64" + run_dump_test_n64 "bal-jalx-pic-n64" + run_dump_test_n64 "bal-jalx-pic-micromips-n64" + run_dump_test_n64 "bal-jalx-pic-ignore-n64" + run_dump_test_n64 "bal-jalx-pic-ignore-micromips-n64" + + run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-3" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]] + run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]] + + run_dump_test_n32 "unaligned-jalx-addend-0" + run_dump_test_n32 "unaligned-jalx-addend-1" + run_dump_test_n32 "unaligned-jalx-addend-2" + run_dump_test_n32 "unaligned-jalx-addend-3" + run_dump_test_n32 "unaligned-jalx-addend-mips16-0" + run_dump_test_n32 "unaligned-jalx-addend-mips16-1" + run_dump_test_n32 "unaligned-jalx-addend-micromips-0" + run_dump_test_n32 "unaligned-jalx-addend-micromips-1" +} run_dump_test_o32 "unaligned-branch" noarch -run_dump_test_n32 "unaligned-branch-2" -run_dump_test_n32 "unaligned-branch-ignore-2" -run_dump_test_n32 "unaligned-branch-r6-1" -run_dump_test_n32 "unaligned-branch-ignore-r6-1" +if { !$is_r6 } { + run_dump_test_n32 "unaligned-branch-2" + run_dump_test_n32 "unaligned-branch-ignore-2" + run_dump_test_n32 "unaligned-branch-r6-1" + run_dump_test_n32 "unaligned-branch-ignore-r6-1" +} run_dump_test_n32 "unaligned-branch-r6-2" noarch -run_dump_test_n32 "unaligned-branch-mips16" -run_dump_test_n32 "unaligned-branch-ignore-mips16" -run_dump_test_n32 "unaligned-branch-micromips" -run_dump_test_n32 "unaligned-branch-ignore-micromips" -run_dump_test_n32 "unaligned-jump" -run_dump_test_n32 "unaligned-jump-mips16" -run_dump_test_n32 "unaligned-jump-micromips" +if { !$is_r6 } { + run_dump_test_n32 "unaligned-branch-mips16" + run_dump_test_n32 "unaligned-branch-ignore-mips16" + run_dump_test_n32 "unaligned-branch-micromips" + run_dump_test_n32 "unaligned-branch-ignore-micromips" + run_dump_test_n32 "unaligned-jump" + run_dump_test_n32 "unaligned-jump-mips16" + run_dump_test_n32 "unaligned-jump-micromips" +} run_dump_test_o32 "unaligned-lwpc-0" noarch run_dump_test_o32 "unaligned-lwpc-1" noarch @@ -478,8 +497,10 @@ if { $embedded_elf } { run_dump_test_n32 "elf-rel-got-n32-embed" {{as -EB} {ld -EB}} run_dump_test_n32 "elf-rel-xgot-n32-embed" {{as -EB} {ld -EB}} } else { - run_dump_test_n32 "elf-rel-got-n32" {{as -EB} {ld -EB}} - run_dump_test_n32 "elf-rel-xgot-n32" {{as -EB} {ld -EB}} + if { !$is_r6 } { + run_dump_test_n32 "elf-rel-got-n32" {{as -EB} {ld -EB}} + run_dump_test_n32 "elf-rel-xgot-n32" {{as -EB} {ld -EB}} + } } if { $irix } { run_dump_test_n64 "elf-rel-got-n64-irix" @@ -488,8 +509,10 @@ if { $irix } { run_dump_test_n64 "elf-rel-got-n64-embed" {{as -EB} {ld -EB}} run_dump_test_n64 "elf-rel-xgot-n64-embed" {{as -EB} {ld -EB}} } else { - run_dump_test_n64 "elf-rel-got-n64" {{as -EB} {ld -EB}} - run_dump_test_n64 "elf-rel-xgot-n64" {{as -EB} {ld -EB}} + if { !$is_r6 } { + run_dump_test_n64 "elf-rel-got-n64" {{as -EB} {ld -EB}} + run_dump_test_n64 "elf-rel-xgot-n64" {{as -EB} {ld -EB}} + } } run_dump_test_n32 "relax-jalr-n32" {{as -EB} {ld -EB}} @@ -714,7 +737,9 @@ run_dump_test_o32 "reloc-2" [list [list objdump [expr { [istarget *el-*-*] \ ? "--endian=little" \ : "--endian=big" }]]] run_dump_test "reloc-merge-lo16" -run_dump_test "reloc-3" +if { !$is_r6 } { + run_dump_test "reloc-3" +} run_dump_test_n32 "reloc-3-n32" noarch run_dump_test "reloc-4" run_dump_test "reloc-5" @@ -804,10 +829,12 @@ run_dump_test_n64 "undefweak-overflow" [list [list name (n64)]] run_dump_test_n32 "jalbal" noarch -run_dump_test "mode-change-error-1" +if { !$is_r6 } { + run_dump_test "mode-change-error-1" run_dump_test_o32 "mips16-hilo" run_dump_test_n32 "mips16-hilo-n32" +} if { $linux_gnu } { run_dump_test_n32 "textrel-1" @@ -869,7 +896,7 @@ run_dump_test_n32 "emit-relocs-1" {{as -EB} {ld -EB}} run_dump_test "hash1" run_dump_test "hash2" -if { $linux_gnu && $has_abi(o32) } { +if { $linux_gnu && $has_abi(o32) && !$is_r6 } { # The number of symbols that are always included in the symbol table # for these tests. # the null symbol entry @@ -1120,10 +1147,12 @@ run_dump_test_o32 "abiflags-strip8-ph" run_dump_test_o32 "abiflags-strip9-ph" run_dump_test_o32 "abiflags-strip10-ph" -run_dump_test "nan-legacy" +if { !$is_r6 } { + run_dump_test "nan-legacy" + run_dump_test "nan-mixed-1" + run_dump_test "nan-mixed-2" +} run_dump_test "nan-2008" -run_dump_test "nan-mixed-1" -run_dump_test "nan-mixed-2" if { $linux_gnu && $has_abi(o32) } { run_ld_link_tests { @@ -1147,7 +1176,9 @@ if { $linux_gnu } { } # MIPS16 and microMIPS interlinking test. -run_dump_test "mips16-and-micromips" +if { !$is_r6 } { + run_dump_test "mips16-and-micromips" +} set abis {} if $has_abi(o32) { @@ -1175,7 +1206,7 @@ if [check_shared_lib_support] { "$abi_ldflags($abi) -shared -Ttext $loadaddr\ -T export-class-call16.ld" \ "" \ - "$abi_asflags($abi) -mips3 -KPIC" \ + "$abi_asflags($abi) $abi_as64flags -KPIC" \ [list export-class-call16-${abi}.s export-class-call16-def.s] \ [list \ "objdump -d export-class-call16-${suff}.dd" \ @@ -1309,7 +1340,7 @@ if { $linux_gnu && $has_abi(o32) } { o32 109 1 umips-word compressed-plt-1e.s } -if { $linux_gnu && $has_abi(n32) } { +if { $linux_gnu && $has_abi(n32) && !$is_r6 } { build_mips_plt_lib n32 run_mips_plt_test "n32 PLTs for mixed MIPS and MIPS16" \ n32 109 0 mips16 @@ -1390,7 +1421,7 @@ if { $linux_gnu && $has_abi(o32) } { } # PR ld/21334 GOT relocation in static binary test. -if { $has_abi(o32) } { +if { $has_abi(o32) && !$is_r6 } { run_ld_link_tests [list \ [list \ "PR ld/21334 MIPS GOT16 relocation in static binary" \ @@ -1406,7 +1437,7 @@ run_dump_test_o32 "lsi-4010-isa" noarch # PIC branch relaxation with offset tests. We need to use our version # of `prune_warnings' to get rid of GAS branch relaxation noise. -if { $has_abi(o32) } { +if { $has_abi(o32) && !$is_r6 } { rename prune_warnings mips_old_prune_warnings proc prune_warnings { msg } { set msg1 "Assembler messages:" @@ -1593,7 +1624,7 @@ proc run_mips_undefweak_test { name abi args } { } } -if $has_abi(o32) { +if { $has_abi(o32) && !$is_r6 } { run_mips_undefweak_test "SVR4 executable" \ o32 run_mips_undefweak_test "SVR4 executable (hidden)" \ @@ -1633,7 +1664,7 @@ if $has_abi(o32) { run_mips_undefweak_test "shared library (microMIPS, large GOT, hidden)" \ o32 dso umips xgot hidden } -if $has_abi(n32) { +if { $has_abi(n32) && !$is_r6 } { run_mips_undefweak_test "shared library (n32)" \ n32 dso run_mips_undefweak_test "shared library (n32, hidden)" \ @@ -1643,7 +1674,7 @@ if $has_abi(n32) { run_mips_undefweak_test "shared library (n32, microMIPS, hidden)" \ n32 dso umips hidden } -if $has_abi(n64) { +if { $has_abi(n64) && !$is_r6 } { run_mips_undefweak_test "shared library (n64)" \ n64 dso run_mips_undefweak_test "shared library (n64, hidden)" \ @@ -1661,13 +1692,15 @@ run_dump_test "pic-reloc-2" run_dump_test "pic-reloc-3" run_dump_test "pic-reloc-4" run_dump_test_o32 "pic-reloc-5" -run_dump_test_o32 "pic-reloc-5" [list [list name (microMIPS)] \ +if { !$is_r6 } { + run_dump_test_o32 "pic-reloc-5" [list [list name (microMIPS)] \ [list as "-mmicromips"]] -run_dump_test_o32 "pic-reloc-6" -run_dump_test_n64 "pic-reloc-7" -run_dump_test_n64 "pic-reloc-7" [list [list name (microMIPS)] \ + run_dump_test_o32 "pic-reloc-6" + run_dump_test_n64 "pic-reloc-7" [list [list name (microMIPS)] \ [list as "-mmicromips"]] +} +run_dump_test_n64 "pic-reloc-7" run_dump_test_o32 "reloc-pcrel-r6" # Global/local symbol table split tests. diff --git a/ld/testsuite/ld-mips-elf/n64-plt-1.dd b/ld/testsuite/ld-mips-elf/n64-plt-1.dd index 4c24a9a16c..51d654a343 100644 --- a/ld/testsuite/ld-mips-elf/n64-plt-1.dd +++ b/ld/testsuite/ld-mips-elf/n64-plt-1.dd @@ -15,7 +15,7 @@ Disassembly of section \.plt: 00000000100002a0 : 100002a0: 3c0f7fff lui t3,0x7fff 100002a4: ddf97ff8 ld t9,32760\(t3\) - 100002a8: 03200008 jr t9 + 100002a8: 0320000[89] jr t9 100002ac: 25f87ff8 addiu t8,t3,32760 Disassembly of section \.text: diff --git a/ld/testsuite/ld-mips-elf/n64-plt-4.dd b/ld/testsuite/ld-mips-elf/n64-plt-4.dd index 01c5025615..71fee33c4e 100644 --- a/ld/testsuite/ld-mips-elf/n64-plt-4.dd +++ b/ld/testsuite/ld-mips-elf/n64-plt-4.dd @@ -15,7 +15,7 @@ ffffffff1000029c: 2718fffe addiu t8,t8,-2 ffffffff100002a0 : ffffffff100002a0: 3c0f8000 lui t3,0x8000 ffffffff100002a4: ddf98010 ld t9,-32752\(t3\) -ffffffff100002a8: 03200008 jr t9 +ffffffff100002a8: 0320000[89] jr t9 ffffffff100002ac: 25f88010 addiu t8,t3,-32752 Disassembly of section \.text: diff --git a/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d b/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d index 3baf22851a..e3cc14ec79 100644 --- a/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d +++ b/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d @@ -17,6 +17,6 @@ Disassembly of section \.text: 4101c: 27391020 addiu t9,t9,4128 00041020 : - 41020: 03e00008 jr ra + 41020: 03e0000[89] jr ra 41024: 00000000 nop \.\.\. -- 2.20.1