From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id BC63C3858CDB for ; Wed, 25 Oct 2023 13:13:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BC63C3858CDB Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BC63C3858CDB Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698239586; cv=none; b=CEdN28DeQ2U+1gSwGiB8lAycehxEdoN/EEDdku+lpfzLLSiC0YvjE57ur71pVJWQHPxtRxvsyrt6j03VwiD41bG4/n4hsc9eiKhrBjrfOk9wG97n0qW440IF/3UUVh2YRSE9HUDQhvozRspPFuRAmZ+q1tVgnnA+k4//tFWRzlQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698239586; c=relaxed/simple; bh=ccZWHiMjEs3UiZUU7ltiTqiWvKD4N87/zutY26/Lfho=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=PeYv8PQAJOnklvef3ao9r0kOIVOihyR31+mY1A7kvqNitngSy5DDXQSpWHM8EbtVfh3qgOYHhlg4O9dKboNiDK+BK2hJJe0VeIGeBbdK6HVgdHir6bWdLd7Pfd7DGRtJ3p1quALCqeQ6M8FWuGmgViX286L5TBqkw/zu+P3iJMg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mail.loongson.cn ([114.242.206.163]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qvdgy-0003vg-2f for gcc-patches@gcc.gnu.org; Wed, 25 Oct 2023 09:13:04 -0400 Received: from loongson.cn (unknown [117.129.62.44]) by gateway (Coremail) with SMTP id _____8DxqOpCFDllrIo0AA--.1094S3; Wed, 25 Oct 2023 21:12:35 +0800 (CST) Received: from [192.168.2.108] (unknown [117.129.62.44]) by localhost.localdomain (Coremail) with SMTP id AQAAf8CxbS8_FDllCSQyAA--.40797S3; Wed, 25 Oct 2023 21:12:32 +0800 (CST) Subject: Re: [pushed][PATCH v1] LoongArch: Implement __builtin_thread_pointer for TLS. To: chenxiaolong , gcc-patches@gcc.gnu.org Cc: xry111@xry111.site, i@xen0n.name, xuchenghua@loongson.cn References: <20231024064014.18734-1-chenxiaolong@loongson.cn> From: chenglulu Message-ID: <64630aa6-2d20-56c1-750d-8a2e13c6f964@loongson.cn> Date: Wed, 25 Oct 2023 21:12:31 +0800 User-Agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20231024064014.18734-1-chenxiaolong@loongson.cn> Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8CxbS8_FDllCSQyAA--.40797S3 X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj93XoWxGry7JrWrKw18XF48JF15WrX_yoW5Xryfpa y7ua4Sgr48XF9rKr1fKas8Zr45Cr17WrW7ua47Jry0kw1Yqry2qF95try7XF1rAa1rXrWI vw4Fgw429ayjqabCm3ZEXasCq-sJn29KB7ZKAUJUUUU5529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1Y6r17McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07 AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj xVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r 1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU1QV y3UUUUU== Received-SPF: pass client-ip=114.242.206.163; envelope-from=chenglulu@loongson.cn; helo=mail.loongson.cn X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9,MIME_CHARSET_FARAWAY=2.45,NICE_REPLY_A=-3.339,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,MIME_CHARSET_FARAWAY,NICE_REPLY_A,SPF_FAIL,SPF_HELO_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Pushed to r14-4925. ÔÚ 2023/10/24 ÏÂÎç2:40, chenxiaolong дµÀ: > gcc/ChangeLog: > > * config/loongarch/loongarch.md (get_thread_pointer):Adds the > instruction template corresponding to the __builtin_thread_pointer > function. > * doc/extend.texi:Add the __builtin_thread_pointer function support > description to the documentation. > > gcc/testsuite/ChangeLog: > > * gcc.target/loongarch/builtin_thread_pointer.c: New test. > --- > gcc/config/loongarch/loongarch.md | 7 +++++++ > gcc/doc/extend.texi | 5 +++++ > .../gcc.target/loongarch/builtin_thread_pointer.c | 10 ++++++++++ > 3 files changed, 22 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c > > diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md > index 13473472171..4dd716e1941 100644 > --- a/gcc/config/loongarch/loongarch.md > +++ b/gcc/config/loongarch/loongarch.md > @@ -113,6 +113,7 @@ (define_c_enum "unspecv" [ > > (define_constants > [(RETURN_ADDR_REGNUM 1) > + (TP_REGNUM 2) > (T0_REGNUM 12) > (T1_REGNUM 13) > (S0_REGNUM 23) > @@ -3647,6 +3648,12 @@ (define_insn "@stack_tie" > [(set_attr "length" "0") > (set_attr "type" "ghost")]) > > +;; Named pattern for expanding thread pointer reference. > +(define_expand "get_thread_pointer" > + [(set (match_operand:P 0 "register_operand" "=r") > + (reg:P TP_REGNUM))] > + "HAVE_AS_TLS" > + {}) > > (define_split > [(match_operand 0 "small_data_pattern")] > diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi > index bf941e6b93a..9923a18bde9 100644 > --- a/gcc/doc/extend.texi > +++ b/gcc/doc/extend.texi > @@ -16749,6 +16749,11 @@ __float128 __builtin_nanq (void); > __float128 __builtin_nansq (void); > @end smallexample > > +Returns the value that is currently set in the @samp{tp} register. > +@smallexample > + void * __builtin_thread_pointer (void) > +@end smallexample > + > @node MIPS DSP Built-in Functions > @subsection MIPS DSP Built-in Functions > > diff --git a/gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c b/gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c > new file mode 100644 > index 00000000000..541e3b143bd > --- /dev/null > +++ b/gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c > @@ -0,0 +1,10 @@ > +/* { dg-do compile } */ > +/* { dg-require-effective-target tls_native } */ > +/* { dg-options "-O2" } */ > +/* { dg-final { scan-assembler "or\t\\\$r4,\\\$r2,\\\$r0" } } */ > + > +void * > +get_tp () > +{ > + return __builtin_thread_pointer (); > +}