From patchwork Fri Jan 31 17:13:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aleksandar Rakic X-Patchwork-Id: 105759 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CD4FD3857739 for ; Fri, 31 Jan 2025 17:33:18 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170130004.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::4]) by sourceware.org (Postfix) with ESMTPS id 906623857B9F for ; Fri, 31 Jan 2025 17:13:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 906623857B9F Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=htecgroup.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=htecgroup.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 906623857B9F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c200::4 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1738343633; cv=pass; b=e0Fv3UTmmv5KamlR6h6q9P6ATXqGHqAZkW8C0sMMMBxsCCCGonW5AWiNlq2Wodut9S6GxU/UNbrp24rTiGtqej7huYA/idlJMs4H5c4Orl8uasg3GymLoGtBdhN6UdVq3OFnXsb4ZxFAq6xUxwF6HO/Om8nNTvdE1ceArayowS4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1738343633; c=relaxed/simple; bh=Zw8m3iQ5zLxVRFLlp7xNMGsfr8091qRkDH3cjPaCx7U=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=SE/T+XFGIOjs3qIR9Ift0A7pZlgKyOQ+yqjHw36/2jikiSLPqfxznnGN77XFtAuerPPGoB70WaxDD38a46sSP+6pIVGHW7yayGqGv5icEgdnr5eoTq1gS4dHxbgCY7o/96Y9FkwZBlcuiDDzIUHbFcQUXXoysdYm/9Sru3WTkBw= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 906623857B9F Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=OWA31/2c ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dY0aYcocqVFOWau0HOeZwmhhJPgRZTrJB+YXnECGf6bpkNo9LLvMGHtXk49icUkt/Y3/+MY+K44wmLnzAoPbxkkQ9+Cprxt3Fct0akTfaQgeaCc9buDfYVPEQGzOF4QVIeQRd0vIWrVurXGXHXtEEM3c9tmSh7sdzTzPpbkH/JlzWT/uLsRgf+tJ4HPN1poBHCIbqAWjQ6WEdKRMnHZ61jzAEd8ZR2sUzqKzc4K16hHlMEpDxIVUQ127cbtTDSF1zdqdzgmjxXUp2d99LArTdoQNbx6ItFdDV4pEpbQkwTEPz0qcLY+po6IRROSmJURycaPsZkrycyoKqT85uBWPhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=g+/Ns5E9ORy8l8NOD+Vgbjj84pgO3CGYBrjpLR2YuJQ=; b=AOoRJajmlcJZ62SBXXAc9LJrEve+tfzeLNdW7jpl7ErUcfSnVEDmJlva3RCe+8xpRpCGPhtiAb5V83nuP0UHlr093wXfDyDX0yHaB3qRENOEYKJPsIUFGcyRTzD7txx47EKEGx3sxb3iUgwmRNjjM5FzjNxRM21qisXV2eOVZgJGwD7PbxbRjkk6XJoNakWIhggHEGEQnUfv88h19iemCpWWUkovXoJZgqS7twx1Anro/B02erhA3+g88ua/+U2bMKwBvilCKHmm4i4en6wLVZx2/JBC0pZ0leB7i8XNi7+zPNryBvAHWc8egMyhzWegu0yV619fVozZ+8d6HMj6uQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g+/Ns5E9ORy8l8NOD+Vgbjj84pgO3CGYBrjpLR2YuJQ=; b=OWA31/2c84y9KUs64k+YXQRMe2BXjSx+WyNTcNZaMfX1IWFOzj1whqsP+BySSnJ9ifACtE93hH4ifdE/0ih6Nt0NTZP/ewQV4C8EO+X/fGYLAwrMef9ZvyEPCbbZZfNF8+OBTl+VfCK9qXhhzZKt+csRjiwo2WHXCZOFFcJRTyfc1PLbi4PrYSwHCNhow6GVsVymPo0iDpe6RZWdWKMfb7ZjReafpYHTZfiv8TSG4azVNxHIDx10ZSqJ0Lsl5XMjT7xKRbZPU869SgMZsgdkQRDLvTwvLyYmDhUzUPm57MYswUKR4X9JxHgZhYMpRfbt7pmV5l6nVkdFKmeDt63mMw== Received: from PA4PR09MB4864.eurprd09.prod.outlook.com (2603:10a6:102:ed::17) by PR3PR09MB5442.eurprd09.prod.outlook.com (2603:10a6:102:17d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.22; Fri, 31 Jan 2025 17:13:24 +0000 Received: from PA4PR09MB4864.eurprd09.prod.outlook.com ([fe80::a02b:9d5c:eca5:e024]) by PA4PR09MB4864.eurprd09.prod.outlook.com ([fe80::a02b:9d5c:eca5:e024%6]) with mapi id 15.20.8398.020; Fri, 31 Jan 2025 17:13:24 +0000 From: Aleksandar Rakic To: "gcc-patches@gcc.gnu.org" CC: Djordje Todorovic , "cfu@mips.com" , Andrew Bennett , Faraz Shahbazker , Aleksandar Rakic Subject: [PATCH 11/61] Fix unsafe comparison against stack_pointer_rtx Thread-Topic: [PATCH 11/61] Fix unsafe comparison against stack_pointer_rtx Thread-Index: AQHbdANvf9F07Tmux0KtfXxnoz751Q== Date: Fri, 31 Jan 2025 17:13:24 +0000 Message-ID: <20250131171232.1018281-13-aleksandar.rakic@htecgroup.com> References: <20250131171232.1018281-1-aleksandar.rakic@htecgroup.com> In-Reply-To: <20250131171232.1018281-1-aleksandar.rakic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PA4PR09MB4864:EE_|PR3PR09MB5442:EE_ x-ms-office365-filtering-correlation-id: 0d97ae16-0c6b-4417-17bf-08dd421a9219 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?VBZYhStyg0TaQ/ZwA6qYnuIl4W?= =?iso-8859-1?q?EJ1qEQ4jXssTh//yXMOmwPNCwrbBH6meC2ovajPIBc4+zKRDnpEeqWL27pTk?= =?iso-8859-1?q?ryCljr5zEUeJRu5bVqg5azmRYWmCAcNuO7+bF5nkaoGUbrSQTuiwBp00lK8y?= =?iso-8859-1?q?KW36r59+sS++UlBeuqG1LxsYYyJDqhUg84fsKsfYXuB9jlos1UPuV7xR40iz?= =?iso-8859-1?q?ITth/SAcHa7R74dcrrxYUyks0OupD391o4xd2KHn1Z9Zo10qSHEsghiYiVwY?= =?iso-8859-1?q?CIrkTL3G0SGeDSNGsP5e/Hx1F/ci/zoLSNFm/jWib83PWxTxeqV681hqCqJ/?= =?iso-8859-1?q?1XlsHRLp9x1crDBD7u6e5gqhJm7wl2y/R4y2lOPeLpTIa+OFLN3zymNZWNHs?= =?iso-8859-1?q?rQ5pUQVzWs8/mTiTLsXmoSw4CWFlDTu88FWF9udRS+Rh2VhCoLJILwym8Wcc?= =?iso-8859-1?q?q4Exq48WAiB1CyY/Qgs4oGM9Y/Dq8Xdxz71BRdXCmFaCWNYq5IsjA7vBMxFM?= =?iso-8859-1?q?HiNsvrgzxmuxXCfGb4mhzChD7MlGVdrOWNyol2LKHCvpCfV1W6PQSUpfFooi?= =?iso-8859-1?q?wNTr67aI6ZX26eRJCRNONvo+hFAjQfxAfsu1FVMKhCURyk2LE5s6xSRn6Kxg?= =?iso-8859-1?q?0FEbtjx4XFMqyxRNcW+ZSkTZlhTvLHaQCCi2Xk+9X08M90nSoyIWRT35iXTQ?= =?iso-8859-1?q?ji7/QoJ+DyqIWguaBu85JSeg7824FRROEv10C9AcYbS1yJb/+mbsv+5zxfKN?= =?iso-8859-1?q?b1lBl1tqnEVsOnNl0nmTtx3swYhuVpyiPOTcPF3I5wjrLR/JovPQry2b9KPZ?= =?iso-8859-1?q?4g4OLrlcfj+ZUbivVQR89gDBIqBTA7+PbW1dyscvfvUxQO7VOciha3HKOvem?= =?iso-8859-1?q?hXatmiO4ID3we2VgqjPzkUxB7s54VPMEk0OPsuLavA9plaA63SmoZc20Spg9?= =?iso-8859-1?q?OPYiS7+KeugoVDAkrxca8sHsOouTAgl8PsQxumm99yO0mgQ1bccOYBuQH4K5?= =?iso-8859-1?q?YRZ69XSQN2LF2G9j1TXdzShNF3uh4Z5tAeK1e3qXytl+SYGvQK2tdgYBt9xM?= =?iso-8859-1?q?qWc3bevW2VnEVlOqpNSfkp3pr8em0lO3fFDSohiJJgHOrUPOkEOxNNuBlaXT?= =?iso-8859-1?q?z+9t2YNRP60Q+H/IPlxTY6ko0Sm9eUqqEfBcH3hiw1ICMvSCrOPQawOe1Nar?= =?iso-8859-1?q?re6mpk3lpz9zr1JC70+Bwx70q08xpPIyLhqm7DyZzYufti6h7kWXTdp25GMQ?= =?iso-8859-1?q?+GPk0svMToVNL+NA5j97rO3ycgFhoVFhYgYq8j1Xie9BLmBL61widNqQyoHd?= =?iso-8859-1?q?0J4H3KWrfeB+7qge8AaUwYzXQvFgUtK/z2tjk4wpiLCI5cQxlbXVbhb9KWJa?= =?iso-8859-1?q?Vu+FWBaosaQok1Urde5GUej5LWgIk2hZQ+O1MBk+3HOfgCRrBiJvOBzvdgZ5?= =?iso-8859-1?q?xN5/Z38Z8R2k8kjS1ly6FZkWj9hSZZdsGGeqmN0PZ7rxGtc58Q1gSYtR4ozP?= =?iso-8859-1?q?1MQ+df?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR09MB4864.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?pQTXBainXm1nc+6EGTULxxr?= =?iso-8859-1?q?qymB70uTzi5Fm9+zQ/yxBQbcPx5UH+A6LGD4eQGAu3xLdh0BzswFzC8E+GyZ?= =?iso-8859-1?q?45/yjxu3xOCajCuaqVam0iWlAOiR8XJHdutovqBfyekDsbTb4pgEJ++9G7j5?= =?iso-8859-1?q?uTb9WCUhX13PziP0XtO8nP0/22eHaouo4vVrEkyjW7FjJlfZfSXaafrUy0oQ?= =?iso-8859-1?q?oZwTJIkaHHI1fbJwYj/6KcP7PNkNkjjN9Ohkyj+smnxPk6LOH6w3tiW4XALw?= =?iso-8859-1?q?BrpJNmo7X0+R1ytwU1lrVCh9KkLIfHvqcgOx9aob9gxAVEhBVXZ9Uhp4h3bO?= =?iso-8859-1?q?kOjaKx4DLX0ETMRzYFhOz2ukXbEFQWjjPhdnLrg68oyBSCadTVjAsku+zZpM?= =?iso-8859-1?q?wlaRmS4YczSfeS7qbNZbnuDJqrhgmQOmHwwO63jqJe05GwEBhaU6/ec/t0Vg?= =?iso-8859-1?q?slaaoJpmXt9Q8cXscbjsrmlW81ZdXBvpT0OG9ShEf+jCZ0uEdWlLQw8xpbCl?= =?iso-8859-1?q?uOzGTNnDTnuaJkNXgIT6qYfNwH4vokrVWekmigzAOSs3GGfvODGuAtbyu8eX?= =?iso-8859-1?q?0/ziDHQx9YcfauTBsDY4u/3Of1+tJy925gZLCdNl7/kbtgXAAdfynHmg6Flg?= =?iso-8859-1?q?hq3AjmNFYXFLxhWyiI5sH9hEcCs7MvBgxvDzff/kKHE6i9yMaFK+Nf6RwBxX?= =?iso-8859-1?q?bzb+rojrlG7daF6W9/BQHIO/I76SGzig6p5MwwrpFX4muaOu7QBi86R3ppaE?= =?iso-8859-1?q?GmyVD7dnG3TtvWfD9FkCcfq2mahSElLetS8Y32qOQXCW1mPdckNxNg7mGsYo?= =?iso-8859-1?q?vrdx0v9gZ8GmAMsG39N3Kfa5wnAdfKlKLsy3jmyWCrieye9siYckQtj+Lkqm?= =?iso-8859-1?q?uw9Ggsl2ybfq2/l8AagkS0n3FUI7FjRYZtHcuNxMzlugegKbsh7Lzf0VCg9v?= =?iso-8859-1?q?u9jwkSLzCMoKLE2bLf+mdITvls460Bb0It4+LIz7UpgIQNuAMJbJXlivUaLc?= =?iso-8859-1?q?lCcoFNixIvdB2i58yiPqoWF9X3FvtKugI9gfBMFTL668Rd0IogO+SiY/5JTN?= =?iso-8859-1?q?Ab/yEvdQfzFaH7SmNRxFzFPHQacF/y25Oae/YOJ1H1WPkJhesWiY6+KR9wMk?= =?iso-8859-1?q?+63f1W/C/6PxYEJLbphbLLxAoLYjExfTprJtsZBimmD6Sn0eF5xBArpGratP?= =?iso-8859-1?q?jTNnGPymL4ucrkWiOgM+gt2N8pfzAT4K9RNJNTcJ59SKBC0bYzx714zxF1qm?= =?iso-8859-1?q?JTJZJNJMzSawOfK6xie1pwOL5Yhiqp1j3YDdDRA9e9T2M9jevALJae34yuoC?= =?iso-8859-1?q?aYi96hh2yN/7mOsDuRF+G9Un+QmigHXqvaW1NthptIqyOIzPRRmTUwemTTyi?= =?iso-8859-1?q?cYGprzT70k2hJScF6wyKMLuVUqfkDtOuTgEAZnOlEBb+BHuxmvWHlXnWraXs?= =?iso-8859-1?q?u0XF3L0tDqETWu9/tQm1QKM85jeNFjEuMojhexNV8SEUkcRvKE86VMc32RuQ?= =?iso-8859-1?q?VjlM2A4dpzzFbNUKz33qqDmJleSHGXYLc5KDZtMT/1035AWaMJoGQYI6CVHC?= =?iso-8859-1?q?llI3WddKK+Hlw2ZIL/HEmE3iPdnd9rIhUOrpaB/EwcSmtiG28sJC3whm4fYd?= =?iso-8859-1?q?iM2Ju3boyyrjWw2oN30Jl1Z/lM7qIrktNbhUHuRGYuIx2lC6tZCAFYlwZt24?= =?iso-8859-1?q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PA4PR09MB4864.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d97ae16-0c6b-4417-17bf-08dd421a9219 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2025 17:13:24.3675 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: a1GC/+WWb3SKr22vdKMzxM4ZxjTHNpQAoB++VaYUvkXQo5DsoqQ2Ft8N37tG0EpRZORXWxielH2CkY51IL42uWW9N1rrPALQCiHT8sfXBFI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR09MB5442 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org From: Andrew Bennett GCC can modify a rtx which was created using stack_pointer_rtx. This means that just doing a straight address comparision of a rtx against stack_pointer_rtx to see whether it is the stack pointer register will not be correct in all cases. This patch rewrites these comparisons to check that firstly the rtx is a register and its register number is STACK_POINTER_REGNUM. Cherry-picked 1a066c0af8e7ccf36e8c3f01529c90603a981c18 from https://github.com/MIPS/gcc Signed-off-by: Andrew Bennett Signed-off-by: Faraz Shahbazker Signed-off-by: Aleksandar Rakic --- gcc/config/mips/mips.cc | 16 +++++++++------- gcc/config/mips/mips.md | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index 9db2a2a9396..69c5cdbe20d 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -2804,7 +2804,7 @@ mips_stack_address_p (rtx x, machine_mode mode) return (mips_classify_address (&addr, x, mode, false) && addr.type == ADDRESS_REG - && addr.reg == stack_pointer_rtx); + && REGNO (addr.reg) == STACK_POINTER_REGNUM); } /* Return true if ADDR matches the pattern for the LWXS load scaled indexed @@ -2870,7 +2870,8 @@ mips16_unextended_reference_p (machine_mode mode, rtx base, if (mode != BLKmode && offset % GET_MODE_SIZE (mode) == 0 && REGNO (base) != GLOBAL_POINTER_REGNUM) { - if (GET_MODE_SIZE (mode) == 4 && base == stack_pointer_rtx) + if (GET_MODE_SIZE (mode) == 4 && GET_CODE (base) == REG + && REGNO (base) == STACK_POINTER_REGNUM) return offset < 256U * GET_MODE_SIZE (mode); return offset < 32U * GET_MODE_SIZE (mode); } @@ -9879,7 +9880,7 @@ mips_debugger_offset (rtx addr, HOST_WIDE_INT offset) if (offset == 0) offset = INTVAL (offset2); - if (reg == stack_pointer_rtx + if ((GET_CODE (reg) == REG && REGNO (reg) == STACK_POINTER_REGNUM) || reg == frame_pointer_rtx || reg == hard_frame_pointer_rtx) { @@ -10622,7 +10623,7 @@ mips16e_collect_argument_save_p (rtx dest, rtx src, rtx *reg_values, required_offset = cfun->machine->frame.total_size + argno * UNITS_PER_WORD; if (base == hard_frame_pointer_rtx) required_offset -= cfun->machine->frame.hard_frame_pointer_offset; - else if (base != stack_pointer_rtx) + else if (!(GET_CODE (base) == REG && REGNO (base) == STACK_POINTER_REGNUM)) return false; if (offset != required_offset) return false; @@ -10833,7 +10834,7 @@ mips16e_save_restore_pattern_p (rtx pattern, HOST_WIDE_INT adjust, /* Check that the address is the sum of the stack pointer and a possibly-zero constant offset. */ mips_split_plus (XEXP (mem, 0), &base, &offset); - if (base != stack_pointer_rtx) + if (!(GET_CODE (base) == REG && REGNO (base) == STACK_POINTER_REGNUM)) return false; /* Check that SET's other operand is a register. */ @@ -13001,7 +13002,8 @@ mips_restore_reg (rtx reg, rtx mem) static void mips_deallocate_stack (rtx base, rtx offset, HOST_WIDE_INT new_frame_size) { - if (base == stack_pointer_rtx && offset == const0_rtx) + if (GET_CODE (base) == REG && REGNO (base) == STACK_POINTER_REGNUM + && offset == const0_rtx) return; mips_frame_barrier (); @@ -18222,7 +18224,7 @@ r10k_simplify_address (rtx x, rtx_insn *insn) { /* Replace the incoming value of $sp with virtual_incoming_args_rtx. */ - if (x == stack_pointer_rtx + if (GET_CODE (x) == REG && REGNO (x) == STACK_POINTER_REGNUM && DF_REF_BB (def) == ENTRY_BLOCK_PTR_FOR_FN (cfun)) newx = virtual_incoming_args_rtx; } diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index f147667d63a..4b486a7ad29 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -7714,7 +7714,7 @@ [(set (match_operand:SI 1 "register_operand") (plus:SI (match_dup 1) (match_operand:SI 2 "const_int_operand")))])] - "operands[1] == stack_pointer_rtx + "GET_CODE (operands[1]) == REG && REGNO (operands[1]) == STACK_POINTER_REGNUM && mips16e_save_restore_pattern_p (operands[0], INTVAL (operands[2]), NULL)" { return mips16e_output_save_restore (operands[0], INTVAL (operands[2])); } [(set_attr "type" "arith")