From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 8A50B3858C42 for ; Mon, 4 Dec 2023 03:29:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8A50B3858C42 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8A50B3858C42 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=89.208.246.23 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701660548; cv=none; b=sALeIx3NPcpBtcVBvP22HmdteRvcI2FObdjPp0dxOv7/h0isnkjH31Vw6XUzO1+BMcDOboO5VcdcS3RLccgyo2xnHmeJomUpeWNvr9CKWEvdMw2jJDTMVCacnUVGb/7VVVzXByLSlTkw4djneuh4F/m8XBIDp1DWdo27B3JgWt8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701660548; c=relaxed/simple; bh=BKjQ8GJptqNQeQT/5TCVlMKhEYZ0suhpMw0CENI4hRA=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=vrsI2CllMzc1OE1B7SpMBtpFLVy4aKf1u6qF8z8D7ok7eCjc3THNDPgMnm3YHUsS743Vspp+bbALTASmxvB2R+knK+HijylD9JQ8Zfa8TRS3ZfK1ReddRnBxEa8brGk65hoeVmcBXVNtnadNZAsTU++GfdHIL8IiZ+CbNMMep4M= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1701660544; bh=BKjQ8GJptqNQeQT/5TCVlMKhEYZ0suhpMw0CENI4hRA=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=eedZ+w8HR/XWooYaxS77+0+/rqpIq4ytdxcRiWd3V6dKq9NlZuzWM7X6m8Q0LhraP iqeReeHEwuWNyidyFt5PYAxcf7rU6vhI5SF/y0w0mYxkQLNXfyW59PZQICR3b27lIq zVTg/lHaBZDdC8opC78E45fvCAWqP/O1SKHx2oxk= Received: from [IPv6:240e:358:110a:1000:dc73:854d:832e:2] (unknown [IPv6:240e:358:110a:1000:dc73:854d:832e:2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 4883266BBD; Sun, 3 Dec 2023 22:28:58 -0500 (EST) Message-ID: Subject: Re: [PATCH] LoongArch: Add support for TLS Descriptors From: Xi Ruoyao To: mengqinggang , libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, cailulu@loongson.cn, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, wanglei@loongson.cn, hejinyang@loongson.cn Date: Mon, 04 Dec 2023 11:28:54 +0800 In-Reply-To: <20231201095759.1897728-1-mengqinggang@loongson.cn> References: <20231201095759.1897728-1-mengqinggang@loongson.cn> Autocrypt: addr=xry111@xry111.site; prefer-encrypt=mutual; keydata=mDMEYnkdPhYJKwYBBAHaRw8BAQdAsY+HvJs3EVKpwIu2gN89cQT/pnrbQtlvd6Yfq7egugi0HlhpIFJ1b3lhbyA8eHJ5MTExQHhyeTExMS5zaXRlPoiTBBMWCgA7FiEEkdD1djAfkk197dzorKrSDhnnEOMFAmJ5HT4CGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQrKrSDhnnEOPHFgD8D9vUToTd1MF5bng9uPJq5y3DfpcxDp+LD3joA3U2TmwA/jZtN9xLH7CGDHeClKZK/ZYELotWfJsqRcthOIGjsdAPuDgEYnkdPhIKKwYBBAGXVQEFAQEHQG+HnNiPZseiBkzYBHwq/nN638o0NPwgYwH70wlKMZhRAwEIB4h4BBgWCgAgFiEEkdD1djAfkk197dzorKrSDhnnEOMFAmJ5HT4CGwwACgkQrKrSDhnnEOPjXgD/euD64cxwqDIqckUaisT3VCst11RcnO5iRHm6meNIwj0BALLmWplyi7beKrOlqKfuZtCLbiAPywGfCNg8LOTt4iMD Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.2 MIME-Version: 1.0 X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,LIKELY_SPAM_FROM,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Fri, 2023-12-01 at 17:57 +0800, mengqinggang wrote: > +.Lslow: /* snip */ > +#ifdef USE_LASX > + xvst xr0, sp, 13*SZREG + 0*SZXREG > + xvst xr1, sp, 13*SZREG + 1*SZXREG > + xvst xr2, sp, 13*SZREG + 2*SZXREG > + xvst xr3, sp, 13*SZREG + 3*SZXREG > + xvst xr4, sp, 13*SZREG + 4*SZXREG > + xvst xr5, sp, 13*SZREG + 5*SZXREG > + xvst xr6, sp, 13*SZREG + 6*SZXREG > + xvst xr7, sp, 13*SZREG + 7*SZXREG > + xvst xr8, sp, 13*SZREG + 8*SZXREG > + xvst xr9, sp, 13*SZREG + 9*SZXREG > + xvst xr10, sp, 13*SZREG + 10*SZXREG > + xvst xr11, sp, 13*SZREG + 11*SZXREG > + xvst xr12, sp, 13*SZREG + 12*SZXREG > + xvst xr13, sp, 13*SZREG + 13*SZXREG > + xvst xr14, sp, 13*SZREG + 14*SZXREG > + xvst xr15, sp, 13*SZREG + 15*SZXREG > + xvst xr16, sp, 13*SZREG + 16*SZXREG > + xvst xr17, sp, 13*SZREG + 17*SZXREG > + xvst xr18, sp, 13*SZREG + 18*SZXREG > + xvst xr19, sp, 13*SZREG + 19*SZXREG > + xvst xr20, sp, 13*SZREG + 20*SZXREG > + xvst xr21, sp, 13*SZREG + 21*SZXREG > + xvst xr22, sp, 13*SZREG + 22*SZXREG > + xvst xr23, sp, 13*SZREG + 23*SZXREG > + xvst xr23, sp, 13*SZREG + 24*SZXREG > + xvst xr23, sp, 13*SZREG + 25*SZXREG > + xvst xr23, sp, 13*SZREG + 26*SZXREG > + xvst xr23, sp, 13*SZREG + 27*SZXREG > + xvst xr23, sp, 13*SZREG + 28*SZXREG > + xvst xr23, sp, 13*SZREG + 29*SZXREG > + xvst xr23, sp, 13*SZREG + 30*SZXREG > + xvst xr23, sp, 13*SZREG + 31*SZXREG The typo here should be obvious. > +#elif defined USE_LSX > + vst vr0, sp, 13*SZREG + 0*SZVREG > + vst vr1, sp, 13*SZREG + 1*SZVREG > + vst vr2, sp, 13*SZREG + 2*SZVREG > + vst vr3, sp, 13*SZREG + 3*SZVREG > + vst vr4, sp, 13*SZREG + 4*SZVREG > + vst vr5, sp, 13*SZREG + 5*SZVREG > + vst vr6, sp, 13*SZREG + 6*SZVREG > + vst vr7, sp, 13*SZREG + 7*SZVREG > + vst vr8, sp, 13*SZREG + 8*SZVREG > + vst vr9, sp, 13*SZREG + 9*SZVREG > + vst vr10, sp, 13*SZREG + 10*SZVREG > + vst vr11, sp, 13*SZREG + 11*SZVREG > + vst vr12, sp, 13*SZREG + 12*SZVREG > + vst vr13, sp, 13*SZREG + 13*SZVREG > + vst vr14, sp, 13*SZREG + 14*SZVREG > + vst vr15, sp, 13*SZREG + 15*SZVREG > + vst vr16, sp, 13*SZREG + 16*SZVREG > + vst vr17, sp, 13*SZREG + 17*SZVREG > + vst vr18, sp, 13*SZREG + 18*SZVREG > + vst vr19, sp, 13*SZREG + 19*SZVREG > + vst vr20, sp, 13*SZREG + 20*SZVREG > + vst vr21, sp, 13*SZREG + 21*SZVREG > + vst vr22, sp, 13*SZREG + 22*SZVREG > + vst vr23, sp, 13*SZREG + 23*SZVREG > + vst vr23, sp, 13*SZREG + 24*SZVREG > + vst vr23, sp, 13*SZREG + 25*SZVREG > + vst vr23, sp, 13*SZREG + 26*SZVREG > + vst vr23, sp, 13*SZREG + 27*SZVREG > + vst vr23, sp, 13*SZREG + 28*SZVREG > + vst vr23, sp, 13*SZREG + 29*SZVREG > + vst vr23, sp, 13*SZREG + 30*SZVREG > + vst vr23, sp, 13*SZREG + 31*SZVREG Likewise. > +#elif !defined __loongarch_soft_float > + FREG_S fa0, sp, 13*SZREG + 0*SZFREG > + FREG_S fa1, sp, 13*SZREG + 1*SZFREG > + FREG_S fa2, sp, 13*SZREG + 2*SZFREG > + FREG_S fa3, sp, 13*SZREG + 3*SZFREG > + FREG_S fa4, sp, 13*SZREG + 4*SZFREG > + FREG_S fa5, sp, 13*SZREG + 5*SZFREG > + FREG_S fa6, sp, 13*SZREG + 6*SZFREG > + FREG_S fa7, sp, 13*SZREG + 7*SZFREG > + FREG_S ft0, sp, 13*SZREG + 8*SZFREG > + FREG_S ft1, sp, 13*SZREG + 9*SZFREG > + FREG_S ft2, sp, 13*SZREG + 10*SZFREG > + FREG_S ft3, sp, 13*SZREG + 11*SZFREG > + FREG_S ft4, sp, 13*SZREG + 12*SZFREG > + FREG_S ft5, sp, 13*SZREG + 13*SZFREG > + FREG_S ft6, sp, 13*SZREG + 14*SZFREG > + FREG_S ft7, sp, 13*SZREG + 15*SZFREG > + FREG_S ft8, sp, 13*SZREG + 16*SZFREG > + FREG_S ft9, sp, 13*SZREG + 17*SZFREG > + FREG_S ft10, sp, 13*SZREG + 18*SZFREG > + FREG_S ft11, sp, 13*SZREG + 19*SZFREG > + FREG_S ft12, sp, 13*SZREG + 20*SZFREG > + FREG_S ft13, sp, 13*SZREG + 21*SZFREG > + FREG_S ft14, sp, 13*SZREG + 22*SZFREG > + FREG_S ft15, sp, 13*SZREG + 23*SZFREG > +#endif /* #ifdef USE_LASX=C2=A0 */ And generally this seems too expensive. Would it be better to compile libc-tls.c with -ffixed-{f0,f1,...,f31} so we can avoid saving and restoring FPR/VRs? --=20 Xi Ruoyao School of Aerospace Science and Technology, Xidian University