From patchwork Mon Nov 21 05:37:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hurugalawadi, Naveen" X-Patchwork-Id: 83172 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1314539qge; Sun, 20 Nov 2016 21:37:52 -0800 (PST) X-Received: by 10.13.197.68 with SMTP id h65mr11923987ywd.84.1479706672713; Sun, 20 Nov 2016 21:37:52 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id x205si602672ybg.128.2016.11.20.21.37.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Nov 2016 21:37:52 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-442092-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-442092-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-442092-patch=linaro.org@gcc.gnu.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; q=dns; s=default; b=pMFQ+W/QEJQ+7tjF 8Gu6pvR3n7eQ61bJ1D8w4JpJxPFnOP8g/npcV/kAn9jjqNjB7G6EpOMq4s6xyQcJ GOvCCSYETLsPEFp2gB1hxXo3HSkV8Oze2zIJCUSICSQB4uh/aRNuWz7io0P0+aug fIJ8GFA9C4rA0NuAWHkqW6Haqbg= 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:from :to:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; s=default; bh=s4CklPcvsfXhTzWeAqjYeL D0NWA=; b=Rr25/9CXaUcvxcY2qreQFgw6uwYN6Eek9/Z9vHB8L5k3dEwb0SLJCI Rj5zedEpmpuIkURZzJXohky26wZ91LXCjQW77O0zPwDGJjJtCLWsY9hUtUKv+Gvz KdOhh6UZwMzyQMifeHLtw3wwOXgIa4Y8j8Rwi1rcSNnnmEAg0zh9Q= Received: (qmail 58942 invoked by alias); 21 Nov 2016 05:37:40 -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 58916 invoked by uid 89); 21 Nov 2016 05:37:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=no version=3.3.2 spammy=Hx-languages-length:2587, mtlsdialect, mtls-dialect, HX-HELO:sk:NAM02-S X-HELO: NAM02-SN1-obe.outbound.protection.outlook.com Received: from mail-sn1nam02on0053.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) (104.47.36.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 Nov 2016 05:37:28 +0000 Received: from CO2PR07MB2694.namprd07.prod.outlook.com (10.166.214.7) by CO2PR07MB2694.namprd07.prod.outlook.com (10.166.214.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.8; Mon, 21 Nov 2016 05:37:24 +0000 Received: from CO2PR07MB2694.namprd07.prod.outlook.com ([10.166.214.7]) by CO2PR07MB2694.namprd07.prod.outlook.com ([10.166.214.7]) with mapi id 15.01.0734.014; Mon, 21 Nov 2016 05:37:24 +0000 From: "Hurugalawadi, Naveen" To: kugan , "gcc-patches@gcc.gnu.org" CC: Marcus Shawcroft , Richard Earnshaw , Kyrill Tkachov Subject: Re: [PATCH] [AArch64] Fix PR78382 Date: Mon, 21 Nov 2016 05:37:23 +0000 Message-ID: References: , <8c62c0b9-93e0-2f47-0975-c80cecb76480@linaro.org> In-Reply-To: <8c62c0b9-93e0-2f47-0975-c80cecb76480@linaro.org> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Naveen.Hurugalawadi@cavium.com; x-microsoft-exchange-diagnostics: 1; CO2PR07MB2694; 7:v+J6Oh22e0Fbu33mPlNWThvt16Y4+jYdeC/7GYTpdgIM0weyDenuAGAXCVt6tUsZw70pJpwag1VKvSTSn0JAh0Hp3pAyYZsiAJkkavC9PHvkM1T82EDA6+x3fm8Cp+A5rKFB+wc0+szs7KTi/FTy7LDphyNpTUgVrEDNgqcBtCJNnw7ISn4THUPKYhhuy6CN9vmMs0nkXZy0YEsPDKZZF/IDsOIK2IWdpwvf47atBzgERTkdlJOFR3leYlg1miPsmjnQSyo7T0X11g7coKfmgvIKvfDeWnv0qPlMo7fJkiLW/8KggGMbTsO7/SF4dz2yKvpmXItsfaCE2beGDbY+zmtwXXafJL9hl13eqJNaLIk= x-ms-office365-filtering-correlation-id: 1737fe63-90b8-4c46-12ba-08d411d078e3 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CO2PR07MB2694; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(102415395)(6045199)(6040307)(6060326)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(6061324)(6072148); SRVR:CO2PR07MB2694; BCL:0; PCL:0; RULEID:; SRVR:CO2PR07MB2694; x-forefront-prvs: 01334458E5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(199003)(51914003)(189002)(77096005)(2900100001)(4326007)(2906002)(3660700001)(122556002)(92566002)(5890100001)(76576001)(102836003)(3846002)(87936001)(2501003)(6116002)(3280700002)(86362001)(9686002)(8676002)(99286002)(66066001)(81156014)(81166006)(189998001)(74316002)(6506003)(101416001)(105586002)(558084003)(8936002)(68736007)(106116001)(106356001)(2950100002)(97736004)(305945005)(38730400001)(7736002)(7846002)(5660300001)(76176999)(7696004)(99936001)(50986999)(5001770100001)(229853002)(54356999)(33656002); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR07MB2694; H:CO2PR07MB2694.namprd07.prod.outlook.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) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2016 05:37:23.6312 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR07MB2694 Hi Kugan, >> Why don't you use the mode of dest as done in other similar places. Like: Thanks for the pointer. Modified the patch as per your suggestion. Please find attached the modified patch and let me know your comments. Bootstrapped and regression tested on Thunderx. Thanks, Naveen diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index bd97c5b..4aea578 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -1374,10 +1374,14 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm, case SYMBOL_SMALL_TLSGD: { rtx_insn *insns; - rtx result = gen_rtx_REG (Pmode, R0_REGNUM); + machine_mode mode = GET_MODE (dest); + rtx result = gen_rtx_REG (mode, R0_REGNUM); start_sequence (); - aarch64_emit_call_insn (gen_tlsgd_small (result, imm)); + if (TARGET_ILP32) + aarch64_emit_call_insn (gen_tlsgd_small_si (result, imm)); + else + aarch64_emit_call_insn (gen_tlsgd_small_di (result, imm)); insns = get_insns (); end_sequence (); diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index a652a7c..4833c7f 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -5089,20 +5089,20 @@ ;; The TLS ABI specifically requires that the compiler does not schedule ;; instructions in the TLS stubs, in order to enable linker relaxation. ;; Therefore we treat the stubs as an atomic sequence. -(define_expand "tlsgd_small" +(define_expand "tlsgd_small_" [(parallel [(set (match_operand 0 "register_operand" "") (call (mem:DI (match_dup 2)) (const_int 1))) - (unspec:DI [(match_operand:DI 1 "aarch64_valid_symref" "")] UNSPEC_GOTSMALLTLS) + (unspec:DI [(match_operand:PTR 1 "aarch64_valid_symref" "")] UNSPEC_GOTSMALLTLS) (clobber (reg:DI LR_REGNUM))])] "" { operands[2] = aarch64_tls_get_addr (); }) -(define_insn "*tlsgd_small" +(define_insn "*tlsgd_small_" [(set (match_operand 0 "register_operand" "") (call (mem:DI (match_operand:DI 2 "" "")) (const_int 1))) - (unspec:DI [(match_operand:DI 1 "aarch64_valid_symref" "S")] UNSPEC_GOTSMALLTLS) + (unspec:DI [(match_operand:PTR 1 "aarch64_valid_symref" "S")] UNSPEC_GOTSMALLTLS) (clobber (reg:DI LR_REGNUM)) ] "" diff --git a/gcc/testsuite/gcc.target/aarch64/pr78382.c b/gcc/testsuite/gcc.target/aarch64/pr78382.c new file mode 100644 index 0000000..6c98e5e --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr78382.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -fpic -mabi=ilp32 -mtls-dialect=trad" } */ + +__thread int abc; +void +foo () +{ + int *p; + p = &abc; +}