From patchwork Thu Jan 4 22:59:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Steve Ellcey X-Patchwork-Id: 855845 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-470188-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="RyikX4BC"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zCNYy2JB3z9s82 for ; Fri, 5 Jan 2018 10:00:36 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:reply-to:to:date:content-type :mime-version:content-transfer-encoding; q=dns; s=default; b=fUj mZnVvXxm9QOd7FrtAYhPeaZMTE38scwUlxrtkCKBqN+WHducEHd1UjnDEDn4MMdn 1rB6JQRMzlVBAnaPGv7ofcoZPYylMf3gb2JM4QozBPKmB6jIz1lzAf7UiwzeG4cy 5DLd1QUyQeeNY+rhdxnsPxzEDhan42fp5rg1unVU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:subject:from:reply-to:to:date:content-type :mime-version:content-transfer-encoding; s=default; bh=eZhd8Mhlq ZZRb/N14EfDRKe3sFE=; b=RyikX4BCdgFDppGFfP/VtlydSmm4PDvaUTMAMgp8V eBXL/CEsd+oyHhNhRm9sXyXV75/fMqWnXoxx2CbDSMusbniyjDMr/MACh9UKAt5T qEOK9dAilAjSPjIV2k0EGmiH5KeKHrE9Q2ltLx0kEF1roNGzd6qy26u89rc2VSpW 34= Received: (qmail 95275 invoked by alias); 4 Jan 2018 23:00:28 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 95131 invoked by uid 89); 4 Jan 2018 23:00:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: NAM03-CO1-obe.outbound.protection.outlook.com Received: from mail-co1nam03on0061.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) (104.47.40.61) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 Jan 2018 23:00:04 +0000 Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by BY2PR0701MB2039.namprd07.prod.outlook.com (10.163.156.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 4 Jan 2018 23:00:01 +0000 Message-ID: <1515106798.18339.7.camel@cavium.com> Subject: [Patch][aarch64][PR target/83466] Fix SYMBOL_SMALL_TLSDESC address calculation in ILP32 mode From: Steve Ellcey Reply-To: sellcey@cavium.com To: gcc-patches , "james.greenhalgh" , "richard.earnshaw" , Marcus Shawcroft , Andreas Schwab Date: Thu, 04 Jan 2018 14:59:58 -0800 Mime-Version: 1.0 X-ClientProxiedBy: CY1PR07CA0018.namprd07.prod.outlook.com (10.166.202.28) To BY2PR0701MB2039.namprd07.prod.outlook.com (10.163.156.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6def2a76-a027-4ccf-f056-08d553c6e2bf X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060); SRVR:BY2PR0701MB2039; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2039; 3:iI4R3AHT9eTlg4QCrqe5bYg97YabCpWip51dwEu/DBumpK1lCs78IBTHGU1OMyXy+yugmEixnLFBtxBdTKw3KJKMGofmkxKQbsKfzoIGguDFgkPdDvjmykm7CILHv0cISRICiGjdJbFXqzgP3ReT4eWNa35Qf8K0lzS9H9xcgk7fuYyZ4XgBgC/ma4IUPpFSs1+QUqzRyl8DEI4uAZC2Ilyn4ZbalRcmgmorxVqWWuEiOADFI++7WegMz/0tEez0; 25:SfnuT3SX/5jfQbk/BOf3v3XKiLZF/m31XvYrxk5pXLqzpICASz2KSUJb9XmYGg4mIZqb7eH3VoHBUMajy48ba73vmRn3/rCnaOJTOB2ZYbm8bh6cAO/N7e8Rgc8qG845FeCxZZAL10h3NnejYlR5ULjm69ZFqz74Rp10uTsbXjsoqPeMFhC/k4DONQVbz0959bAzxSbjoSU7WeowxQ0Qg09DvP46SBAy//2u6o4xARcM6kkEZ217lbDIOk3NnVWc2qD3qzlfFLEpISZH92z82X2JKgLE6pUbBrpR3BPzMqpmSZQD32lROsZhzmpBvDEI9lJrqB3y7PNQARYrIbQRHg==; 31:h0wrR7o0CMOxsLMnCM0D/C9OVqxt0j+jQoqwbU8W7qiXxjtmQhRuyj/l+KouHomKqD0yhGedaZTseZo5f+AM9tyyJ0zQo9EmCYbbGdJVDa5J7TBca8pyfgo4LdVEoXd4zMPHh3sJbLdddSsXMiviUjS/XSNyYU1F0kAG8BC+X4+EIPgCiU8yviV44+piwDMQ2mfP+txMaPOItuM+dfB/VtXQBUCDBIDrz1T19xl+O2s= X-MS-TrafficTypeDiagnostic: BY2PR0701MB2039: X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2039; 20:JjCcaf0KFZDtso75/Fl8wyApzkn9SqYdOIb+jYwraKjmeh5RHmxKvFH54C2kx6AUvFqpj6KsSAl2pcX2+DBplM8xYvGFljEDikVyBo0NPt9UmLMWfB7TZXJ3pLgJRc4LY2asnbOheGu/6efiL/LkpeoTuSZkDC90f8P2iey+6UGefUGeFXoCintJNkhcxptb7/9b+OoIV+HFD0H939qYJb8JcsCJpCsRqr+hnaTBqo58e9bL5N5mZu2rvWpKGMjJqDhez2WtChMpZSK8/5SZFvlJ7pq0O0bvgNylBvPcsSjIlLGIrX49QrPQ/r4EKYNP2beJk+QDEA3xprPJjguE/TO+OBoZlZ5u7YbAC9EQCLYG4nogYWhy9Ir4DNMhXVe+HXMXAuWhYh0hvLaJEdn5F7iPEsiV85qlWhN0CmtE8iyUGD/Zc0tK+xs4jXN6pFgYkPGxJBAcefNuBgWCbYw5hFoP5sFI/sn/qnhuKU5iqCI6NzE9dP1QQxZ0CBbH+LZ8; 4:QZCmhUGGy9ly1kayJXYOSgmHZoMXva0FTJdFGiP1GmWVlAnj0/Ca5YKtuwFc3bYgE9vYD1/TzM3fqk3lMGivBTHeG9eyMo4nF2/JdvdC5gWU5oQgE3oZ0/Q+ehShrj9kXiFTi44Jh2Wb7llll/0U2rMHAL8E+t6/cEoEdeuDQEQKXGNZEpG0P4obvIOuBGU2UoaScSCIAcxJInAfBcED3F7COY0WsDkfUKmqRc3UlGv1xv0JI0WqjMXrx750RcE+UVCAdPrlt9KK+RCuOt+ghw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501075)(3002001)(10201501046)(93006095)(93001095)(6041268)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011); SRVR:BY2PR0701MB2039; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BY2PR0701MB2039; X-Forefront-PRVS: 054231DC40 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(366004)(396003)(39380400002)(376002)(377424004)(199004)(189003)(3846002)(25786009)(6116002)(66066001)(50466002)(7736002)(47776003)(305945005)(53936002)(316002)(8676002)(16526018)(53416004)(6486002)(386003)(59450400001)(72206003)(23676004)(6512007)(106356001)(81156014)(6506007)(6666003)(5660300001)(36756003)(81166006)(52116002)(97736004)(3450700001)(105586002)(110136005)(2870700001)(68736007)(8936002)(103116003)(2906002)(50226002)(43066004)(5820100001)(69596002)(478600001)(99106002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB2039; H:sellcey-dt.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BBY2PR0701MB2039=3B23=3A1s?= =?utf-8?q?ydv7qZydidV1yFaC8jjw2TPJQ+yH3OpZsXf4rWa/aJLm5nRcnRgGwvpI?= =?utf-8?q?ii7N4cmplWHNkd+9fldk2Q6F9Fmu7HswiPrO362iCic5ck6dh81mSyQi?= =?utf-8?q?TyE7ba+qjD7gm51jZx8pawzXusQjXhH3gtfaB6DoVuKM30fuG7MP2I51?= =?utf-8?q?xjmO97CvxgRoTEXHS3ANgGiJQrJO+fcT32MX58nWPEdJ5HDTdPG5rAzd?= =?utf-8?q?CqNznec7OKX26xtFGCAG4N5P8P1IHBB3yabLCix7JXElGpXcbyaUCXql?= =?utf-8?q?+1hCnPsaOI0I+Gl0UsrelJl6jnIvYQTZ+icujPCfmnsK1747K90R0UWu?= =?utf-8?q?YU1crgGJS/TPKcIv5MPyBSwO76chlz5CghHAKnuP4KAIddyKa3nmflyZ?= =?utf-8?q?40pVvqSMHLE3mC7nQ8PctK3+ORa+1x2AdOlL/D4xZY0Ky+PcvNIY6k9n?= =?utf-8?q?dkZBiBVHw7pMRW6KkBFLP2zKkn9QKXXXU36xd9cAhHXK6JjNBsVJvufU?= =?utf-8?q?GqbplfGjwYe6S8PF64cmwSizITYVg/4A6F8HP/JLD91QHrPejmvkC8zi?= =?utf-8?q?hcQ2tfkT4copsuEbJH/Cx+boIquISw8XgarhoqwQtMzbc2yFlnkU0qr5?= =?utf-8?q?scAsJfdFjyIwUr6rOCwG7VKubzvP7ig5vv4dPWEaQnUj6XR7UDNWB08a?= =?utf-8?q?p0DrkeVW4pxTJgE0MnGPtnzJRU2rYIN/ucLarrmOI34jYOtx0fCuGAa+?= =?utf-8?q?pgHaZoe6jmDeyJKJtTChe2Sg7itsz+0YgYcAH15avkyNN3/1XdlUg/Ud?= =?utf-8?q?VoJ2CwOaO1c8lovCkDy0qzCfRmf5TJdJNSEz6FhQ9+rZCYLNKUuRl+7i?= =?utf-8?q?X81wVUMieExRayhw6WRZqm8sE9o3H9MT2qj580VPcd4MzGim1jiBxgbU?= =?utf-8?q?bvkDaf0Zdsm5ayO7hhnbBSQY/fae0wyP8igiqpU4LFvebkwxDCsf8TYR?= =?utf-8?q?eHODHI7D8sKwdvaMoLaD/LvM+VbtK9BPSFNkd+jImD7jSMCQNFbScbsS?= =?utf-8?q?JgcFNWRxr4STKLsolwjzvuVP7iDuMdMOYjgeNbn5V1w0wqk06kTTeJde?= =?utf-8?q?kPfo63PcZFgrENOVRuWktWmFAUqELAlHxW4souDd5t2s3seHKUPkogQ8?= =?utf-8?q?GXl4aW04j0JIExdIEntPENGzV1wNtL96/v6wxsooSMf+rE8jFfEMpwjW?= =?utf-8?q?yN6ghTC8f+b6xQJBfUymaN9Pkxc0aa4Q/KVUJ4?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB2039; 6:1x+hGZXxjPwV5T7aaTrJ6LqxrbSQOUVk1i5x2IWCgMoMS7Scx9WKLjzMiN4ljr5/0vo7n3g1kMCyMnY6WF1Voa+DdkOXgfAeRqNKLrYaLmXc8liyvFo8nz6piRxUV0A7l8x3X3j9c81ehtYIX2BipPCmRZL97Z8KJNOOYJ/wMPbGsaTFgXp/3U1qT5PGQ4ADX9+WQgbKAS7390uwKGk6o0Um6lXUPuOOPERbROGEIZv767V9CuPykrsL6CdgqMbUeMZopIexodDNQtIh/VCL7Pp5ooAoD0W4o+9kPBhfKI22pjXkGaSmkeayMpLCvXvG7w6IQYVlU5s24i3+4PZFznoQdNBQ/e5EvrmHFuaHJuI=; 5:Y74/GItXb4j0ANC33BoQdBU8LBmp9gv5SAuNnNR25+JgGEyqeaaAxCnUGpkfeRRRAAiDKNj8yd63xievkU2TyvrJnjtXK4MQKDf+wrpABH6gKIWacy13tbpJw6jBdxjeGlB1RbenkIYjB9tkjDK7/yXbCzYNhf1lsWEjBMhKRyY=; 24:QiRNVD6ZZ/+JVVGtwAhUJDbrMWuZ1G4OboDa+qoOPRRaSG8YpmcTwHfvnLIGVQz9itgGopIbM/NY0Rg6XokdQzj0zwghZ0Sr/ePG5yC6gUo=; 7:+EAE163eao5/WmhB0II5B3Yq3ENFQQU44Dzeg7bKQLTAJcMvlkYGxgOxfXIMC3xuOtyRYwYpHzyT3p6O3+v188rCG+QSyOfxkyR9Lsay1NT6ww65nDHP4LT2vpYhy6rt1R4gGU1wMTH3JPTd4efkOnBuJxfOBaGXZ0g9vVHnEYbdej0XJBf0CVs71KXbXJHU/N7zOg2j23miZ/VWAXC74OO+qjMYs5Ibdd80/We3fDh/ip4BSpnHzgdUb7Cmfoao SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2018 23:00:01.1121 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6def2a76-a027-4ccf-f056-08d553c6e2bf X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB2039 This is a patch for PR target/83466, an ILP32 aarch64 bug.  I verified that it did not cause any regressions in the GCC testsuite and Andreas verified that it fixed the original failure that he reported.  The basic idea is to do the addition in ptr_mode (SImode in ILP32) instead of Pmode (DImode in both LP64 and ILP32 modes). OK to checkin? Steve Ellcey sellcey@cavium.com 2018-01-04  Steve Ellcey   PR target/83466 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Do address calculation in ptr_mode instead of Pmode. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index a189605..e60fd1c 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -1540,7 +1540,7 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,      case SYMBOL_SMALL_TLSDESC:        {   machine_mode mode = GET_MODE (dest); - rtx x0 = gen_rtx_REG (mode, R0_REGNUM); + rtx x0 = gen_rtx_REG (ptr_mode, R0_REGNUM);   rtx tp;     gcc_assert (mode == Pmode || mode == ptr_mode); @@ -1553,10 +1553,13 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,     emit_insn (gen_tlsdesc_small_di (imm));   tp = aarch64_load_tp (NULL);   - if (mode != Pmode) -   tp = gen_lowpart (mode, tp); + if (GET_MODE (tp) != ptr_mode) +   tp = gen_lowpart (ptr_mode, tp); + tp = gen_rtx_PLUS (ptr_mode, tp, x0); + if (mode != ptr_mode) +   tp = gen_rtx_ZERO_EXTEND (mode, tp); + emit_insn (gen_rtx_SET (dest, tp));   - emit_insn (gen_rtx_SET (dest, gen_rtx_PLUS (mode, tp, x0)));   if (REG_P (dest))     set_unique_reg_note (get_last_insn (), REG_EQUIV, imm);   return;