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 A884C3858C35 for ; Fri, 9 Feb 2024 08:08:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A884C3858C35 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 A884C3858C35 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=1707466089; cv=none; b=koJPq6Z9RrYZuJnvBrrIqBgZCRR3BnZ5MdMTFO3c+O4wrMYe5vecDHrez5A9n8L2uOLje0vwQdNxyL2ZZYU17ziBmFMFxM3fuf31arqH+EtxiXxqym96LnQQOzDCHv1fEH7DSmDcnXfgpz0Q0D/ID1xgU0FgJ/HeAcRVtbo877s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707466089; c=relaxed/simple; bh=eSz8WFObSdKc+hQq9UFGzG6JrITQWYEd0K1CCdOO+dc=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=c4pkYNXnjaJBXirSsfCR6XlnMDal5cCoNgTTBE/lhzxRYzYqE2CwFzpiyt+2WYlP9zFETYEcdzzqk7RA4l+gWIknyr82Qj0SIx1B0106bqKs3CBdm50hMwACRjOHFXdO0K5ehsAMQqrJZ4gVGJ1lUL0dRz5b9LaUMNi4bZyxaIo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1707466085; bh=eSz8WFObSdKc+hQq9UFGzG6JrITQWYEd0K1CCdOO+dc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=LPctxo+RPvkaPE7LQf3IDDV57lyhl5i2o08lxWNsDUlXIPujBy8DNXqKh4BtqBW7y ZtahZJ96TT3lBRDEE428xqVaJAoy7OOO8iNhHi8L9wWlGy0Vd6Ku9rzIB+Bw1ax1GB oTVXzCW4MLB9rphvJg4R2wO4BTnIADgT+wT8PmkM= Received: from [127.0.0.1] (unknown [IPv6:2001:470:683e::1]) (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 95DC5669E7; Fri, 9 Feb 2024 03:08:04 -0500 (EST) Message-ID: <74d30af4a8d6366e2b47496c32462243d00406a9.camel@xry111.site> Subject: Re: LoongArch: Backport r14-4674 "LoongArch: Delete macro definition ASM_OUTPUT_ALIGN_WITH_NOP."? From: Xi Ruoyao To: chenglulu Cc: gcc-patches@gcc.gnu.org, WANG Xuerui , Jiajie Chen , Chenghua Xu Date: Fri, 09 Feb 2024 16:08:02 +0800 In-Reply-To: <9b08cb2a-a193-3da9-9e28-50740898062e@loongson.cn> References: <9b08cb2a-a193-3da9-9e28-50740898062e@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.3 MIME-Version: 1.0 X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,BODY_8BITS,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, 2024-02-09 at 00:02 +0800, chenglulu wrote: >=20 > =E5=9C=A8 2024/2/7 =E4=B8=8A=E5=8D=8812:23, Xi Ruoyao =E5=86=99=E9=81=93: > > Hi Lulu, > >=20 > > I'm proposing to backport r14-4674 "LoongArch: Delete macro definition > > ASM_OUTPUT_ALIGN_WITH_NOP." to releases/gcc-12 and releases/gcc-13.=C2= =A0 The > > reasons: > >=20 > > 1. Strictly speaking, the old ASM_OUTPUT_ALIGN_WITH_NOP macro may cause > > a correctness issue.=C2=A0 For example, a developer may use -falign- > > functions=3D16 and then use the low 4 bits of a function pointer to enc= ode > > some metainfo.=C2=A0 Then ASM_OUTPUT_ALIGN_WITH_NOP causes the function= s not > > really aligned to a 16 bytes boundary, causing some breakage. > >=20 > > 2. With Binutils-2.42,=C2=A0 ASM_OUTPUT_ALIGN_WITH_NOP can cause illega= l > > opcodes.=C2=A0 For example: > >=20 > > .globl _start > > _start: > > .balign 32 > > nop > > nop > > nop > > addi.d $a0, $r0, 1 > > .balign 16,54525952,4 > > addi.d $a0, $a0, 1 > >=20 > > is assembled and linked to: > >=20 > > 0000000000000220 <_start>: > > =C2=A0 220: 03400000=C2=A0 nop > > =C2=A0 224: 03400000=C2=A0 nop > > =C2=A0 228: 03400000=C2=A0 nop > > =C2=A0 22c: 02c00404=C2=A0 li.d=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 $a0, 1 > > =C2=A0 230: 00000000=C2=A0 .word 0x00000000=C2=A0=C2=A0 # <=3D=3D OOPS= ! > > =C2=A0 234: 02c00484=C2=A0 addi.d=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $= a0, $a0, 1 > >=20 > > Arguably this is a bug in GAS (it should at least error out for the > > unsupported case where .balign 16,54525952,4 appears with -mrelax; I'd > > prefer it to support the 3-operand .align directive even -mrelax for > > reasons I've given in [1]).=C2=A0 But we can at least work it around by > > removing ASM_OUTPUT_ALIGN_WITH_NOP to allow using GCC 13.3 with Binutil= s > > 2.42. > >=20 > > 3. Without ASM_OUTPUT_ALIGN_WITH_NOP, GCC just outputs something like > > ".align 5" which works as expected since Binutils-2.38. > >=20 > > 4. GCC < 14 does not have a default setting of -falign-*, so changing > > this won't affect anyone who do not specify -falign-* explicitly. > >=20 > > [1]:https://github.com/loongson-community/discussions/issues/41#issueco= mment-1925872603 > >=20 > > Is it OK to backport r14-4674 into releases/gcc-12 and releases/gcc-13 > > then? > >=20 > Ok, I agree with you. >=20 > Thanks! Oops, with Binutils-2.41 GAS will fail to assemble some conditional branches if we do this :(. Not sure what to do (maybe backporting both this and a simplified version of PR112330 fix?) Let's reconsider after the holiday... --=20 Xi Ruoyao School of Aerospace Science and Technology, Xidian University