From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 874F53858D1E for ; Fri, 5 Jan 2024 09:57:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 874F53858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 874F53858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704448658; cv=none; b=dW7hZG0aENVvoACocq2On9Oq44/U295q6aNZZacNdDZlbcVZLWxoMhiKeDZqccLLrxz9YRTkblbJUV7uw5PYUcG1HgqMA/sNe9mpl2yRBOFci/0lGuRoV3SIJFzFB6CfDkmjEbOrpPO8Bri1uWvKXNT97KBwVK7bqqb4wCpTbqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704448658; c=relaxed/simple; bh=bxK+cGAYgQC0EUrqBri/SwRYeHyRD4S2a7ZWYS2sk20=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=AOzg7h9PasEsr3AEvOrq7opAVMW/8Sp1aDDFV3M8bue8gyR1Y7J7YhvRMM6rHXK/jZl4ZmsIYTxiOsT/7JGsd5+KW/8Bn55JjDCSiyeyf66adqK+yHXYBiyf2+kp0HBK69/vYNznKqzJ4OzG9e5dm2+fkhAJ3TPmdE4OUbjmVsU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.20.4.107]) by gateway (Coremail) with SMTP id _____8CxrOiK0pdl4UkCAA--.203S3; Fri, 05 Jan 2024 17:57:31 +0800 (CST) Received: from [10.20.4.107] (unknown [10.20.4.107]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxjNyJ0pdlu0ADAA--.8391S3; Fri, 05 Jan 2024 17:57:29 +0800 (CST) Subject: Re: [PATCH v2 2/2] LoongArch: When the code model is extreme, the symbol address is obtained through macro instructions regardless of the value of -mexplicit-relocs. To: Xi Ruoyao , gcc-patches@gcc.gnu.org Cc: i@xen0n.name, xuchenghua@loongson.cn References: <20240105034021.30177-1-chenglulu@loongson.cn> <20240105034021.30177-3-chenglulu@loongson.cn> From: chenglulu Message-ID: <0fe0f370-a593-d060-d260-0e190986f833@loongson.cn> Date: Fri, 5 Jan 2024 17:57:29 +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: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8DxjNyJ0pdlu0ADAA--.8391S3 X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj93XoW7Xw45Cw4fCF1fZFWDAr1rZrc_yoW8Jr4rpF ZxuF4UWFZ7uwsa9w1jq3s7tF9xCayYqrW5Xrn3Ja4FyFZxJr1SqF4Fqrs09a4DWr4Du343 Xr4jvFy7ZF45ZrXCm3ZEXasCq-sJn29KB7ZKAUJUUUU5529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUvIb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1Y6r17McIj6I8E87Iv 67AKxVW8JVWxJwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07 AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj xVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r 4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07jb _-PUUUUU= X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00,BODY_8BITS,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: 在 2024/1/5 下午4:37, Xi Ruoyao 写道: > On Fri, 2024-01-05 at 11:40 +0800, Lulu Cheng wrote: >>  bool >>  loongarch_explicit_relocs_p (enum loongarch_symbol_type type) >>  { >> +  /* Instructions pcalau12i, addi.d, lu32i.d and lu52i.d must be adjancent >> +     so that the linker can infer the PC of pcalau12i to apply relocations >> +     to lu32i.d and lu52i.d.  Otherwise, the results would be incorrect if >> +     these four instructions are not in the same 4KiB page. >> +     Therefore, macro instructions are used when cmodel=extreme.  */ >> +  if (loongarch_symbol_extreme_p (type)) >> +    return false; > I think this is a bit of strange. With -mexplicit-relocs={auto,always} > we should still use explicit relocs, but coding all 4 instructions > altogether as > > "pcalau12i.d\t%1,%pc64_hi12(%2)\n\taddi.d\t%0,$r0,%pclo12(%2)\n\tlu32i.d\t%0,%pc64_lo20(%2)\n\tlu52i.d\t%0,%0,%pc64_hi12(%2)" > > Give me several hours trying to implement this... > I think there is no difference between macros and these instructions put together. If implement it in a split form, I think I can try it through TARGET_SCHED_MACRO_FUSION_PAIR_P