From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 72595 invoked by alias); 12 Jun 2017 13:54:27 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 72520 invoked by uid 89); 12 Jun 2017 13:54:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-22.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Mechanical, lr, ***** X-HELO: EUR02-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr20084.outbound.protection.outlook.com (HELO EUR02-VE1-obe.outbound.protection.outlook.com) (40.107.2.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 12 Jun 2017 13:54:15 +0000 Received: from VI1PR08CA0063.eurprd08.prod.outlook.com (2a01:111:e400:c53b::31) by DB6PR0801MB2006.eurprd08.prod.outlook.com (2603:10a6:4:76::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Mon, 12 Jun 2017 13:54:15 +0000 Received: from AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::206) by VI1PR08CA0063.outlook.office365.com (2a01:111:e400:c53b::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12 via Frontend Transport; Mon, 12 Jun 2017 13:54:15 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by AM5EUR03FT051.mail.protection.outlook.com (10.152.16.246) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1143.11 via Frontend Transport; Mon, 12 Jun 2017 13:54:15 +0000 Received: from e107456-lin.cambridge.arm.com (10.1.2.79) by mail.arm.com (10.1.105.66) with Microsoft SMTP Server id 14.3.294.0; Mon, 12 Jun 2017 14:54:02 +0100 From: James Greenhalgh To: CC: , , Subject: [Mechanical Patch ARM/AArch64 1/2] Rename load/store scheduling types to encode data size Date: Mon, 12 Jun 2017 13:54:00 -0000 Message-ID: <1497275640-6630-1-git-send-email-james.greenhalgh@arm.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.6.4.2.gae996d8" X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(39410400002)(39400400002)(39850400002)(39450400003)(39860400002)(39840400002)(2980300002)(438002)(189002)(377424004)(199003)(72206003)(104016004)(54906002)(305945005)(6666003)(6916009)(8676002)(50226002)(8936002)(86362001)(50986999)(189998001)(512874002)(84326002)(5890100001)(356003)(5660300001)(4326008)(478600001)(2906002)(4610100001)(77096006)(2351001)(2476003)(33646002)(36756003)(110136004)(38730400002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0801MB2006;H:nebula.arm.com;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM5EUR03FT051;1:2eaJQdLSsENKr0ixCF2TzCX0x+QMsZ+H74cXzvXNG7XjUvegHUwRqxd99oodfazKl9Xb83K09pmLjzYzBhMMCD0sgUY4YtNbv0hxRGxXVAJukxuf0yFus2P53S3x397Ak+Mn/c4FkskjQpElM53Cil5mEQpyKf2iICgIUGxTe1TikHy+P0HgYdWd6nsDQ8yZWtahyQJ4eaSv0d0K2g+mJTxfDNjWYlN7pT3uKFmj7cMlXqRJ0W8QLPX8t+GgJlAikc6ycC0Hql07cZenWN7JXwCqn8CVDjOi/cmq33UG1JLe7tuv/ZOIaAKL+uEgM8GwFBxyBUliFyMLC8OLyWIIDB4ccpxpbjAGnj+D+/Ala/3vjQq/3Mh6M/rp6Fc//5KH3DEUQl34bGRKBIPVwC6UUqZssO7cehJEwetU/6Xpnk2xPL9xRaJRfuBGPcSRGIQ6WAKHQXm1+vO748LZmwp5PM2TG6GchiPgcvkaERffewXJvyW5asKfdIsCCwqv79Jx9Dq5xMWWJWX7qqD0r9XMm5b0hRuopnpNJqNZPOIcuTi08IRc5Qxzc+LYE9pv7moO X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR0801MB2006: X-MS-Office365-Filtering-Correlation-Id: bd76f4ee-7629-4fd7-7103-08d4b19a8366 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081);SRVR:DB6PR0801MB2006; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;3:RBRq1dRscXx/iyL4TtTZQ/6W8mHpmt+11fmgtbyEArHjP5WH3moYiAHV+ZuT8n/2mczHUNnTM2Zap2CqE+LRA2X0rVIiYUmCF62RL3RVe66Y6rz/jdR3Zdva46nw+etxcYSEpwkvGX01zUAJWzw5nsd91h6d9klvezXVXMg+HRv5I+moRZ5d0+lKwG0M03LTl0brhH2T8jxSZR3wJGSkdiPOo0smUmB/IMlCM/yrLtTdx9bMe/ZZdmUPPVSDBYo/NCUgDDgpkCruiI8sUdHwhxml5LiHWSj5DwsQlhLw5ksvZ80ZDd8Jye/Ckys3h0tQ8lYVsm5I1EmsuR8+4x39yxeuYvvO0DqYaLegokNYVV29BZ7XaMLbqSpJir23hqFDTh+OosGEMRsxaM+uQtNCc/7hW6vONU0zX+kxyFQzDQ4qNpfs41dRnGyfVfFpVtuSHAZbN2qb7p/6WgCdcpqrToYj9h3AI/byBcIUi5yCT25w1tCX/R5tMc9+wtDw35rw X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;25:S+AWeBRLY4Ih7THqgAVCLW/z7hXcm6Iv0/8NIyRPvYAiJLGJdfRsY4FCP+XFmKR3xeZJPTGuGO+eNtQnJeDn4AXe5I5eAa4nkTxBr1+7hRYeUTtm3HFPeTGAfJDV3srv8oPHVmPB3fF9DQWuME4Ee9z9gXufiv8QZeOXVtn5HgpBGfvgYwtaZHnk6QAr71vkBNnNygKwEIbVIGJzEGej7aBm18HPruiFYsE+Egscm+pVmm2VbCBqEiusuikCgnlylT0Vcjy7eb0MRoOSGkverCB+7wPZgVMbhzJeCiHGxdp0YbnK8r0pKrwIXImVPF1brhK4jWb7/wMvyjymhBq2jEot21leNJ6nA6+nmOUu4+5fwMCBlWWr2wLqUhCTUNmPVoHsY2pkRZ8NhuJLM3iBWp6dyNkbYUV+8+H1AppVnp2iCoUg0rQSW0DRbngcP4o9N08Y/5PJ1hMpa0BzYxchDUprpzjteE/VCG/JMfW691hJbgjscc9xc4ntu9VN2Ym4bnzcLsecCw7du9hoXZ/kug==;31:Q20CN+IIqNQ+z4OqQpJZeAO2/V3AHTQwhJKYkutyWsb0oXf8kwuXXuC5LNaEOuXlBtU8qaZEimzVxn8dtf57rOfr4TOXXUXxVl7nrRo4kWGGcw38AimhNutwy71m3j/crm0zPrXPKvtpNeFEeu4pzGWsYrX0kn+Bc9P/6Cj7RknuynDXBraNdtuss5Js//dnkHEnPwqghfn00mXKSc9qK/hxd8wllggV6vxGHOxSFymmASJ3SzH1kWXSgg3IhPulXX7uoyE2WFawE2jZ+Sc2jxTTJLjJMHRrMsmdZU2jTsyfeRD4WY40OjB8zPIJRGw9 NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;20:uDNv/F8H2RizC7agdAntY+EkWSPbwelwyzfvpEseOrKD/3yMBtVATrWQts8ug0puM9gz+iy7TmnW2MyIOy8gXOlFqWYyc8vYqPyTldD8MnmjeHjVU29+eQCbT0hpPUKbyNLL8V4KQIk4qoB9iEfj3S1unTEX5hHMV3vm4a3l6xwGpYU+Bym//x711nzUyVg/CC20D4/7aVuwQK/GDQfhUY9tCG5oSFJBN0diwk14Gd+6hmzChfjsVRvxMRvMdeV8 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(5005006)(8121501046)(13013025)(13021025)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93004095)(6055026)(6041248)(20161123560025)(20161123558100)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0801MB2006;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0801MB2006; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0801MB2006;4:/2ONHSlh7zDCvm6+yR3WUefZx3awhKEQkfpyzhSG?= =?us-ascii?Q?w8q9zSdKd5yc3HyW3Mk46kYQuKUPwh4EpEFCzRIIMB/6VTGYJT9nMJU8fgtR?= =?us-ascii?Q?e3IE7KN+ggUkDxAkFF997NlyoUBqnPGx6ZAGLClykm3T5YSXG1/73AiARzdl?= =?us-ascii?Q?4LSw1sMuQGiLFfICKg4Zd3iQ040ztE076l0L49wvXY4svQdeaXcx+hQvsHoO?= =?us-ascii?Q?tQHWf+50fy9Ydr5NED8cyX2IsdKmtryLNsqJSNZt0s0h3dthJ1i2PyC21lbR?= =?us-ascii?Q?lQKEvDDP6jdUcrBUYm2j6zHZ9EOE6iUikJhQXT0U2YhNjNOIrO6s3Cmpx0L9?= =?us-ascii?Q?kAkKhCx6rXdHNoavhsDIZHEX1Kv0otUsGIuZO2kfOUEFfIt7y4G9f3hWt5PK?= =?us-ascii?Q?viFbIhT6STYgNm/SB5BcGgcQ+zoqobkcxkHsZe4N1vxzIhiAREW4qkuwghyl?= =?us-ascii?Q?ZPvuFavcivXmGJp9aU517O8SCDFuMqMJmTlsWVi48L0hCxBNrOmKz8wvQSG+?= =?us-ascii?Q?xB6hZQ/1y4YT9qbJq7NzEB0aNHVwFO9CA1zc7zNYU5yoiWn1zm1mNg7u33/L?= =?us-ascii?Q?cH6khFT5Ldb3VuUpRnr8WilkM3x0X3cyatLjDsE31hZu4Ky8I1Du2gv1YNj6?= =?us-ascii?Q?Jp5Fk59HLLp7CSArqXzA/Cjadue05xboObdf07b2IbzAS2hsfaf5G2eESkXZ?= =?us-ascii?Q?Xpa1w/l9CQ9KmKOZ3l/61IoPmkCzFPuLjK3e846fnk/o6IZeUuIyM23NWG9L?= =?us-ascii?Q?rWyiD1NbNdXrfO7R70zNHkt9/U+ctE0irTaF7fAE9DlDuFOJ9LyKkZuj+JDM?= =?us-ascii?Q?o1H5qIS5d7theVpsVzzmTwz0w7fpjyZ/xQhAgoroBStObRh8EbL+vS1aNCN5?= =?us-ascii?Q?YhIqcjIFhQPNDwwNh05cQmJ5EWrkjqpg+5mW6ucsmCHTH8IyCu7lWmWSTwyo?= =?us-ascii?Q?fmm2CEOojBuG7xl9o59QJsptZ9WO8Zd5K5awXDt6FXYxs8SqoWCoBjtYf8Gt?= =?us-ascii?Q?Au438Ef+dcfQonPjU/CgsaQU+yGZs7qPdyHLgGrSOJB5sULN2rowLm4YC1Ip?= =?us-ascii?Q?Xwkt8wZefb5xgN+Oo9parScdaCZmCDL9lQiKtlGhrzXxoscXfNqvE3rCY73G?= =?us-ascii?Q?49KG8Z/3cxKxszZdZOOplOEYxYrRZubjH+iMHiUli92R6db9JOrwHFX2nYaN?= =?us-ascii?Q?6ezPsAGIE3dVLZbuottlKRm2BVv5GFWlJG1xnlzPJpnlh43Jy2QUNzZU6xHP?= =?us-ascii?Q?AFcATOk3EZGOGXACTK7bS3iRSYkGINK42/hxKLOm?= X-Forefront-PRVS: 03361FCC43 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0801MB2006;23:GUZJZrd7CR0K47scGdVF4VOr+DfB2X9/amA/Ro8?= =?us-ascii?Q?DZrnXCEUP1d3m2Bw8VZ9bj03Qk6I4dNXCT9eEsq7e2n5JgOMr1e8ZUrv0za7?= =?us-ascii?Q?StGIyi7FgNt91EbiaWfF48rU7tQ/ElNVOwEK+13W12oMmoUB/mhtwUBCJ2yw?= =?us-ascii?Q?3roYD1nbYtck6NbgpJ1RvBiSY2zjf3UX76LNKiwSaZIAtoA+ta52kzA5N1+x?= =?us-ascii?Q?IJ8QYUyOBmIWQ3LAzgaPSS6pS+US3kA5bhemCS6uAsPZIzf2/PGB3erbjjjr?= =?us-ascii?Q?8/7g+Qd/6K3sQ6PVA6ySRPKb4v9xsh1921n7HuxNEZVcBrDr8G8Gd2UFll3t?= =?us-ascii?Q?PjsBYSlSrDL8nmHbzito7qz/eiMnMi8A2AhRytLA3BV2VnOIj48sdap4Z50Q?= =?us-ascii?Q?/UnKYnV2e2XglC2PAY6vLRBx2R9mxvWoEQccgIbuehdEJVbgMtBjFYffFtR0?= =?us-ascii?Q?xh6jhtg89FkIfBNLwhO65OD6H0s84Lnn5BHbwzKfJVZUewT0ImRQmZq+t8Pt?= =?us-ascii?Q?fvTUgvPxPgiR7gQWgmbOKDkwm8ugQTPQ8bHHbWYsZvAHTZ+rSP7RLvk+IiBk?= =?us-ascii?Q?0qP61ohShOAwyEd/pr/XKqcuaGvPW+cPXA+/P9+qc6P01r0mTgVxslWwMM1D?= =?us-ascii?Q?IlMIBcmPFe/jMc4VV38OGw7D2W+Qyj6I6IwCfRmfssVsbf2xcEpy3TT1r5cF?= =?us-ascii?Q?o3pxsIb41/ak22um1wr4O9L1fsj0d1+y9rFHVSU2mC/Z0Qs+2vHw4eTwQQ9m?= =?us-ascii?Q?yyIzmiSQBM5N1TVQuz2KmwMLB9XD7DpiSy3hudgPjBsJeQjdFVMj9vZ61Ewk?= =?us-ascii?Q?gDtK615qHzQuaANoBiQR9xXLzvq21b6ZT0lWe7RVC9c+GMyMJka6CRzX7Kov?= =?us-ascii?Q?wbjBASDegl4ppWtX9uzHF+Q8lEbyImJnkgQmAsVsD/Vo0BWNTpjtHLBGiYUI?= =?us-ascii?Q?Sm6gDamnWfRmLyn6K1K8Hx5htRiep2XzAsY8mFEF5l65M6M1va97h6PI9Eqe?= =?us-ascii?Q?vEvs7WSMWuZOFYUibETM+pYNp?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;6:bR0Lx6LuXdvtDPEpIG5FOb8iUv4MbUw2rtpJ1e1Y80oU88D1UNV9YknirqhcNKbB5Dc3K//H23dD6hAZljFAOLqSL49gf/sG/3Qrqpdm/plPtCJxG3yUPfgYpks45sppjfPgZiXEGDuvXF3DdwNZLS41ZDBo5vQ/znmy3FMxD1ulummDj4pfqS+EYxl5lmCNLzp7W4g+sqWl8mIJFLR/Qlet53fdwbz5To/sM8H5tt3B7oSz7YU8ZJ8wVJmYX8NIddiv/ovr4pDXjAAoYGmbsGnmyXR4X5iogTHNt4gk127fA4Zs7DBHuGA4FK0gH6l+GNZnqvr+RUjRqMyddOwRG8zA0GErzwIOQu7tVAmRJ7XxuuFMWPbrJWLiXolyCLXJAYh36D9C8HAhJtcvyUOp1BlwGTX0lG+t1mNY7EmcG6/0i6sQToTyvdVn6NSIpEfqFU2x0V1N1PdEnZrX2L+ymyRrKMVEZ795+PKocKq/9rE3YgE+sWkb8jl+HdOj+mPP5l575lZXXUdT9NZ0HBSCrnqiIPdm/7vhuXOcca+4G6g= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;5:mwdwaxdMTQh2WvWE3jKsn+MCKituNr1gQmu1G2YST17QlIOLHp/3/tPRFVJT/+DxH4OTRr82rDmFG9T3zQr03U/TzUV9ZhVahu3GqDO2ghHv7QsjL3uQpyrA1TpuDkHBh5XX6Y96/H8Pe6Kl9HLIfiaHmefpPd4B7lxFWgGpRMdsUVXlHJ7BDLzsh4g9Osm0D+E8pTqTMYKlK683WCkluJ+ZHI1STg+agoF84W+qdviHERuCbdELJsm6PriGFRuky1XFel3y5/qkgxDRSfIZm5wq56+XHVFWn8V5oQjaMgJ+Y6ii4OPhrBqIoSmwt0p2st5wJAfEj100GHo3hJWUXbsh5wnrR2YA53bemQP2Jt+J0R/8oP4lg6lPnhXtptWJtaKOgJ8waup4FVGd1/XZsWfunIMsoy+vlG5VFpwTZTuksXW7Yxh2PkVkJ9tr8eFDSJXUQGmtA6d39aKYxU96t6QXwzCiCyLQ2Bjq3qUr7sljZRjDwzqWdIeictdGqhTZ;24:O4NxvmiB8i5Zpw6ByXnBqkREJdOH0cvKQ6KyRpwgfqgbi7CiM5CO2ti7itOyxuJ/wkMqdwuDoqwxIVg5Q1zc9bUs4aw7kbqBEwkhhdOLoJE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2006;7:y3zZHaNFVUtT+KCPm4FqPRoNhI7eZFu6J7hrf4XzBvawX6jbHZHSIRkocWGXuXhzf+PxPF/qcf+F6JGmWs58kkg3Kwt8VDAUspWWfvKEwWNLF8346PGZI6Le+dFBsB5I1fYJjjxjCF+uTZj47oYk/PM4D+g0MNo799TZeCK9+toU3/NQN4ZRhq8NnV1P0wut3ICVuXzZ/Ql2W5F2iN61uBQzg+x/AtumBiUpvjR47wFI/0WMQE1VDsIcod8oQEEd2/Tagt3nEpnyVD7/ZutwwoVS7L4IIywCfmpO7dS4eSVyiQ9PDxWy4SCnI3H6I5qbJjm9JLTProNlfAhSKCL6VA== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2017 13:54:15.1347 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2006 X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00795.txt.bz2 --------------2.6.4.2.gae996d8 Content-Type: text/plain; charset="UTF-8"; format=fixed Content-Transfer-Encoding: 8bit Content-length: 2415 Hi, In the AArch64 backend and scheduling models there is some confusion as to what the load1/load2 etc. scheduling types refer to. This leads to us using load1/load2 in two contexts - for a variety of 32-bit, 64-bit and 128-bit loads in AArch32 and 128-bit loads in AArch64. That leads to an undesirable confusion in scheduling. Fixing it is easy, but mechanical and boring. Essentially, s/load1/load_4/ s/load2/load_8/ s/load3/load_12/ s/load4/load_16/ s/store1/store_4/ s/store2/store_8/ s/store3/store_12/ s/store4/store_16/ Across all sorts of pipeline models, and the two backends. I have intentionally not modified any of the patterns which now look obviously incorrect. I'll be doing a second pass over the AArch64 back-end in patch 2/2 which will fix these bugs. The AArch32 back-end looked to me to get this correct. Bootstrapped on AArch64 and ARM without issue - there's no functional change here. OK? Thanks, James --- gcc/ 2017-06-12 James Greenhalgh * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16 and store1/2/3/4 to store_4/8/12/16. * config/aarch64/aarch64.md: Update for rename. * config/arm/arm.md: Likewise.: Likewise. * config/arm/arm.c: Likewise. * config/arm/thumb1.md: Likewise. * config/arm/thumb2.md: Likewise. * config/arm/vfp.md: Likewise. * config/arm/arm-generic.md: Likewise. * config/arm/arm1020e.md: Likewise. * config/arm/arm1026ejs.md: Likewise. * config/arm/arm1136jfs.md: Likewise. * config/arm/arm926ejs.md: Likewise. * config/arm/cortex-a15.md: Likewise. * config/arm/cortex-a17.md: Likewise. * config/arm/cortex-a5.md: Likewise. * config/arm/cortex-a53.md: Likewise. * config/arm/cortex-a57.md: Likewise. * config/arm/cortex-a7.md: Likewise. * config/arm/cortex-a8.md: Likewise. * config/arm/cortex-a9.md: Likewise. * config/arm/cortex-m4.md: Likewise. * config/arm/cortex-m7.md: Likewise. * config/arm/cortex-r4.md: Likewise. * config/arm/exynos-m1.md: Likewise. * config/arm/fa526.md: Likewise. * config/arm/fa606te.md: Likewise. * config/arm/fa626te.md: Likewise. * config/arm/fa726te.md: Likewise. * config/arm/fmp626.md: Likewise. * config/arm/iwmmxt.md: Likewise. * config/arm/ldmstm.md: Likewise. * config/arm/marvell-pj4.md: Likewise. * config/arm/xgene1.md: Likewise. * config/aarch64/thunderx.md: Likewise. * config/aarch64/thunderx2t99.md: Likewise. --------------2.6.4.2.gae996d8 Content-Type: text/x-patch; name="0001-Mechanical-Patch-ARM-AArch64-1-2-Rename-load-store-s.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-Mechanical-Patch-ARM-AArch64-1-2-Rename-load-store-s.patch" Content-length: 92550 diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 1a721bf..11295a6 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -546,7 +546,7 @@ operands[0] = gen_rtx_MEM (DImode, operands[0]); return pftype[INTVAL(operands[1])][locality]; } - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "trap" @@ -890,7 +890,7 @@ gcc_unreachable (); } } - [(set_attr "type" "mov_reg,mov_imm,neon_move,load1,load1,store1,store1,\ + [(set_attr "type" "mov_reg,mov_imm,neon_move,load_4,load_4,store_4,store_4,\ neon_to_gp,neon_from_gp,neon_dup") (set_attr "simd" "*,*,yes,*,*,*,*,yes,yes,yes")] ) @@ -946,7 +946,8 @@ aarch64_expand_mov_immediate (operands[0], operands[1]); DONE; }" - [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\ + [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,\ + load_4,load_4,store_4,store_4,\ adr,adr,f_mcr,f_mrc,fmov") (set_attr "fp" "*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes")] ) @@ -979,7 +980,8 @@ aarch64_expand_mov_immediate (operands[0], operands[1]); DONE; }" - [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\ + [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,\ + load_4,load_4,store_4,store_4,\ adr,adr,f_mcr,f_mrc,fmov,neon_move") (set_attr "fp" "*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*") (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,yes")] @@ -1024,7 +1026,7 @@ ldr\\t%q0, %1 str\\t%q1, %0" [(set_attr "type" "multiple,f_mcr,f_mrc,neon_logic_q, \ - load2,store2,store2,f_loadd,f_stored") + load_8,store_8,store_8,f_loadd,f_stored") (set_attr "length" "8,8,8,4,4,4,4,4,4") (set_attr "simd" "*,*,*,yes,*,*,*,*,*") (set_attr "fp" "*,*,*,*,*,*,*,yes,yes")] @@ -1077,7 +1079,7 @@ strh\\t%w1, %0 mov\\t%w0, %w1" [(set_attr "type" "neon_move,neon_from_gp,neon_to_gp,neon_move,\ - f_loads,f_stores,load1,store1,mov_reg") + f_loads,f_stores,load_4,store_4,mov_reg") (set_attr "simd" "yes,yes,yes,yes,*,*,*,*,*")] ) @@ -1098,7 +1100,7 @@ str\\t%w1, %0 mov\\t%w0, %w1" [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconsts,\ - f_loads,f_stores,load1,store1,mov_reg") + f_loads,f_stores,load_4,store_4,mov_reg") (set_attr "simd" "yes,*,*,*,*,*,*,*,*,*")] ) @@ -1119,7 +1121,7 @@ str\\t%x1, %0 mov\\t%x0, %x1" [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconstd,\ - f_loadd,f_stored,load1,store1,mov_reg") + f_loadd,f_stored,load_4,store_4,mov_reg") (set_attr "simd" "yes,*,*,*,*,*,*,*,*,*")] ) @@ -1143,7 +1145,7 @@ stp\\t%1, %H1, %0 stp\\txzr, xzr, %0" [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,f_mcr,\ - f_loadd,f_stored,load2,store2,store2") + f_loadd,f_stored,load_8,store_8,store_8") (set_attr "length" "4,8,8,8,4,4,4,4,4,4,4") (set_attr "simd" "yes,*,*,*,yes,*,*,*,*,*,*")] ) @@ -1191,7 +1193,7 @@ "@ ldp\\t%w0, %w2, %1 ldp\\t%s0, %s2, %1" - [(set_attr "type" "load2,neon_load1_2reg") + [(set_attr "type" "load_8,neon_load1_2reg") (set_attr "fp" "*,yes")] ) @@ -1207,7 +1209,7 @@ "@ ldp\\t%x0, %x2, %1 ldp\\t%d0, %d2, %1" - [(set_attr "type" "load2,neon_load1_2reg") + [(set_attr "type" "load_8,neon_load1_2reg") (set_attr "fp" "*,yes")] ) @@ -1226,7 +1228,7 @@ "@ stp\\t%w1, %w3, %0 stp\\t%s1, %s3, %0" - [(set_attr "type" "store2,neon_store1_2reg") + [(set_attr "type" "store_8,neon_store1_2reg") (set_attr "fp" "*,yes")] ) @@ -1242,7 +1244,7 @@ "@ stp\\t%x1, %x3, %0 stp\\t%d1, %d3, %0" - [(set_attr "type" "store2,neon_store1_2reg") + [(set_attr "type" "store_8,neon_store1_2reg") (set_attr "fp" "*,yes")] ) @@ -1260,7 +1262,7 @@ "@ ldp\\t%s0, %s2, %1 ldp\\t%w0, %w2, %1" - [(set_attr "type" "neon_load1_2reg,load2") + [(set_attr "type" "neon_load1_2reg,load_8") (set_attr "fp" "yes,*")] ) @@ -1276,7 +1278,7 @@ "@ ldp\\t%d0, %d2, %1 ldp\\t%x0, %x2, %1" - [(set_attr "type" "neon_load1_2reg,load2") + [(set_attr "type" "neon_load1_2reg,load_8") (set_attr "fp" "yes,*")] ) @@ -1294,7 +1296,7 @@ "@ stp\\t%s1, %s3, %0 stp\\t%w1, %w3, %0" - [(set_attr "type" "neon_store1_2reg,store2") + [(set_attr "type" "neon_store1_2reg,store_8") (set_attr "fp" "yes,*")] ) @@ -1310,7 +1312,7 @@ "@ stp\\t%d1, %d3, %0 stp\\t%x1, %x3, %0" - [(set_attr "type" "neon_store1_2reg,store2") + [(set_attr "type" "neon_store1_2reg,store_8") (set_attr "fp" "yes,*")] ) @@ -1328,7 +1330,7 @@ (match_operand:P 5 "const_int_operand" "n"))))])] "INTVAL (operands[5]) == GET_MODE_SIZE (mode)" "ldp\\t%2, %3, [%1], %4" - [(set_attr "type" "load2")] + [(set_attr "type" "load_8")] ) (define_insn "loadwb_pair_" @@ -1361,7 +1363,7 @@ (match_operand:GPI 3 "register_operand" "r"))])] "INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (mode)" "stp\\t%2, %3, [%0, %4]!" - [(set_attr "type" "store2")] + [(set_attr "type" "store_8")] ) (define_insn "storewb_pair_" @@ -1397,7 +1399,7 @@ "@ sxtw\t%0, %w1 ldrsw\t%0, %1" - [(set_attr "type" "extend,load1")] + [(set_attr "type" "extend,load_4")] ) (define_insn "*load_pair_extendsidi2_aarch64" @@ -1410,7 +1412,7 @@ XEXP (operands[1], 0), GET_MODE_SIZE (SImode)))" "ldpsw\\t%0, %2, %1" - [(set_attr "type" "load2")] + [(set_attr "type" "load_8")] ) (define_insn "*zero_extendsidi2_aarch64" @@ -1420,7 +1422,7 @@ "@ uxtw\t%0, %w1 ldr\t%w0, %1" - [(set_attr "type" "extend,load1")] + [(set_attr "type" "extend,load_4")] ) (define_insn "*load_pair_zero_extendsidi2_aarch64" @@ -1433,7 +1435,7 @@ XEXP (operands[1], 0), GET_MODE_SIZE (SImode)))" "ldp\\t%w0, %w2, %1" - [(set_attr "type" "load2")] + [(set_attr "type" "load_8")] ) (define_expand "2" @@ -1449,7 +1451,7 @@ "@ sxt\t%0, %w1 ldrs\t%0, %1" - [(set_attr "type" "extend,load1")] + [(set_attr "type" "extend,load_4")] ) (define_insn "*zero_extend2_aarch64" @@ -1460,7 +1462,7 @@ and\t%0, %1, ldr\t%w0, %1 ldr\t%0, %1" - [(set_attr "type" "logic_imm,load1,load1")] + [(set_attr "type" "logic_imm,load_4,load_4")] ) (define_expand "qihi2" @@ -1476,7 +1478,7 @@ "@ sxtb\t%w0, %w1 ldrsb\t%w0, %1" - [(set_attr "type" "extend,load1")] + [(set_attr "type" "extend,load_4")] ) (define_insn "*zero_extendqihi2_aarch64" @@ -1486,7 +1488,7 @@ "@ and\t%w0, %w1, 255 ldrb\t%w0, %1" - [(set_attr "type" "logic_imm,load1")] + [(set_attr "type" "logic_imm,load_4")] ) ;; ------------------------------------------------------------------- @@ -5137,7 +5139,7 @@ UNSPEC_GOTSMALLPIC))] "" "ldr\\t%0, [%1, #:got_lo12:%a2]" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "ldr_got_small_sidi" @@ -5149,7 +5151,7 @@ UNSPEC_GOTSMALLPIC)))] "TARGET_ILP32" "ldr\\t%w0, [%1, #:got_lo12:%a2]" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "ldr_got_small_28k_" @@ -5160,7 +5162,7 @@ UNSPEC_GOTSMALLPIC28K))] "" "ldr\\t%0, [%1, #::%a2]" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "ldr_got_small_28k_sidi" @@ -5172,7 +5174,7 @@ UNSPEC_GOTSMALLPIC28K)))] "TARGET_ILP32" "ldr\\t%w0, [%1, #:gotpage_lo14:%a2]" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "ldr_got_tiny" @@ -5181,7 +5183,7 @@ UNSPEC_GOTTINYPIC))] "" "ldr\\t%0, %L1" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_insn "aarch64_load_tp_hard" @@ -5222,7 +5224,7 @@ UNSPEC_GOTSMALLTLS))] "" "adrp\\t%0, %A1\;ldr\\t%0, [%0, #%L1]" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "length" "8")] ) @@ -5233,7 +5235,7 @@ UNSPEC_GOTSMALLTLS)))] "" "adrp\\t%0, %A1\;ldr\\t%w0, [%0, #%L1]" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "length" "8")] ) diff --git a/gcc/config/aarch64/thunderx.md b/gcc/config/aarch64/thunderx.md index b67671d..c18da2f 100644 --- a/gcc/config/aarch64/thunderx.md +++ b/gcc/config/aarch64/thunderx.md @@ -94,13 +94,13 @@ ;; Stores take one cycle in pipe 0 (define_insn_reservation "thunderx_store" 1 (and (eq_attr "tune" "thunderx") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "thunderx_pipe0") ;; Store pair are single issued (define_insn_reservation "thunderx_storepair" 1 (and (eq_attr "tune" "thunderx") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "thunderx_pipe0 + thunderx_pipe1") ;; Prefetch are single issued @@ -112,7 +112,7 @@ ;; loads (and load pairs) from L1 take 3 cycles in pipe 0 (define_insn_reservation "thunderx_load" 3 (and (eq_attr "tune" "thunderx") - (eq_attr "type" "load1, load2")) + (eq_attr "type" "load_4, load_8")) "thunderx_pipe0") (define_insn_reservation "thunderx_brj" 1 diff --git a/gcc/config/aarch64/thunderx2t99.md b/gcc/config/aarch64/thunderx2t99.md index adb010c..632396f 100644 --- a/gcc/config/aarch64/thunderx2t99.md +++ b/gcc/config/aarch64/thunderx2t99.md @@ -123,22 +123,22 @@ (define_insn_reservation "thunderx2t99_load_basic" 4 (and (eq_attr "tune" "thunderx2t99") - (eq_attr "type" "load1")) + (eq_attr "type" "load_4")) "thunderx2t99_ls01") (define_insn_reservation "thunderx2t99_loadpair" 5 (and (eq_attr "tune" "thunderx2t99") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "thunderx2t99_i012,thunderx2t99_ls01") (define_insn_reservation "thunderx2t99_store_basic" 1 (and (eq_attr "tune" "thunderx2t99") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "thunderx2t99_ls01,thunderx2t99_sd") (define_insn_reservation "thunderx2t99_storepair_basic" 1 (and (eq_attr "tune" "thunderx2t99") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "thunderx2t99_ls01,thunderx2t99_sd") ;; FP data processing instructions. diff --git a/gcc/config/arm/arm-generic.md b/gcc/config/arm/arm-generic.md index 52c8b2e..0a45608 100644 --- a/gcc/config/arm/arm-generic.md +++ b/gcc/config/arm/arm-generic.md @@ -47,69 +47,69 @@ (define_insn_reservation "store_wbuf" 5 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "yes") - (eq_attr "type" "store1"))) + (eq_attr "type" "store_4"))) "core+write_buf*3+write_blockage*5") (define_insn_reservation "store2_wbuf" 7 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "yes") - (eq_attr "type" "store2"))) + (eq_attr "type" "store_8"))) "core+write_buf*4+write_blockage*7") (define_insn_reservation "store3_wbuf" 9 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "yes") - (eq_attr "type" "store3"))) + (eq_attr "type" "store_12"))) "core+write_buf*5+write_blockage*9") (define_insn_reservation "store4_wbuf" 11 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "yes") - (eq_attr "type" "store4"))) + (eq_attr "type" "store_16"))) "core+write_buf*6+write_blockage*11") (define_insn_reservation "store2" 3 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "no") - (eq_attr "type" "store2"))) + (eq_attr "type" "store_8"))) "core*3") (define_insn_reservation "store3" 4 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "no") - (eq_attr "type" "store3"))) + (eq_attr "type" "store_12"))) "core*4") (define_insn_reservation "store4" 5 (and (eq_attr "generic_sched" "yes") (and (eq_attr "model_wbuf" "no") - (eq_attr "type" "store4"))) + (eq_attr "type" "store_16"))) "core*5") (define_insn_reservation "store_ldsched" 1 (and (eq_attr "generic_sched" "yes") (and (eq_attr "ldsched" "yes") - (eq_attr "type" "store1"))) + (eq_attr "type" "store_4"))) "core") (define_insn_reservation "load_ldsched_xscale" 3 (and (eq_attr "generic_sched" "yes") (and (eq_attr "ldsched" "yes") - (and (eq_attr "type" "load_byte,load1") + (and (eq_attr "type" "load_byte,load_4") (eq_attr "tune" "xscale,iwmmxt,iwmmxt2")))) "core") (define_insn_reservation "load_ldsched" 2 (and (eq_attr "generic_sched" "yes") (and (eq_attr "ldsched" "yes") - (and (eq_attr "type" "load_byte,load1") + (and (eq_attr "type" "load_byte,load_4") (eq_attr "tune" "!xscale,iwmmxt,iwmmxt2")))) "core") (define_insn_reservation "load_or_store" 2 (and (eq_attr "generic_sched" "yes") (and (eq_attr "ldsched" "!yes") - (eq_attr "type" "load_byte,load1,load2,load3,load4,store1"))) + (eq_attr "type" "load_byte,load_4,load_8,load_12,load_16,store_4"))) "core*2") (define_insn_reservation "mult" 16 @@ -140,8 +140,8 @@ (define_insn_reservation "multi_cycle" 32 (and (eq_attr "generic_sched" "yes") (and (eq_attr "core_cycles" "multi") - (and (eq_attr "type" "!load_byte,load1,load2,load3,load4,\ - store1,store2,store3,store4") + (and (eq_attr "type" "!load_byte,load_4,load_8,load_12,load_16,\ + store_4,store_8,store_12,store_16") (not (ior (eq_attr "mul32" "yes") (eq_attr "mul64" "yes")))))) "core*32") diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 259597d..e503891 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -11264,8 +11264,8 @@ cortexa7_older_only (rtx_insn *insn) case TYPE_SHIFT_IMM: case TYPE_SHIFT_REG: case TYPE_LOAD_BYTE: - case TYPE_LOAD1: - case TYPE_STORE1: + case TYPE_LOAD_4: + case TYPE_STORE_4: case TYPE_FFARITHS: case TYPE_FADDS: case TYPE_FFARITHD: diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index e6e1ac5..3e84af9 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -314,7 +314,7 @@ ; to stall the processor. Used with model_wbuf above. (define_attr "write_conflict" "no,yes" (if_then_else (eq_attr "type" - "block,call,load1") + "block,call,load_4") (const_string "yes") (const_string "no"))) @@ -3770,7 +3770,7 @@ "" [(set_attr "conds" "clob") (set_attr "length" "8,8,12") - (set_attr "type" "store1")] + (set_attr "type" "store_4")] ) (define_expand "uminsi3" @@ -3803,7 +3803,7 @@ "" [(set_attr "conds" "clob") (set_attr "length" "8,8,12") - (set_attr "type" "store1")] + (set_attr "type" "store_4")] ) (define_insn "*store_minmaxsi" @@ -3828,7 +3828,7 @@ (if_then_else (eq_attr "is_thumb" "yes") (const_int 14) (const_int 12))) - (set_attr "type" "store1")] + (set_attr "type" "store_4")] ) ; Reject the frame pointer in operand[1], since reloading this after @@ -4495,7 +4495,7 @@ (set_attr "length" "2,4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no") - (set_attr "type" "load1")]) + (set_attr "type" "load_4")]) (define_insn "unaligned_loadhis" [(set (match_operand:SI 0 "s_register_operand" "=l,r") @@ -4533,7 +4533,7 @@ (set_attr "length" "2,4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no") - (set_attr "type" "store1")]) + (set_attr "type" "store_4")]) (define_insn "unaligned_storehi" [(set (match_operand:HI 0 "memory_operand" "=Uw,m") @@ -4545,7 +4545,7 @@ (set_attr "length" "2,4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no") - (set_attr "type" "store1")]) + (set_attr "type" "store_4")]) (define_insn "*extv_reg" @@ -5862,7 +5862,7 @@ } " [(set_attr "length" "8,12,16,8,8") - (set_attr "type" "multiple,multiple,multiple,load2,store2") + (set_attr "type" "multiple,multiple,multiple,load_8,store_8") (set_attr "arm_pool_range" "*,*,*,1020,*") (set_attr "arm_neg_pool_range" "*,*,*,1004,*") (set_attr "thumb2_pool_range" "*,*,*,4094,*") @@ -6083,7 +6083,7 @@ movw%?\\t%0, %1 ldr%?\\t%0, %1 str%?\\t%1, %0" - [(set_attr "type" "mov_reg,mov_imm,mvn_imm,mov_imm,load1,store1") + [(set_attr "type" "mov_reg,mov_imm,mvn_imm,mov_imm,load_4,store_4") (set_attr "predicable" "yes") (set_attr "arch" "*,*,*,v6t2,*,*") (set_attr "pool_range" "*,*,*,*,4096,*") @@ -6213,7 +6213,7 @@ (set (match_dup 0) (unspec:SI [(match_dup 0) (match_dup 3) (match_dup 2)] UNSPEC_PIC_BASE))] "operands[3] = TARGET_THUMB ? GEN_INT (4) : GEN_INT (8);" - [(set_attr "type" "load1,load1,load1") + [(set_attr "type" "load_4,load_4,load_4") (set_attr "pool_range" "4096,4094,1022") (set_attr "neg_pool_range" "4084,0,0") (set_attr "arch" "a,t2,t1") @@ -6229,7 +6229,7 @@ (unspec:SI [(match_operand:SI 1 "" "mX")] UNSPEC_PIC_SYM))] "TARGET_32BIT && flag_pic" "ldr%?\\t%0, %1" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set (attr "pool_range") (if_then_else (eq_attr "is_thumb" "no") (const_int 4096) @@ -6245,7 +6245,7 @@ (unspec:SI [(match_operand:SI 1 "" "mX")] UNSPEC_PIC_SYM))] "TARGET_THUMB1 && flag_pic" "ldr\\t%0, %1" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set (attr "pool_range") (const_int 1018))] ) @@ -6294,7 +6294,7 @@ return \"ldr%?\\t%0, [%|pc, %1]\t\t@ tls_load_dot_plus_eight\"; " [(set_attr "predicable" "yes") - (set_attr "type" "load1")] + (set_attr "type" "load_4")] ) ;; PIC references to local variables can generate pic_add_dot_plus_eight @@ -6325,7 +6325,7 @@ UNSPEC_PIC_OFFSET))))] "TARGET_VXWORKS_RTP && TARGET_ARM && flag_pic" "ldr%?\\t%0, [%1,%2]" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) (define_expand "builtin_setjmp_receiver" @@ -6741,8 +6741,8 @@ (const_string "mov_reg")) (const_string "mvn_imm") (const_string "mov_imm") - (const_string "store1") - (const_string "load1")])] + (const_string "store_4") + (const_string "load_4")])] ) (define_insn "*movhi_bytes" @@ -6876,7 +6876,7 @@ strb%?\\t%1, %0 ldrb%?\\t%0, %1 strb%?\\t%1, %0" - [(set_attr "type" "mov_reg,mov_reg,mov_imm,mov_imm,mvn_imm,load1,store1,load1,store1") + [(set_attr "type" "mov_reg,mov_reg,mov_imm,mov_imm,mvn_imm,load_4,store_4,load_4,store_4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,yes,no,yes,no,no,no,no,no") (set_attr "arch" "t2,any,any,t2,any,t2,t2,any,any") @@ -6943,7 +6943,7 @@ } " [(set_attr "conds" "unconditional") - (set_attr "type" "load1,store1,mov_reg,multiple") + (set_attr "type" "load_4,store_4,mov_reg,multiple") (set_attr "length" "4,4,4,8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")] @@ -7000,7 +7000,7 @@ str%?\\t%1, %0\\t%@ float" [(set_attr "predicable" "yes") (set_attr "predicable_short_it" "no") - (set_attr "type" "mov_reg,load1,store1") + (set_attr "type" "mov_reg,load_4,store_4") (set_attr "arm_pool_range" "*,4096,*") (set_attr "thumb2_pool_range" "*,4094,*") (set_attr "arm_neg_pool_range" "*,4084,*") @@ -7089,7 +7089,7 @@ } " [(set_attr "length" "8,12,16,8,8") - (set_attr "type" "multiple,multiple,multiple,load2,store2") + (set_attr "type" "multiple,multiple,multiple,load_8,store_8") (set_attr "arm_pool_range" "*,*,*,1020,*") (set_attr "thumb2_pool_range" "*,*,*,1018,*") (set_attr "arm_neg_pool_range" "*,*,*,1004,*") @@ -8416,7 +8416,7 @@ } return output_return_instruction (const_true_rtx, true, false, false); }" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "length" "12") (set_attr "predicable" "yes")] ) @@ -8440,7 +8440,7 @@ }" [(set_attr "conds" "use") (set_attr "length" "12") - (set_attr "type" "load1")] + (set_attr "type" "load_4")] ) (define_insn "*cond_return_inverted" @@ -8462,7 +8462,7 @@ }" [(set_attr "conds" "use") (set_attr "length" "12") - (set_attr "type" "load1")] + (set_attr "type" "load_4")] ) (define_insn "*arm_simple_return" @@ -8645,7 +8645,7 @@ (unspec:SI [(const_int 0)] UNSPEC_PROBE_STACK))] "TARGET_32BIT" "str%?\\tr0, %0" - [(set_attr "type" "store1") + [(set_attr "type" "store_4") (set_attr "predicable" "yes")] ) @@ -8755,7 +8755,7 @@ (match_operand:SI 0 "memory_operand" "m"))] "TARGET_ARM" "ldr%?\\t%|pc, %0\\t%@ indirect memory jump" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "pool_range" "4096") (set_attr "neg_pool_range" "4084") (set_attr "predicable" "yes")] @@ -10666,7 +10666,7 @@ }" [(set_attr "length" "12") (set_attr "predicable" "yes") - (set_attr "type" "load1")] + (set_attr "type" "load_4")] ) ; This pattern is never tried by combine, so do it as a peephole @@ -11013,7 +11013,7 @@ return \"\"; }" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set (attr "length") (symbol_ref "arm_attr_length_push_multi (operands[2], operands[1])"))] ) @@ -11049,7 +11049,7 @@ return \"\"; } " - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set (attr "length") (symbol_ref "arm_attr_length_pop_multi (operands, @@ -11082,7 +11082,7 @@ return \"\"; } " - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set (attr "length") (symbol_ref "arm_attr_length_pop_multi (operands, /*return_pc=*/true, @@ -11105,7 +11105,7 @@ return \"\"; } " - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set (attr "length") (symbol_ref "arm_attr_length_pop_multi (operands, /*return_pc=*/true, @@ -11119,7 +11119,7 @@ (mem:SI (post_inc:SI (match_operand:SI 0 "s_register_operand" "+rk"))))] "TARGET_32BIT && (reload_in_progress || reload_completed)" "ldr%?\t%|pc, [%0], #4" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "predicable" "yes")] ) ;; Pop for floating point registers (as used in epilogue RTL) @@ -11152,7 +11152,7 @@ return \"\"; } " - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "conds" "unconditional") (set_attr "predicable" "no")] ) @@ -11345,7 +11345,7 @@ (match_operand:SI 2 "" ""))] "TARGET_32BIT && arm_arch5e" "pld\\t%a0" - [(set_attr "type" "load1")] + [(set_attr "type" "load_4")] ) ;; General predication pattern @@ -11732,7 +11732,7 @@ operands[1], INTVAL (operands[2]), false, true))" "ldrd%?\t%0, %3, [%1, %2]" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -11746,7 +11746,7 @@ && (operands_ok_ldrd_strd (operands[0], operands[2], operands[1], 0, false, true))" "ldrd%?\t%0, %2, [%1]" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -11760,7 +11760,7 @@ && (operands_ok_ldrd_strd (operands[0], operands[2], operands[1], -4, false, true))" "ldrd%?\t%0, %2, [%1, #-4]" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -11777,7 +11777,7 @@ operands[0], INTVAL (operands[1]), false, false))" "strd%?\t%2, %4, [%0, %1]" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -11791,7 +11791,7 @@ && (operands_ok_ldrd_strd (operands[1], operands[2], operands[0], 0, false, false))" "strd%?\t%1, %2, [%0]" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -11805,7 +11805,7 @@ && (operands_ok_ldrd_strd (operands[1], operands[2], operands[0], -4, false, false))" "strd%?\t%1, %2, [%0, #-4]" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) diff --git a/gcc/config/arm/arm1020e.md b/gcc/config/arm/arm1020e.md index bae76e5..d91241f 100644 --- a/gcc/config/arm/arm1020e.md +++ b/gcc/config/arm/arm1020e.md @@ -176,12 +176,12 @@ (define_insn_reservation "1020load1_op" 2 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "1020a_e+1020l_e,1020l_m,1020l_w") (define_insn_reservation "1020store1_op" 0 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "1020a_e+1020l_e,1020l_m,1020l_w") ;; A load's result can be stored by an immediately following store @@ -211,22 +211,22 @@ (define_insn_reservation "1020load2_op" 2 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "1020a_e+1020l_e,1020l_m,1020l_w") (define_insn_reservation "1020store2_op" 0 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "1020a_e+1020l_e,1020l_m,1020l_w") (define_insn_reservation "1020load34_op" 3 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "1020a_e+1020l_e,1020l_e+1020l_m,1020l_m,1020l_w") (define_insn_reservation "1020store34_op" 0 (and (eq_attr "tune" "arm1020e,arm1022e") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "1020a_e+1020l_e,1020l_e+1020l_m,1020l_m,1020l_w") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/arm1026ejs.md b/gcc/config/arm/arm1026ejs.md index 2fe6248..951c2a4 100644 --- a/gcc/config/arm/arm1026ejs.md +++ b/gcc/config/arm/arm1026ejs.md @@ -176,12 +176,12 @@ (define_insn_reservation "load1_op" 2 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "a_e+l_e,l_m,a_w+l_w") (define_insn_reservation "store1_op" 0 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "a_e+l_e,l_m,a_w+l_w") ;; A load's result can be stored by an immediately following store @@ -206,22 +206,22 @@ (define_insn_reservation "load2_op" 2 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "a_e+l_e,l_m,a_w+l_w") (define_insn_reservation "store2_op" 0 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "a_e+l_e,l_m,a_w+l_w") (define_insn_reservation "load34_op" 3 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "a_e+l_e,a_e+l_e+l_m,a_e+l_m,a_w+l_w") (define_insn_reservation "store34_op" 0 (and (eq_attr "tune" "arm1026ejs") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "a_e+l_e,a_e+l_e+l_m,a_e+l_m,a_w+l_w") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/arm1136jfs.md b/gcc/config/arm/arm1136jfs.md index d086e83..e434c36 100644 --- a/gcc/config/arm/arm1136jfs.md +++ b/gcc/config/arm/arm1136jfs.md @@ -294,7 +294,7 @@ (define_insn_reservation "11_load1" 3 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "load1")) + (eq_attr "type" "load_4")) "l_a+e_1,l_dc1,l_dc2,l_wb") ;; Load byte results are not available until the writeback stage, where @@ -307,7 +307,7 @@ (define_insn_reservation "11_store1" 0 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "l_a+e_1,l_dc1,l_dc2,l_wb") ;; Load/store double words into adjacent registers. The timing and @@ -315,12 +315,12 @@ ;; aligned. This model assumes that it is. (define_insn_reservation "11_load2" 3 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "l_a+e_1,l_dc1,l_dc2,l_wb") (define_insn_reservation "11_store2" 0 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "l_a+e_1,l_dc1,l_dc2,l_wb") ;; Load/store multiple registers. Two registers are stored per cycle. @@ -328,12 +328,12 @@ ;; optimistically schedule a low latency. (define_insn_reservation "11_load34" 4 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "l_a+e_1,l_dc1*2,l_dc2,l_wb") (define_insn_reservation "11_store34" 0 (and (eq_attr "tune" "arm1136js,arm1136jfs") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "l_a+e_1,l_dc1*2,l_dc2,l_wb") ;; A store can start immediately after an alu op, if that alu op does diff --git a/gcc/config/arm/arm926ejs.md b/gcc/config/arm/arm926ejs.md index 61e9379..cc5dbee 100644 --- a/gcc/config/arm/arm926ejs.md +++ b/gcc/config/arm/arm926ejs.md @@ -133,43 +133,43 @@ ;; most common and (b) the pessimistic assumption will lead to fewer stalls. (define_insn_reservation "9_load1_op" 3 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "e*2,m,w") (define_insn_reservation "9_store1_op" 0 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "e,m,w") ;; multiple word loads and stores (define_insn_reservation "9_load2_op" 3 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "e,m*2,w") (define_insn_reservation "9_load3_op" 4 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "e,m*3,w") (define_insn_reservation "9_load4_op" 5 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "e,m*4,w") (define_insn_reservation "9_store2_op" 0 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "e,m*2,w") (define_insn_reservation "9_store3_op" 0 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "e,m*3,w") (define_insn_reservation "9_store4_op" 0 (and (eq_attr "tune" "arm926ejs") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "e,m*4,w") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/cortex-a15.md b/gcc/config/arm/cortex-a15.md index c4853c7..78b5e3a 100644 --- a/gcc/config/arm/cortex-a15.md +++ b/gcc/config/arm/cortex-a15.md @@ -139,25 +139,25 @@ ;; Loads of up to two words. (define_insn_reservation "cortex_a15_load1" 4 (and (eq_attr "tune" "cortexa15") - (eq_attr "type" "load_byte,load1,load2")) + (eq_attr "type" "load_byte,load_4,load_8")) "ca15_issue1,ca15_ls,ca15_ldr,nothing") ;; Loads of three or four words. (define_insn_reservation "cortex_a15_load3" 5 (and (eq_attr "tune" "cortexa15") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "ca15_issue2,ca15_ls1+ca15_ls2,ca15_ldr,ca15_ldr,nothing") ;; Stores of up to two words. (define_insn_reservation "cortex_a15_store1" 0 (and (eq_attr "tune" "cortexa15") - (eq_attr "type" "store1,store2")) + (eq_attr "type" "store_4,store_8")) "ca15_issue1,ca15_ls,ca15_str") ;; Stores of three or four words. (define_insn_reservation "cortex_a15_store3" 0 (and (eq_attr "tune" "cortexa15") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "ca15_issue2,ca15_ls1+ca15_ls2,ca15_str,ca15_str") ;; We include Neon.md here to ensure that the branch can block the Neon units. diff --git a/gcc/config/arm/cortex-a17.md b/gcc/config/arm/cortex-a17.md index 1190e33..d83cca1 100644 --- a/gcc/config/arm/cortex-a17.md +++ b/gcc/config/arm/cortex-a17.md @@ -127,37 +127,37 @@ ;; Loads of up to two words. (define_insn_reservation "cortex_a17_load1" 4 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "load_byte,load1,load2")) + (eq_attr "type" "load_byte,load_4,load_8")) "ca17_ls0|ca17_ls1") ;; Loads of three words. (define_insn_reservation "cortex_a17_load3" 4 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "ca17_ls0+ca17_ls1") ;; Loads of four words. (define_insn_reservation "cortex_a17_load4" 4 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "ca17_ls0+ca17_ls1") ;; Stores of up to two words. (define_insn_reservation "cortex_a17_store1" 0 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "store1,store2")) + (eq_attr "type" "store_4,store_8")) "ca17_ls0|ca17_ls1") ;; Stores of three words (define_insn_reservation "cortex_a17_store3" 0 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "ca17_ls0+ca17_ls1") ;; Stores of four words. (define_insn_reservation "cortex_a17_store4" 0 (and (eq_attr "tune" "cortexa17") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "ca17_ls0+ca17_ls1") (define_insn_reservation "cortex_a17_call" 0 diff --git a/gcc/config/arm/cortex-a5.md b/gcc/config/arm/cortex-a5.md index da54601..a7a521f 100644 --- a/gcc/config/arm/cortex-a5.md +++ b/gcc/config/arm/cortex-a5.md @@ -106,45 +106,45 @@ (define_insn_reservation "cortex_a5_load1" 2 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "cortex_a5_ex1") (define_insn_reservation "cortex_a5_store1" 0 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "cortex_a5_ex1") (define_insn_reservation "cortex_a5_load2" 3 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1") (define_insn_reservation "cortex_a5_store2" 0 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1") (define_insn_reservation "cortex_a5_load3" 4 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1+cortex_a5_branch,\ cortex_a5_ex1") (define_insn_reservation "cortex_a5_store3" 0 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1+cortex_a5_branch,\ cortex_a5_ex1") (define_insn_reservation "cortex_a5_load4" 5 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1+cortex_a5_branch,\ cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1") (define_insn_reservation "cortex_a5_store4" 0 (and (eq_attr "tune" "cortexa5") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1+cortex_a5_branch,\ cortex_a5_ex1+cortex_a5_branch, cortex_a5_ex1") diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md index b7e0c92..73f2b90 100644 --- a/gcc/config/arm/cortex-a53.md +++ b/gcc/config/arm/cortex-a53.md @@ -141,13 +141,13 @@ (define_insn_reservation "cortex_a53_load1" 4 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "load_byte,load1,load_acq")) + (eq_attr "type" "load_byte,load_4,load_acq")) "cortex_a53_slot_any+cortex_a53_ls_agen, cortex_a53_load") (define_insn_reservation "cortex_a53_store1" 2 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "store1,store_rel")) + (eq_attr "type" "store_4,store_rel")) "cortex_a53_slot_any+cortex_a53_ls_agen, cortex_a53_store") @@ -155,14 +155,14 @@ (define_insn_reservation "cortex_a53_load2" 4 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "cortex_a53_single_issue+cortex_a53_ls_agen, cortex_a53_load+cortex_a53_slot0, cortex_a53_load") (define_insn_reservation "cortex_a53_store2" 2 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "cortex_a53_slot_any+cortex_a53_ls_agen, cortex_a53_store") @@ -170,14 +170,14 @@ (define_insn_reservation "cortex_a53_load3plus" 6 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "cortex_a53_single_issue+cortex_a53_ls_agen, cortex_a53_load+cortex_a53_slot0, cortex_a53_load") (define_insn_reservation "cortex_a53_store3plus" 2 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "cortex_a53_slot_any+cortex_a53_ls_agen, cortex_a53_store+cortex_a53_slot0, cortex_a53_store") diff --git a/gcc/config/arm/cortex-a57.md b/gcc/config/arm/cortex-a57.md index fd30758..59919f9 100644 --- a/gcc/config/arm/cortex-a57.md +++ b/gcc/config/arm/cortex-a57.md @@ -357,25 +357,25 @@ ;; Loads of up to two words. (define_insn_reservation "cortex_a57_load1" 5 (and (eq_attr "tune" "cortexa57") - (eq_attr "type" "load_byte,load1,load2")) + (eq_attr "type" "load_byte,load_4,load_8")) "ca57_load_model") ;; Loads of three or four words. (define_insn_reservation "cortex_a57_load3" 5 (and (eq_attr "tune" "cortexa57") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "ca57_ls_issue*2,ca57_load_model") ;; Stores of up to two words. (define_insn_reservation "cortex_a57_store1" 0 (and (eq_attr "tune" "cortexa57") - (eq_attr "type" "store1,store2")) + (eq_attr "type" "store_4,store_8")) "ca57_store_model") ;; Stores of three or four words. (define_insn_reservation "cortex_a57_store3" 0 (and (eq_attr "tune" "cortexa57") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "ca57_ls_issue*2,ca57_store_model") ;; Advanced SIMD Unit - Integer Arithmetic Instructions. diff --git a/gcc/config/arm/cortex-a7.md b/gcc/config/arm/cortex-a7.md index acb9f1a..0dbe0a7 100644 --- a/gcc/config/arm/cortex-a7.md +++ b/gcc/config/arm/cortex-a7.md @@ -196,42 +196,42 @@ (define_insn_reservation "cortex_a7_load1" 2 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "cortex_a7_ex1") (define_insn_reservation "cortex_a7_store1" 0 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "cortex_a7_ex1") (define_insn_reservation "cortex_a7_load2" 2 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "cortex_a7_both") (define_insn_reservation "cortex_a7_store2" 0 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "cortex_a7_both") (define_insn_reservation "cortex_a7_load3" 3 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "cortex_a7_both, cortex_a7_ex1") (define_insn_reservation "cortex_a7_store3" 0 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "cortex_a7_both, cortex_a7_ex1") (define_insn_reservation "cortex_a7_load4" 3 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "cortex_a7_both, cortex_a7_both") (define_insn_reservation "cortex_a7_store4" 0 (and (eq_attr "tune" "cortexa7") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "cortex_a7_both, cortex_a7_both") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/cortex-a8.md b/gcc/config/arm/cortex-a8.md index 1fabb3c..ceec5be 100644 --- a/gcc/config/arm/cortex-a8.md +++ b/gcc/config/arm/cortex-a8.md @@ -198,7 +198,7 @@ ;; We assume 64-bit alignment for doubleword loads. (define_insn_reservation "cortex_a8_load1_2" 3 (and (eq_attr "tune" "cortexa8") - (eq_attr "type" "load1,load2,load_byte")) + (eq_attr "type" "load_4,load_8,load_byte")) "cortex_a8_load_store_1") (define_bypass 2 "cortex_a8_load1_2" @@ -221,7 +221,7 @@ ;; issued as two micro-ops. (define_insn_reservation "cortex_a8_load3_4" 5 (and (eq_attr "tune" "cortexa8") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "cortex_a8_load_store_2") (define_bypass 4 "cortex_a8_load3_4" @@ -238,12 +238,12 @@ (define_insn_reservation "cortex_a8_store1_2" 0 (and (eq_attr "tune" "cortexa8") - (eq_attr "type" "store1,store2")) + (eq_attr "type" "store_4,store_8")) "cortex_a8_load_store_1") (define_insn_reservation "cortex_a8_store3_4" 0 (and (eq_attr "tune" "cortexa8") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "cortex_a8_load_store_2") ;; An ALU instruction acting as a producer for a store instruction diff --git a/gcc/config/arm/cortex-a9.md b/gcc/config/arm/cortex-a9.md index 592a2bf..1140e18 100644 --- a/gcc/config/arm/cortex-a9.md +++ b/gcc/config/arm/cortex-a9.md @@ -107,7 +107,7 @@ cortex_a9_p1_e2 + cortex_a9_p0_e1 + cortex_a9_p1_e1") (define_insn_reservation "cortex_a9_load1_2" 4 (and (eq_attr "tune" "cortexa9") - (eq_attr "type" "load1, load2, load_byte, f_loads, f_loadd")) + (eq_attr "type" "load_4, load_8, load_byte, f_loads, f_loadd")) "cortex_a9_ls") ;; Loads multiples and store multiples can't be issued for 2 cycles in a @@ -116,12 +116,12 @@ cortex_a9_p1_e2 + cortex_a9_p0_e1 + cortex_a9_p1_e1") (define_insn_reservation "cortex_a9_load3_4" 5 (and (eq_attr "tune" "cortexa9") - (eq_attr "type" "load3, load4")) + (eq_attr "type" "load_12, load_16")) "cortex_a9_ls, cortex_a9_ls") (define_insn_reservation "cortex_a9_store1_2" 0 (and (eq_attr "tune" "cortexa9") - (eq_attr "type" "store1, store2, f_stores, f_stored")) + (eq_attr "type" "store_4, store_8, f_stores, f_stored")) "cortex_a9_ls") ;; Almost all our store multiples use an auto-increment @@ -130,7 +130,7 @@ cortex_a9_p1_e2 + cortex_a9_p0_e1 + cortex_a9_p1_e1") (define_insn_reservation "cortex_a9_store3_4" 0 (and (eq_attr "tune" "cortexa9") - (eq_attr "type" "store3, store4")) + (eq_attr "type" "store_12, store_16")) "cortex_a9_ls+(cortex_a9_p0_default | cortex_a9_p1_default), cortex_a9_ls") ;; We get 16*16 multiply / mac results in 3 cycles. diff --git a/gcc/config/arm/cortex-m4.md b/gcc/config/arm/cortex-m4.md index 9084729..123a2a0 100644 --- a/gcc/config/arm/cortex-m4.md +++ b/gcc/config/arm/cortex-m4.md @@ -50,51 +50,51 @@ ;; Byte, half-word and word load is two cycles. (define_insn_reservation "cortex_m4_load1" 2 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "cortex_m4_a, cortex_m4_b") ;; str rx, [ry, #imm] is always one cycle. (define_insn_reservation "cortex_m4_store1_1" 1 (and (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) (match_test "arm_address_offset_is_imm (insn)")) "cortex_m4_a") ;; Other byte, half-word and word load is two cycles. (define_insn_reservation "cortex_m4_store1_2" 2 (and (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) (not (match_test "arm_address_offset_is_imm (insn)"))) "cortex_m4_a*2") (define_insn_reservation "cortex_m4_load2" 3 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "cortex_m4_ex*3") (define_insn_reservation "cortex_m4_store2" 3 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "cortex_m4_ex*3") (define_insn_reservation "cortex_m4_load3" 4 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "cortex_m4_ex*4") (define_insn_reservation "cortex_m4_store3" 4 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "cortex_m4_ex*4") (define_insn_reservation "cortex_m4_load4" 5 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "cortex_m4_ex*5") (define_insn_reservation "cortex_m4_store4" 5 (and (eq_attr "tune" "cortexm4") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "cortex_m4_ex*5") (define_bypass 1 "cortex_m4_load1" diff --git a/gcc/config/arm/cortex-m7.md b/gcc/config/arm/cortex-m7.md index 218b26f..e07d7cd 100644 --- a/gcc/config/arm/cortex-m7.md +++ b/gcc/config/arm/cortex-m7.md @@ -93,33 +93,33 @@ ;; The load instructions. (define_insn_reservation "cortex_m7_load1" 2 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "load_byte, load1")) + (eq_attr "type" "load_byte, load_4")) "cm7_i0|cm7_i1,cm7_lsu") (define_insn_reservation "cortex_m7_load2" 2 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "cm7_all_units") (define_insn_reservation "cortex_m7_loadm" 2 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "cm7_all_units*2") ;; The store instructions. (define_insn_reservation "cortex_m7_store1" 0 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "cm7_i0|cm7_i1,cm7_lsu+cm7_wb") (define_insn_reservation "cortex_m7_store2" 0 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "cm7_all_units") (define_insn_reservation "cortex_m7_storem" 0 (and (eq_attr "tune" "cortexm7") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "cm7_all_units*2") ;; The FPU instructions. diff --git a/gcc/config/arm/cortex-r4.md b/gcc/config/arm/cortex-r4.md index 29ddcc1..bc65689 100644 --- a/gcc/config/arm/cortex-r4.md +++ b/gcc/config/arm/cortex-r4.md @@ -234,12 +234,12 @@ (define_insn_reservation "cortex_r4_load_1_2" 3 (and (eq_attr "tune_cortexr4" "yes") - (eq_attr "type" "load1,load2")) + (eq_attr "type" "load_4,load_8")) "cortex_r4_load_store") (define_insn_reservation "cortex_r4_load_3_4" 4 (and (eq_attr "tune_cortexr4" "yes") - (eq_attr "type" "load3,load4")) + (eq_attr "type" "load_12,load_16")) "cortex_r4_load_store_2") ;; If a producing load is followed by an instruction consuming only @@ -289,11 +289,11 @@ (define_insn_reservation "cortex_r4_store_1_2" 0 (and (eq_attr "tune_cortexr4" "yes") - (eq_attr "type" "store1,store2")) + (eq_attr "type" "store_4,store_8")) "cortex_r4_load_store") (define_insn_reservation "cortex_r4_store_3_4" 0 (and (eq_attr "tune_cortexr4" "yes") - (eq_attr "type" "store3,store4")) + (eq_attr "type" "store_12,store_16")) "cortex_r4_load_store_2") diff --git a/gcc/config/arm/exynos-m1.md b/gcc/config/arm/exynos-m1.md index 5d397cc..71622a1 100644 --- a/gcc/config/arm/exynos-m1.md +++ b/gcc/config/arm/exynos-m1.md @@ -432,25 +432,25 @@ ;; Loads of up to 2 words. (define_insn_reservation "exynos_m1_load" 4 (and (eq_attr "tune" "exynosm1") - (eq_attr "type" "load_byte, load1, load2")) + (eq_attr "type" "load_byte, load_4, load_8")) "em1_ld") ;; Loads of 3 or 4 words. (define_insn_reservation "exynos_m1_loadm" 6 (and (eq_attr "tune" "exynosm1") - (eq_attr "type" "load3, load4")) + (eq_attr "type" "load_12, load_16")) "(em1_ld * 3)") ;; Stores of up to 2 words. (define_insn_reservation "exynos_m1_store" 1 (and (eq_attr "tune" "exynosm1") - (eq_attr "type" "store1, store2")) + (eq_attr "type" "store_4, store_8")) "em1_st") ;; Stores of 3 or 4 words. (define_insn_reservation "exynos_m1_storem" 3 (and (eq_attr "tune" "exynosm1") - (eq_attr "type" "store3, store4")) + (eq_attr "type" "store_12, store_16")) "(em1_st * 3)") ;; Advanced SIMD Unit diff --git a/gcc/config/arm/fa526.md b/gcc/config/arm/fa526.md index 86f78e7..1cf63d6 100644 --- a/gcc/config/arm/fa526.md +++ b/gcc/config/arm/fa526.md @@ -108,42 +108,42 @@ (define_insn_reservation "526_load1_op" 3 (and (eq_attr "tune" "fa526") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "fa526_core") (define_insn_reservation "526_load2_op" 4 (and (eq_attr "tune" "fa526") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "fa526_core*2") (define_insn_reservation "526_load3_op" 5 (and (eq_attr "tune" "fa526") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "fa526_core*3") (define_insn_reservation "526_load4_op" 6 (and (eq_attr "tune" "fa526") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "fa526_core*4") (define_insn_reservation "526_store1_op" 0 (and (eq_attr "tune" "fa526") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "fa526_core") (define_insn_reservation "526_store2_op" 1 (and (eq_attr "tune" "fa526") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "fa526_core*2") (define_insn_reservation "526_store3_op" 2 (and (eq_attr "tune" "fa526") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "fa526_core*3") (define_insn_reservation "526_store4_op" 3 (and (eq_attr "tune" "fa526") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "fa526_core*4") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/fa606te.md b/gcc/config/arm/fa606te.md index 3fadbe1..d4b3e25 100644 --- a/gcc/config/arm/fa606te.md +++ b/gcc/config/arm/fa606te.md @@ -111,48 +111,48 @@ (define_insn_reservation "606te_load1_op" 2 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "fa606te_core") (define_insn_reservation "606te_load2_op" 3 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "fa606te_core*2") (define_insn_reservation "606te_load3_op" 4 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "load3")) + (eq_attr "type" "load_12")) "fa606te_core*3") (define_insn_reservation "606te_load4_op" 5 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "fa606te_core*4") (define_insn_reservation "606te_store1_op" 0 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "fa606te_core") (define_insn_reservation "606te_store2_op" 1 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "fa606te_core*2") (define_insn_reservation "606te_store3_op" 2 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "store3")) + (eq_attr "type" "store_12")) "fa606te_core*3") (define_insn_reservation "606te_store4_op" 3 (and (eq_attr "tune" "fa606te") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "fa606te_core*4") ;;(define_insn_reservation "606te_ldm_op" 9 ;; (and (eq_attr "tune" "fa606te") -;; (eq_attr "type" "load2,load3,load4,store2,store3,store4")) +;; (eq_attr "type" "load_8,load_12,load_16,store_8,store_12,store_16")) ;; "fa606te_core*7") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/fa626te.md b/gcc/config/arm/fa626te.md index 5fa895a..ca6096d 100644 --- a/gcc/config/arm/fa626te.md +++ b/gcc/config/arm/fa626te.md @@ -123,32 +123,32 @@ (define_insn_reservation "626te_load1_op" 3 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "fa626te_core") (define_insn_reservation "626te_load2_op" 4 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "load2,load3")) + (eq_attr "type" "load_8,load_12")) "fa626te_core*2") (define_insn_reservation "626te_load3_op" 5 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "fa626te_core*3") (define_insn_reservation "626te_store1_op" 0 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "fa626te_core") (define_insn_reservation "626te_store2_op" 1 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "store2,store3")) + (eq_attr "type" "store_8,store_12")) "fa626te_core*2") (define_insn_reservation "626te_store3_op" 2 (and (eq_attr "tune" "fa626,fa626te") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "fa626te_core*3") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/gcc/config/arm/fa726te.md b/gcc/config/arm/fa726te.md index 7437280..b06a6f5 100644 --- a/gcc/config/arm/fa726te.md +++ b/gcc/config/arm/fa726te.md @@ -144,13 +144,13 @@ (define_insn_reservation "726te_load1_op" 3 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "(fa726te_issue+fa726te_lsu_pipe_e+fa726te_lsu_pipe_w)\ | (fa726te_issue+fa726te_lsu1_pipe_e+fa726te_lsu1_pipe_w,fa726te_blockage)") (define_insn_reservation "726te_store1_op" 1 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "fa726te_blockage*2") ;; Load/Store Multiple blocks all pipelines in EX stages until WB. @@ -161,22 +161,22 @@ ;; the pipe 1 is stalled. (define_insn_reservation "726te_ldm2_op" 4 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "load2,load3")) + (eq_attr "type" "load_8,load_12")) "fa726te_blockage*4") (define_insn_reservation "726te_ldm3_op" 5 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "fa726te_blockage*5") (define_insn_reservation "726te_stm2_op" 2 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "store2,store3")) + (eq_attr "type" "store_8,store_12")) "fa726te_blockage*3") (define_insn_reservation "726te_stm3_op" 3 (and (eq_attr "tune" "fa726te") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "fa726te_blockage*4") (define_bypass 1 "726te_load1_op,726te_ldm2_op,726te_ldm3_op" "726te_store1_op,\ diff --git a/gcc/config/arm/fmp626.md b/gcc/config/arm/fmp626.md index 4225a46..2833920 100644 --- a/gcc/config/arm/fmp626.md +++ b/gcc/config/arm/fmp626.md @@ -115,32 +115,32 @@ (define_insn_reservation "mp626_load1_op" 5 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "load1,load_byte")) + (eq_attr "type" "load_4,load_byte")) "fmp626_core") (define_insn_reservation "mp626_load2_op" 6 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "load2,load3")) + (eq_attr "type" "load_8,load_12")) "fmp626_core*2") (define_insn_reservation "mp626_load3_op" 7 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "load4")) + (eq_attr "type" "load_16")) "fmp626_core*3") (define_insn_reservation "mp626_store1_op" 0 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "fmp626_core") (define_insn_reservation "mp626_store2_op" 1 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "store2,store3")) + (eq_attr "type" "store_8,store_12")) "fmp626_core*2") (define_insn_reservation "mp626_store3_op" 2 (and (eq_attr "tune" "fmp626") - (eq_attr "type" "store4")) + (eq_attr "type" "store_16")) "fmp626_core*3") (define_bypass 1 "mp626_load1_op,mp626_load2_op,mp626_load3_op" diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md index e25b819..ab5ae65 100644 --- a/gcc/config/arm/iwmmxt.md +++ b/gcc/config/arm/iwmmxt.md @@ -155,7 +155,7 @@ (const_int 8) (const_int 4))] (const_int 4))) - (set_attr "type" "*,*,*,load2,store2,*,*,*,*,*,f_mcrr,f_mrrc,\ + (set_attr "type" "*,*,*,load_8,store_8,*,*,*,*,*,f_mcrr,f_mrrc,\ ffarithd,f_loadd,f_stored") (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,*,*,*,*,*,*,1020,*") (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*")] @@ -188,7 +188,7 @@ default: gcc_unreachable (); }" - [(set_attr "type" "*,*,*,*,load1,store1,*,*,*,*,f_mcr,f_mrc,\ + [(set_attr "type" "*,*,*,*,load_4,store_4,*,*,*,*,f_mcr,f_mrc,\ fmov,f_loads,f_stores") (set_attr "length" "*,*,*,*,*, *,*,*, 16, *,*,*,*,*,*") (set_attr "pool_range" "*,*,*,*,4096, *,*,*,1024, *,*,*,*,1020,*") @@ -227,7 +227,7 @@ case 4: return \"tmcr%?\\t%0, %1\"; default: return \"tmrc%?\\t%0, %1\"; }" - [(set_attr "type" "*,*,load1,store1,*,*") + [(set_attr "type" "*,*,load_4,store_4,*,*") (set_attr "pool_range" "*,*,4096, *,*,*") (set_attr "neg_pool_range" "*,*,4084, *,*,*")] ) @@ -249,7 +249,7 @@ }" [(set_attr "predicable" "yes") (set_attr "length" "4, 4, 4,4,4,8, 8,8") - (set_attr "type" "wmmx_wmov,wmmx_wstr,wmmx_wldr,wmmx_tmrrc,wmmx_tmcrr,*,load1,store1") + (set_attr "type" "wmmx_wmov,wmmx_wstr,wmmx_wldr,wmmx_tmrrc,wmmx_tmcrr,*,load_4,store_4") (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")] ) diff --git a/gcc/config/arm/ldmstm.md b/gcc/config/arm/ldmstm.md index 303303e..01fbb55 100644 --- a/gcc/config/arm/ldmstm.md +++ b/gcc/config/arm/ldmstm.md @@ -36,7 +36,7 @@ (const_int 12))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "ldm%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -55,7 +55,7 @@ (const_int 12))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4" "ldmia\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "load4")]) + [(set_attr "type" "load_16")]) (define_insn "*ldm4_ia_update" [(match_parallel 0 "load_multiple_operation" @@ -74,7 +74,7 @@ (const_int 12))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 5" "ldmia%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -95,7 +95,7 @@ (const_int 12))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5" "ldmia\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "load4")]) + [(set_attr "type" "load_16")]) (define_insn "*stm4_" [(match_parallel 0 "store_multiple_operation" @@ -109,7 +109,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "stm%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -127,7 +127,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 5" "stmia%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -145,7 +145,7 @@ (match_operand:SI 4 "low_register_operand" ""))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5" "stmia\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "store4")]) + [(set_attr "type" "store_16")]) (define_insn "*ldm4_ib" [(match_parallel 0 "load_multiple_operation" @@ -163,7 +163,7 @@ (const_int 16))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "ldmib%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes")]) (define_insn "*ldm4_ib_update" @@ -184,7 +184,7 @@ (const_int 16))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 5" "ldmib%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes")]) (define_insn "*stm4_ib" @@ -199,7 +199,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "stmib%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes")]) (define_insn "*stm4_ib_update" @@ -216,7 +216,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 5" "stmib%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes")]) (define_insn "*ldm4_da" @@ -234,7 +234,7 @@ (mem:SI (match_dup 5)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "ldmda%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes")]) (define_insn "*ldm4_da_update" @@ -254,7 +254,7 @@ (mem:SI (match_dup 5)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 5" "ldmda%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes")]) (define_insn "*stm4_da" @@ -269,7 +269,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "stmda%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes")]) (define_insn "*stm4_da_update" @@ -286,7 +286,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 5" "stmda%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes")]) (define_insn "*ldm4_db" @@ -305,7 +305,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "ldmdb%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -327,7 +327,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 5" "ldmdb%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "load4") + [(set_attr "type" "load_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -343,7 +343,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "stmdb%?\t%5, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -361,7 +361,7 @@ (match_operand:SI 4 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 5" "stmdb%?\t%5!, {%1, %2, %3, %4}" - [(set_attr "type" "store4") + [(set_attr "type" "store_16") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -484,7 +484,7 @@ (const_int 8))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "ldm%?\t%4, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -500,7 +500,7 @@ (const_int 8))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3" "ldmia\t%4, {%1, %2, %3}" - [(set_attr "type" "load3")]) + [(set_attr "type" "load_12")]) (define_insn "*ldm3_ia_update" [(match_parallel 0 "load_multiple_operation" @@ -516,7 +516,7 @@ (const_int 8))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "ldmia%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -534,7 +534,7 @@ (const_int 8))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4" "ldmia\t%4!, {%1, %2, %3}" - [(set_attr "type" "load3")]) + [(set_attr "type" "load_12")]) (define_insn "*stm3_" [(match_parallel 0 "store_multiple_operation" @@ -546,7 +546,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "stm%?\t%4, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -562,7 +562,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "stmia%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -578,7 +578,7 @@ (match_operand:SI 3 "low_register_operand" ""))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4" "stmia\t%4!, {%1, %2, %3}" - [(set_attr "type" "store3")]) + [(set_attr "type" "store_12")]) (define_insn "*ldm3_ib" [(match_parallel 0 "load_multiple_operation" @@ -593,7 +593,7 @@ (const_int 12))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "ldmib%?\t%4, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes")]) (define_insn "*ldm3_ib_update" @@ -611,7 +611,7 @@ (const_int 12))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "ldmib%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes")]) (define_insn "*stm3_ib" @@ -624,7 +624,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "stmib%?\t%4, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes")]) (define_insn "*stm3_ib_update" @@ -639,7 +639,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "stmib%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes")]) (define_insn "*ldm3_da" @@ -654,7 +654,7 @@ (mem:SI (match_dup 4)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "ldmda%?\t%4, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes")]) (define_insn "*ldm3_da_update" @@ -671,7 +671,7 @@ (mem:SI (match_dup 4)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "ldmda%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes")]) (define_insn "*stm3_da" @@ -684,7 +684,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "stmda%?\t%4, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes")]) (define_insn "*stm3_da_update" @@ -699,7 +699,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 4" "stmda%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes")]) (define_insn "*ldm3_db" @@ -715,7 +715,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "ldmdb%?\t%4, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -734,7 +734,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "ldmdb%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "load3") + [(set_attr "type" "load_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -748,7 +748,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "stmdb%?\t%4, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -764,7 +764,7 @@ (match_operand:SI 3 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 4" "stmdb%?\t%4!, {%1, %2, %3}" - [(set_attr "type" "store3") + [(set_attr "type" "store_12") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -870,7 +870,7 @@ (const_int 4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 2" "ldm%?\t%3, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -883,7 +883,7 @@ (const_int 4))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 2" "ldmia\t%3, {%1, %2}" - [(set_attr "type" "load2")]) + [(set_attr "type" "load_8")]) (define_insn "*ldm2_ia_update" [(match_parallel 0 "load_multiple_operation" @@ -896,7 +896,7 @@ (const_int 4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "ldmia%?\t%3!, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -911,7 +911,7 @@ (const_int 4))))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3" "ldmia\t%3!, {%1, %2}" - [(set_attr "type" "load2")]) + [(set_attr "type" "load_8")]) (define_insn "*stm2_" [(match_parallel 0 "store_multiple_operation" @@ -921,7 +921,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 2" "stm%?\t%3, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -935,7 +935,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "stmia%?\t%3!, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -949,7 +949,7 @@ (match_operand:SI 2 "low_register_operand" ""))])] "TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3" "stmia\t%3!, {%1, %2}" - [(set_attr "type" "store2")]) + [(set_attr "type" "store_8")]) (define_insn "*ldm2_ib" [(match_parallel 0 "load_multiple_operation" @@ -961,7 +961,7 @@ (const_int 8))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 2" "ldmib%?\t%3, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes")]) (define_insn "*ldm2_ib_update" @@ -976,7 +976,7 @@ (const_int 8))))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "ldmib%?\t%3!, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes")]) (define_insn "*stm2_ib" @@ -987,7 +987,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 2" "stmib%?\t%3, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes")]) (define_insn "*stm2_ib_update" @@ -1000,7 +1000,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "stmib%?\t%3!, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes")]) (define_insn "*ldm2_da" @@ -1012,7 +1012,7 @@ (mem:SI (match_dup 3)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 2" "ldmda%?\t%3, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes")]) (define_insn "*ldm2_da_update" @@ -1026,7 +1026,7 @@ (mem:SI (match_dup 3)))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "ldmda%?\t%3!, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes")]) (define_insn "*stm2_da" @@ -1037,7 +1037,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 2" "stmda%?\t%3, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes")]) (define_insn "*stm2_da_update" @@ -1050,7 +1050,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_ARM && XVECLEN (operands[0], 0) == 3" "stmda%?\t%3!, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes")]) (define_insn "*ldm2_db" @@ -1063,7 +1063,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 2" "ldmdb%?\t%3, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -1079,7 +1079,7 @@ (const_int -4))))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "ldmdb%?\t%3!, {%1, %2}" - [(set_attr "type" "load2") + [(set_attr "type" "load_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -1091,7 +1091,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 2" "stmdb%?\t%3, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) @@ -1105,7 +1105,7 @@ (match_operand:SI 2 "arm_hard_general_register_operand" ""))])] "TARGET_32BIT && XVECLEN (operands[0], 0) == 3" "stmdb%?\t%3!, {%1, %2}" - [(set_attr "type" "store2") + [(set_attr "type" "store_8") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "no")]) diff --git a/gcc/config/arm/marvell-pj4.md b/gcc/config/arm/marvell-pj4.md index bed10f7..33e3432 100644 --- a/gcc/config/arm/marvell-pj4.md +++ b/gcc/config/arm/marvell-pj4.md @@ -138,31 +138,31 @@ (define_insn_reservation "pj4_ldr" 3 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "load_byte,load1")) + (eq_attr "type" "load_byte,load_4")) "pj4_is,pj4_alu1,nothing*2,pj4_cp") (define_insn_reservation "pj4_ldrd" 3 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "pj4_is,pj4_alu1,nothing*2,pj4_cpb") (define_insn_reservation "pj4_str" 1 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "pj4_is,pj4_alu1,nothing*2,pj4_cp") (define_insn_reservation "pj4_strd" 1 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "pj4_is,pj4_alu1,nothing*2,pj4_cpb") (define_insn_reservation "pj4_ldm" 4 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "load3,load4")) "pj4_isb,pj4_isb+pj4_alu1,pj4_alu1,nothing,pj4_cp,pj4_cp") + (eq_attr "type" "load_12,load_16")) "pj4_isb,pj4_isb+pj4_alu1,pj4_alu1,nothing,pj4_cp,pj4_cp") (define_insn_reservation "pj4_stm" 2 (and (eq_attr "tune" "marvell_pj4") - (eq_attr "type" "store3,store4")) "pj4_isb,pj4_isb+pj4_alu1,pj4_alu1,nothing,pj4_cp,pj4_cp") + (eq_attr "type" "store_12,store_16")) "pj4_isb,pj4_isb+pj4_alu1,pj4_alu1,nothing,pj4_cp,pj4_cp") ;; Loads forward at WR-stage to ALU pipes (define_bypass 2 "pj4_ldr,pj4_ldrd" "pj4_alu") diff --git a/gcc/config/arm/thumb1.md b/gcc/config/arm/thumb1.md index f162fc7..5d196a6 100644 --- a/gcc/config/arm/thumb1.md +++ b/gcc/config/arm/thumb1.md @@ -650,7 +650,7 @@ } }" [(set_attr "length" "4,4,6,6,2,2,6,4,4") - (set_attr "type" "multiple,multiple,multiple,multiple,load2,store2,load2,store2,multiple") + (set_attr "type" "multiple,multiple,multiple,multiple,load_8,store_8,load_8,store_8,multiple") (set_attr "arch" "t1,t1,t1,v8mb,t1,t1,t1,t1,t1") (set_attr "pool_range" "*,*,*,*,*,*,1018,*,*")] ) @@ -673,7 +673,7 @@ str\\t%1, %0 mov\\t%0, %1" [(set_attr "length" "2,2,4,4,4,2,2,2,2,2") - (set_attr "type" "mov_reg,mov_imm,mov_imm,multiple,multiple,load1,store1,load1,store1,mov_reg") + (set_attr "type" "mov_reg,mov_imm,mov_imm,multiple,multiple,load_4,store_4,load_4,store_4,mov_reg") (set_attr "pool_range" "*,*,*,*,*,*,*,1018,*,*") (set_attr "arch" "t1,t1,v8mb,t1,t1,t1,t1,t1,t1,t1") (set_attr "conds" "set,clob,nocond,*,*,nocond,nocond,nocond,nocond,nocond")]) @@ -789,7 +789,7 @@ return \"ldrh %0, %1\"; }" [(set_attr "length" "2,4,2,2,2,2,4") - (set_attr "type" "alus_imm,load1,store1,mov_reg,mov_reg,mov_imm,mov_imm") + (set_attr "type" "alus_imm,load_4,store_4,mov_reg,mov_reg,mov_imm,mov_imm") (set_attr "arch" "t1,t1,t1,t1,t1,t1,v8mb") (set_attr "conds" "clob,nocond,nocond,nocond,nocond,clob,nocond")]) @@ -824,7 +824,7 @@ mov\\t%0, %1 movs\\t%0, %1" [(set_attr "length" "2") - (set_attr "type" "alu_imm,load1,store1,mov_reg,mov_imm,mov_imm") + (set_attr "type" "alu_imm,load_4,store_4,mov_reg,mov_imm,mov_imm") (set_attr "pool_range" "*,32,*,*,*,*") (set_attr "conds" "clob,nocond,nocond,nocond,nocond,clob")]) @@ -860,7 +860,7 @@ } " [(set_attr "length" "2") - (set_attr "type" "mov_reg,load1,store1,mov_reg,mov_reg") + (set_attr "type" "mov_reg,load_4,store_4,mov_reg,mov_reg") (set_attr "pool_range" "*,1018,*,*,*") (set_attr "conds" "clob,nocond,nocond,nocond,nocond")]) ;;; ??? This should have alternatives for constants. @@ -879,7 +879,7 @@ mov\\t%0, %1 mov\\t%0, %1" [(set_attr "length" "2") - (set_attr "type" "alus_imm,load1,store1,load1,store1,mov_reg,mov_reg") + (set_attr "type" "alus_imm,load_4,store_4,load_4,store_4,mov_reg,mov_reg") (set_attr "pool_range" "*,*,*,1018,*,*,*") (set_attr "conds" "clob,nocond,nocond,nocond,nocond,nocond,nocond")] ) @@ -921,7 +921,7 @@ } " [(set_attr "length" "4,2,2,6,4,4") - (set_attr "type" "multiple,load2,store2,load2,store2,multiple") + (set_attr "type" "multiple,load_8,store_8,load_8,store_8,multiple") (set_attr "pool_range" "*,*,*,1018,*,*")] ) @@ -947,7 +947,7 @@ [(set_attr "length" "4") ; This isn't entirely accurate... It loads as well, but in terms of ; scheduling the following insn it is better to consider it as a store - (set_attr "type" "store3")] + (set_attr "type" "store_12")] ) (define_insn "movmem8b" @@ -966,7 +966,7 @@ [(set_attr "length" "4") ; This isn't entirely accurate... It loads as well, but in terms of ; scheduling the following insn it is better to consider it as a store - (set_attr "type" "store2")] + (set_attr "type" "store_8")] ) diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md index 2e7580f..b78c3d2 100644 --- a/gcc/config/arm/thumb2.md +++ b/gcc/config/arm/thumb2.md @@ -239,7 +239,7 @@ (mem:SI (post_inc:SI (reg:SI SP_REGNUM))))] "TARGET_THUMB2 && (reload_in_progress || reload_completed)" "pop\t{%0}" - [(set_attr "type" "load1") + [(set_attr "type" "load_4") (set_attr "length" "2") (set_attr "predicable" "yes")] ) @@ -265,7 +265,7 @@ ldr%?\\t%0, %1 str%?\\t%1, %0 str%?\\t%1, %0" - [(set_attr "type" "mov_reg,mov_imm,mov_imm,mvn_imm,mov_imm,load1,load1,store1,store1") + [(set_attr "type" "mov_reg,mov_imm,mov_imm,mvn_imm,mov_imm,load_4,load_4,store_4,store_4") (set_attr "length" "2,4,2,4,4,4,4,4,4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no,no,no") @@ -305,7 +305,7 @@ movw%?\\t%0, %L1\\t%@ movhi strh%?\\t%1, %0\\t%@ movhi ldrh%?\\t%0, %1\\t%@ movhi" - [(set_attr "type" "mov_reg,mov_imm,mov_imm,mov_imm,store1,load1") + [(set_attr "type" "mov_reg,mov_imm,mov_imm,mov_imm,store_4,load_4") (set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no,yes,no,no,no") (set_attr "length" "2,4,2,4,4,4") @@ -325,7 +325,7 @@ "TARGET_THUMB2 && INTVAL (operands[5]) == INTVAL (operands[2]) + 4" "strd\\t%3, %4, [%0, %2]!" - [(set_attr "type" "store2")] + [(set_attr "type" "store_8")] ) (define_insn "*thumb2_cmpsi_neg_shiftsi" diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md index b0b375c..c9f0835 100644 --- a/gcc/config/arm/types.md +++ b/gcc/config/arm/types.md @@ -84,11 +84,11 @@ ; fmul[d,s] double/single floating point multiply. ; fsqrt[d,s] double/single precision floating point square root. ; load_acq load-acquire. -; load_byte load byte(s) from memory to arm registers. -; load1 load 1 word from memory to arm registers. -; load2 load 2 words from memory to arm registers. -; load3 load 3 words from memory to arm registers. -; load4 load 4 words from memory to arm registers. +; load_byte load 1 byte from memory. +; load_4 load 4 bytes from memory. +; load_8 load 8 bytes from memory. +; load_12 load 12 bytes from memory. +; load_16 load 16 bytes from memory. ; logic_imm any logical instruction that doesn't have a shifted ; operand and has an immediate operand. ; logic_reg any logical instruction that doesn't have a shifted @@ -152,10 +152,10 @@ ; smusd signed dual multiply subtract. ; smusdx signed dual multiply subtract reverse. ; store_rel store-release. -; store1 store 1 word to memory from arm registers. -; store2 store 2 words to memory from arm registers. -; store3 store 3 words to memory from arm registers. -; store4 store 4 (or more) words to memory from arm registers. +; store_4 store 4 bytes to memory. +; store_8 store 8 bytes to memory. +; store_12 store 12 bytes to memory. +; store_16 store 16 bytes (or more) to memory. ; trap cause a trap in the kernel. ; udiv unsigned division. ; umaal unsigned multiply accumulate accumulate long. @@ -612,10 +612,10 @@ fsqrtd,\ load_acq,\ load_byte,\ - load1,\ - load2,\ - load3,\ - load4,\ + load_4,\ + load_8,\ + load_12,\ + load_16,\ logic_imm,\ logic_reg,\ logic_shift_imm,\ @@ -669,10 +669,10 @@ smusd,\ smusdx,\ store_rel,\ - store1,\ - store2,\ - store3,\ - store4,\ + store_4,\ + store_8,\ + store_12,\ + store_16,\ trap,\ udiv,\ umaal,\ diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md index d8f77e2..cb352d2 100644 --- a/gcc/config/arm/vfp.md +++ b/gcc/config/arm/vfp.md @@ -60,8 +60,8 @@ (const_string "mov_reg")) (const_string "mvn_imm") (const_string "mov_imm") - (const_string "store1") - (const_string "load1") + (const_string "store_4") + (const_string "load_4") (const_string "f_mcr") (const_string "f_mrc") (const_string "fmov")]) @@ -107,7 +107,7 @@ (set_attr "predicable_short_it" "yes, no, yes, no, no, no, no, no, no") (set_attr "type" - "mov_reg, mov_imm, mov_imm, mov_imm, store1, load1,\ + "mov_reg, mov_imm, mov_imm, mov_imm, store_4, load_4,\ f_mcr, f_mrc, fmov") (set_attr "arch" "*, *, *, v6t2, *, *, *, *, *") (set_attr "pool_range" "*, *, *, *, *, 4094, *, *, *") @@ -156,8 +156,8 @@ (const_string "mov_reg")) (const_string "mvn_imm") (const_string "mov_imm") - (const_string "store1") - (const_string "load1") + (const_string "store_4") + (const_string "load_4") (const_string "f_mcr") (const_string "f_mrc") (const_string "fmov")]) @@ -203,7 +203,7 @@ (set_attr "predicable_short_it" "yes, no, yes, no, no, no, no, no, no") (set_attr "type" - "mov_reg, mov_imm, mov_imm, mov_imm, store1, load1,\ + "mov_reg, mov_imm, mov_imm, mov_imm, store_4, load_4,\ f_mcr, f_mrc, fmov") (set_attr "arch" "*, *, *, v6t2, *, *, *, *, *") (set_attr "pool_range" "*, *, *, *, *, 4094, *, *, *") @@ -246,7 +246,7 @@ } " [(set_attr "predicable" "yes") - (set_attr "type" "mov_reg,mov_reg,mvn_imm,mov_imm,load1,store1, + (set_attr "type" "mov_reg,mov_reg,mvn_imm,mov_imm,load_4,store_4, f_mcr,f_mrc,fmov,f_loads,f_stores") (set_attr "pool_range" "*,*,*,*,4096,*,*,*,*,1020,*") (set_attr "neg_pool_range" "*,*,*,*,4084,*,*,*,*,1008,*")] @@ -294,7 +294,7 @@ " [(set_attr "predicable" "yes") (set_attr "predicable_short_it" "yes,no,yes,no,no,no,no,no,no,no,no,no,no,no") - (set_attr "type" "mov_reg,mov_reg,mov_reg,mvn_reg,mov_imm,load1,load1,store1,store1,f_mcr,f_mrc,fmov,f_loads,f_stores") + (set_attr "type" "mov_reg,mov_reg,mov_reg,mvn_reg,mov_imm,load_4,load_4,store_4,store_4,f_mcr,f_mrc,fmov,f_loads,f_stores") (set_attr "length" "2,4,2,4,4,4,4,4,4,4,4,4,4,4") (set_attr "pool_range" "*,*,*,*,*,1018,4094,*,*,*,*,*,1018,*") (set_attr "neg_pool_range" "*,*,*,*,*, 0, 0,*,*,*,*,*,1008,*")] @@ -338,7 +338,7 @@ gcc_unreachable (); } " - [(set_attr "type" "multiple,multiple,multiple,multiple,load2,load2,store2,f_mcrr,f_mrrc,ffarithd,f_loadd,f_stored") + [(set_attr "type" "multiple,multiple,multiple,multiple,load_8,load_8,store_8,f_mcrr,f_mrrc,ffarithd,f_loadd,f_stored") (set (attr "length") (cond [(eq_attr "alternative" "1,4,5,6") (const_int 8) (eq_attr "alternative" "2") (const_int 12) (eq_attr "alternative" "3") (const_int 16) @@ -386,7 +386,7 @@ gcc_unreachable (); } " - [(set_attr "type" "multiple,multiple,multiple,multiple,load2,load2,store2,f_mcrr,f_mrrc,ffarithd,f_loadd,f_stored") + [(set_attr "type" "multiple,multiple,multiple,multiple,load_8,load_8,store_8,f_mcrr,f_mrrc,ffarithd,f_loadd,f_stored") (set (attr "length") (cond [(eq_attr "alternative" "1") (const_int 8) (eq_attr "alternative" "2") (const_int 12) (eq_attr "alternative" "3") (const_int 16) @@ -461,7 +461,7 @@ no, no, no, no,\ no, no") (set_attr_alternative "type" - [(const_string "load1") (const_string "store1") + [(const_string "load_4") (const_string "store_4") (const_string "fmov") (const_string "mov_reg") (const_string "f_mcr") (const_string "f_mrc") (const_string "fconsts") (const_string "neon_load1_1reg") @@ -531,7 +531,7 @@ " [(set_attr "conds" "unconditional") (set_attr "type" "neon_load1_1reg,neon_store1_1reg,\ - load1,store1,fmov,mov_reg,f_mcr,f_mrc,multiple") + load_4,store_4,fmov,mov_reg,f_mcr,f_mrc,multiple") (set_attr "length" "4,4,4,4,4,4,4,4,8")] ) @@ -583,7 +583,7 @@ } " [(set_attr "conds" "unconditional") - (set_attr "type" "load1,store1,fmov,mov_reg,f_mcr,f_mrc,multiple") + (set_attr "type" "load_4,store_4,fmov,mov_reg,f_mcr,f_mrc,multiple") (set_attr "length" "4,4,4,4,4,4,8")] ) @@ -623,7 +623,7 @@ " [(set_attr "predicable" "yes") (set_attr "type" - "f_mcr,f_mrc,fconsts,f_loads,f_stores,load1,store1,fmov,mov_reg") + "f_mcr,f_mrc,fconsts,f_loads,f_stores,load_4,store_4,fmov,mov_reg") (set_attr "pool_range" "*,*,*,1020,*,4096,*,*,*") (set_attr "neg_pool_range" "*,*,*,1008,*,4080,*,*,*")] ) @@ -660,7 +660,7 @@ [(set_attr "predicable" "yes") (set_attr "predicable_short_it" "no") (set_attr "type" - "f_mcr,f_mrc,fconsts,f_loads,f_stores,load1,store1,fmov,mov_reg") + "f_mcr,f_mrc,fconsts,f_loads,f_stores,load_4,store_4,fmov,mov_reg") (set_attr "pool_range" "*,*,*,1018,*,4090,*,*,*") (set_attr "neg_pool_range" "*,*,*,1008,*,0,*,*,*")] ) @@ -704,7 +704,7 @@ } " [(set_attr "type" "f_mcrr,f_mrrc,fconstd,neon_move,f_loadd,f_stored,\ - load2,store2,ffarithd,multiple") + load_8,store_8,ffarithd,multiple") (set (attr "length") (cond [(eq_attr "alternative" "6,7,9") (const_int 8) (eq_attr "alternative" "8") (if_then_else @@ -753,7 +753,7 @@ } " [(set_attr "type" "f_mcrr,f_mrrc,fconstd,neon_move,f_loadd,\ - f_stored,load2,store2,ffarithd,multiple") + f_stored,load_8,store_8,ffarithd,multiple") (set (attr "length") (cond [(eq_attr "alternative" "6,7,9") (const_int 8) (eq_attr "alternative" "8") (if_then_else diff --git a/gcc/config/arm/xgene1.md b/gcc/config/arm/xgene1.md index 62a0732..7e70408 100644 --- a/gcc/config/arm/xgene1.md +++ b/gcc/config/arm/xgene1.md @@ -92,28 +92,28 @@ (define_insn_reservation "xgene1_load_pair" 6 (and (eq_attr "tune" "xgene1") - (eq_attr "type" "load2")) + (eq_attr "type" "load_8")) "xgene1_decodeIsolated") (define_insn_reservation "xgene1_store_pair" 2 (and (eq_attr "tune" "xgene1") - (eq_attr "type" "store2")) + (eq_attr "type" "store_8")) "xgene1_decodeIsolated") (define_insn_reservation "xgene1_fp_load1" 10 (and (eq_attr "tune" "xgene1") - (eq_attr "type" "load1") + (eq_attr "type" "load_4") (eq_attr "fp" "yes")) "xgene1_decode1op") (define_insn_reservation "xgene1_load1" 5 (and (eq_attr "tune" "xgene1") - (eq_attr "type" "load1")) + (eq_attr "type" "load_4")) "xgene1_decode1op") (define_insn_reservation "xgene1_store1" 2 (and (eq_attr "tune" "xgene1") - (eq_attr "type" "store1")) + (eq_attr "type" "store_4")) "xgene1_decode2op") (define_insn_reservation "xgene1_move" 1 --------------2.6.4.2.gae996d8--