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 CB41D3858C29 for ; Fri, 5 Jan 2024 08:52:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CB41D3858C29 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 CB41D3858C29 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=1704444729; cv=none; b=oPTvT1Z4fZEHWLzqGANYgcsNHWbQyMMHEv9HPH5ftUjvfF384wYh3GcwlLqbHPsy8xKza55SHRks3EBaopEUJZavJNYuQ2OxJU/o7ROufEd02F/YfVzyO1vm+xUzPs/ZAxAZNCbwfNRccp6TfwwnMzignadR3SwcuhwO4Bu9N6w= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704444729; c=relaxed/simple; bh=bmq5W+rPvLvA2fGVgr3W8POdH1wolzJ4igq/EoY1SK4=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=QnEaUWJ2w0pRByVIjkm0FFfDeLVrq2s47CkDT0Y8VonfnUAMcJ3iTMOn5ntTuyJIr+Nk3cOggoJCQrHCzeWQCiIs7xu9fwvxB30BMEX1D8g81vXgYmOBBSYSujmK5dDZv/qUx0OUi75Vbwj+BFgfCYp4ObgmAc8IFHFKYqbUiD0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.20.4.107]) by gateway (Coremail) with SMTP id _____8CxKOouw5dlFUQCAA--.171S3; Fri, 05 Jan 2024 16:51:59 +0800 (CST) Received: from [10.20.4.107] (unknown [10.20.4.107]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Bx398tw5dlxSgDAA--.8504S3; Fri, 05 Jan 2024 16:51:57 +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: <42224c69-aacc-b50c-2d3f-8bf7e2427342@loongson.cn> Date: Fri, 5 Jan 2024 16:51:57 +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:AQAAf8Bx398tw5dlxSgDAA--.8504S3 X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj9xXoW7Xw45Cw4fCF1fZFWDAr1rZrc_yoWkJwc_uF yS9r1ruws5Ka93tr1Yqan8Za409rn8ury5tay5ZrZrC34UJrZ8CrW5G3sYvw1rGw1avF98 GrsxZF13Cry3uosvyTuYvTs0mTUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUj1kv1TuYvT s0mT0YCTnIWjqI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUI cSsGvfJTRUUUbaAYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20x vaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxS w2x7M28EF7xvwVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxV W8JVWxJwA2z4x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE 14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwCYjI0SjxkI62AI1c AE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMxCIbckI1I0E 14v26r1Y6r17MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4 CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1x MIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF 4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsG vfC2KfnxnUUI43ZEXa7IU1MKZJUUUUU== 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... > You mean to take the last add directive out separately?