From patchwork Sat Jun 24 18:40:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112488 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6553910vqr; Sat, 24 Jun 2023 11:59:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ49ViU1j32v38tU3YP02RqLlbqHZnmpkmGYTD8RG7i2M7L6WaUdpzAUdQdOJEggYsqnZXQA X-Received: by 2002:a5e:d716:0:b0:77d:e7b6:fd2b with SMTP id v22-20020a5ed716000000b0077de7b6fd2bmr24877396iom.7.1687633145894; Sat, 24 Jun 2023 11:59:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687633145; cv=none; d=google.com; s=arc-20160816; b=jASAlxIonGe9a5dV3YhfuKK23x8RWg9Cg/oYNsSH7EOhVFMs4ANRFsXxkw1bTflHb8 K9zvGMlya2dxEF9SX2/19QdlsMgPAMsPCoDD/E+pZBxLokC+Ixm1WdE6zOHfilA/tenO hE57Tuai6IzDzPSW4XDwPPx/KatjCo0H8RmqFMmO2hZ0IzjxwywLuWvb91QSaO4M1MNd ecdBxBg0NB7Y0272/yaZx0EJAc5hLbf8idkqJ9hMfQaZgOLvyLx80xOGF0bSZj8fM0xP 9NYrxCrgurFRcdnNHq1wH6H/UhV6Z+VtxQjb1gaup4FM7pA2mx/yFpYjG096nXRXPJsD BkVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kFRo+kiT4MgRmDPPUMHK0nZcKxHLJF8GkcwJipyr5Cw=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=nNj4tWij2jVaKwbomzo8lkrhVtG8JDk7ZilpHPoHQR4o6HC36rId70YzcWzyUAN8ou INRBBP83cxUA/Ee9YJK2flEntC+9Te/5ga4zilYqkcWFubXUGo2DO6rqINeCGbz515aV SlunnLkG/gWVMVCiYlUaYTXS0PmMG/BSRKCUgRiPo7AkMVaHwoRxhmFkXXthq1Hmt9Dl e3RPKjWMKwoVMwEBrnDH05vHJUrxWncsTXZx56B8o5u+0D6xEhl2gem2waoPde8JQaAk KjBTIOftNAg/QYqPecKRH7r6FwgL04VH14E9ngu4guiW7j9c9/A5QJJ5k+Ny6r67NEWZ DgTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=rqoM2NoH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l12-20020a17090a850c00b00262dc53b110si579233pjn.84.2023.06.24.11.58.53; Sat, 24 Jun 2023 11:59:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=rqoM2NoH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233215AbjFXSlW (ORCPT + 99 others); Sat, 24 Jun 2023 14:41:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231997AbjFXSlP (ORCPT ); Sat, 24 Jun 2023 14:41:15 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E764510C2; Sat, 24 Jun 2023 11:41:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632073; bh=UGMkiVgsD7TmU72TjAy44icKsVdzIhU52JRB8B10DPk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rqoM2NoH9rlQ7eTfbgCTMVda9R/RGyl4KllU5Ib5Sg8IZgEbAmMkkbXkP8MOUR/UM fV2xsavONr28n+2bBrmQh5/CpbS9o4KMaJi5gO/byulQ0WUa1CjBhIVpr62wYUeO8j 3lSaIFhXBOtnMEt+GIjZ0S5163G0Jt2X07PvoUZY= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id E57366015B; Sun, 25 Jun 2023 02:41:12 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 1/9] LoongArch: Calculate various sizes in the linker script Date: Sun, 25 Jun 2023 02:40:47 +0800 Message-Id: <20230624184055.3000636-2-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769611613714680627?= X-GMAIL-MSGID: =?utf-8?q?1769611613714680627?= From: WANG Rui Taking the address delta between symbols in different sections is not supported by the LLVM IAS. Instead, do this in the linker script, so the same data can be properly referenced in assembly. Signed-off-by: WANG Rui Signed-off-by: WANG Xuerui --- arch/loongarch/kernel/efi-header.S | 6 +++--- arch/loongarch/kernel/head.S | 8 ++++---- arch/loongarch/kernel/vmlinux.lds.S | 7 +++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/arch/loongarch/kernel/efi-header.S b/arch/loongarch/kernel/efi-header.S index 8c1d229a2afa..5f23b85d78ca 100644 --- a/arch/loongarch/kernel/efi-header.S +++ b/arch/loongarch/kernel/efi-header.S @@ -24,7 +24,7 @@ .byte 0x02 /* MajorLinkerVersion */ .byte 0x14 /* MinorLinkerVersion */ .long __inittext_end - .Lefi_header_end /* SizeOfCode */ - .long _end - __initdata_begin /* SizeOfInitializedData */ + .long _kernel_vsize /* SizeOfInitializedData */ .long 0 /* SizeOfUninitializedData */ .long __efistub_efi_pe_entry - _head /* AddressOfEntryPoint */ .long .Lefi_header_end - _head /* BaseOfCode */ @@ -79,9 +79,9 @@ IMAGE_SCN_MEM_EXECUTE /* Characteristics */ .ascii ".data\0\0\0" - .long _end - __initdata_begin /* VirtualSize */ + .long _kernel_vsize /* VirtualSize */ .long __initdata_begin - _head /* VirtualAddress */ - .long _edata - __initdata_begin /* SizeOfRawData */ + .long _kernel_rsize /* SizeOfRawData */ .long __initdata_begin - _head /* PointerToRawData */ .long 0 /* PointerToRelocations */ diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S index 0d8180153ec0..53b883db0786 100644 --- a/arch/loongarch/kernel/head.S +++ b/arch/loongarch/kernel/head.S @@ -23,7 +23,7 @@ _head: .word MZ_MAGIC /* "MZ", MS-DOS header */ .org 0x8 .dword kernel_entry /* Kernel entry point */ - .dword _end - _text /* Kernel image effective size */ + .dword _kernel_asize /* Kernel image effective size */ .quad PHYS_LINK_KADDR /* Kernel image load offset from start of RAM */ .org 0x38 /* 0x20 ~ 0x37 reserved */ .long LINUX_PE_MAGIC @@ -32,9 +32,9 @@ _head: pe_header: __EFI_PE_HEADER -SYM_DATA(kernel_asize, .long _end - _text); -SYM_DATA(kernel_fsize, .long _edata - _text); -SYM_DATA(kernel_offset, .long kernel_offset - _text); +SYM_DATA(kernel_asize, .long _kernel_asize); +SYM_DATA(kernel_fsize, .long _kernel_fsize); +SYM_DATA(kernel_offset, .long _kernel_offset); #endif diff --git a/arch/loongarch/kernel/vmlinux.lds.S b/arch/loongarch/kernel/vmlinux.lds.S index 0c7b041be9d8..79f238df029e 100644 --- a/arch/loongarch/kernel/vmlinux.lds.S +++ b/arch/loongarch/kernel/vmlinux.lds.S @@ -136,6 +136,13 @@ SECTIONS DWARF_DEBUG ELF_DETAILS + /* header symbols */ + _kernel_asize = _end - _text; + _kernel_fsize = _edata - _text; + _kernel_offset = kernel_offset - _text; + _kernel_vsize = _end - __initdata_begin; + _kernel_rsize = _edata - __initdata_begin; + .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) From patchwork Sat Jun 24 18:40:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112483 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6548709vqr; Sat, 24 Jun 2023 11:43:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6wml5Tvwy/OJPWQZCiCT8PJTCYqIGD24q7Becas/KFDaFhiHW309vwYpQQTijbdLY3eoa0 X-Received: by 2002:a17:902:ea02:b0:1b6:6b03:10e7 with SMTP id s2-20020a170902ea0200b001b66b0310e7mr3467885plg.5.1687632202134; Sat, 24 Jun 2023 11:43:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687632202; cv=none; d=google.com; s=arc-20160816; b=O4r4+JTeqRgnJ5cRwg+C1YnqQT1rQlVRG34IoOn78P2C2m3S0Jswzd3b0NbZ2ap7no 2mlf7fNhsf+E8XRriK6eyyhQg1Tw3XqpoKsz2h4ziztYdMYaaMak2euQGNg1TEfWnJz2 VX+0Iee/U6dn4kxJWezzbPPEyr619muRe3OesC14c7fWkApB7/Ra4woSNLs3y/LW8hqd bjt7OrcmGhoa6XelsVKTjKXh7ouCNJk9JDlF4kgYtm9MtErUiDV8JRAladYC7zHVTIeb lj+aXTuonn/usdYvOStKoQUim5Spq5ISdqErBKkbuD3i9BImNm45I/dtzv6W4hKKHAzR ISZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=pw/aO+zjIDQHPXZ7UrwBB2yvJLJSGY/XUQtK2SgNxyc=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=wNR11smEctOGofmGHPLewkqo6ikORTS/3iFGJM8LKjp7i1yjclThbFLPJinSRslNfJ 0lXAHsCVWkBR7N3DrbzR078tMz98j4zKZm3Y5zmJpdF0pQ0bZ8ZZLt8e7jNIgVMFuhPL fBAYlH6H3ngUVIGScCIXw4cDCH8u/eh2YK8TK40QPXIaO1w04p/o4xbBJRFcAbBiojFQ NOi2GqIEbsn+LD9BcE05/qoLhnZeX684W3In3xtHhsUCr7lvQscR74w9kiDlPwem8h/F rtj/itpv80oSbu3JMjKRn1+du7kY0CQvXvNNLMKP06Js2h4LqqbynJdslGPp1FLyudRa uSBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=W0FowH2h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x10-20020a1709028eca00b001ac84f87b0fsi1657961plo.339.2023.06.24.11.43.09; Sat, 24 Jun 2023 11:43:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=W0FowH2h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233231AbjFXSl2 (ORCPT + 99 others); Sat, 24 Jun 2023 14:41:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233209AbjFXSlT (ORCPT ); Sat, 24 Jun 2023 14:41:19 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05736E6E; Sat, 24 Jun 2023 11:41:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632077; bh=/Ae3yGesaN7INKQfcIHyYeenAVct9PlZ6PKdEfJO/pk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W0FowH2hBnntaEvJepg6vWOVJdazENduLKVu8dJOy/eSMAZNaUP9/lQSUv5221dNg Jod9FOdXsSeZj652qWQ8vbDTfjfX4sJG8wOS8QOqvr4sKcqG0kJRvddbfT3uuLYh08 mX21padNCBhsaAnIyXaBsQtlkk9E1ZDKflSQUZ5M= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 824DE6015C; Sun, 25 Jun 2023 02:41:17 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 2/9] LoongArch: extable: Also recognize ABI names of registers Date: Sun, 25 Jun 2023 02:40:48 +0800 Message-Id: <20230624184055.3000636-3-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769610623898817058?= X-GMAIL-MSGID: =?utf-8?q?1769610623898817058?= From: WANG Rui When the kernel is compiled with LLVM, the register names being handled during exception fixup building are ABI names instead of bare $rNN style. Add mapping for the ABI names for LLVM compatibility. Signed-off-by: WANG Rui Signed-off-by: WANG Xuerui --- arch/loongarch/include/asm/gpr-num.h | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/loongarch/include/asm/gpr-num.h b/arch/loongarch/include/asm/gpr-num.h index e0941af20c7e..996038da806d 100644 --- a/arch/loongarch/include/asm/gpr-num.h +++ b/arch/loongarch/include/asm/gpr-num.h @@ -9,6 +9,22 @@ .equ .L__gpr_num_$r\num, \num .endr + /* ABI names of registers */ + .equ .L__gpr_num_$ra, 1 + .equ .L__gpr_num_$tp, 2 + .equ .L__gpr_num_$sp, 3 + .irp num,0,1,2,3,4,5,6,7 + .equ .L__gpr_num_$a\num, 4 + \num + .endr + .irp num,0,1,2,3,4,5,6,7,8 + .equ .L__gpr_num_$t\num, 12 + \num + .endr + .equ .L__gpr_num_$s9, 22 + .equ .L__gpr_num_$fp, 22 + .irp num,0,1,2,3,4,5,6,7,8 + .equ .L__gpr_num_$s\num, 23 + \num + .endr + #else /* __ASSEMBLY__ */ #define __DEFINE_ASM_GPR_NUMS \ @@ -16,6 +32,20 @@ " .irp num,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31\n" \ " .equ .L__gpr_num_$r\\num, \\num\n" \ " .endr\n" \ +" .equ .L__gpr_num_$ra, 1\n" \ +" .equ .L__gpr_num_$tp, 2\n" \ +" .equ .L__gpr_num_$sp, 3\n" \ +" .irp num,0,1,2,3,4,5,6,7\n" \ +" .equ .L__gpr_num_$a\\num, 4 + \\num\n" \ +" .endr\n" \ +" .irp num,0,1,2,3,4,5,6,7,8\n" \ +" .equ .L__gpr_num_$t\\num, 12 + \\num\n" \ +" .endr\n" \ +" .equ .L__gpr_num_$s9, 22\n" \ +" .equ .L__gpr_num_$fp, 22\n" \ +" .irp num,0,1,2,3,4,5,6,7,8\n" \ +" .equ .L__gpr_num_$s\\num, 23 + \\num\n" \ +" .endr\n" \ #endif /* __ASSEMBLY__ */ From patchwork Sat Jun 24 18:40:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112484 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6548718vqr; Sat, 24 Jun 2023 11:43:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5mVW4iMsBxTBb29nSxG3U+U8oIeqjbsAl4u8x24e3SCV2AoQQZNh7Cqkt3guGTiyq9TvSk X-Received: by 2002:a05:6a21:1515:b0:11c:fc27:cda4 with SMTP id nq21-20020a056a21151500b0011cfc27cda4mr24806778pzb.11.1687632205020; Sat, 24 Jun 2023 11:43:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687632205; cv=none; d=google.com; s=arc-20160816; b=YB41+VTGHrtsC3Ta1/cb+Fh2Iry8eiYZE/8R4pfgI36PKDt8R1UvAwU1Oz9Uas8CWv KfcnoWt6JqUYOh+0QATXIwKWYYWM2dTwX17thcvKZE5TmKjBEsRrrGgOiQ+M18GhfqLE QIhhl8jIYHNsZ0ydV+eI6LpInFIciXW5gczyfcUjBQe+PiXdE2U/skTR9m6ebCR1jD6B Fdq9XIqcI0IN1ZP30pD0s9umJhCKfH3CRyTE1ecrJKsqmYli/CCtG8ZfeBeG+/7noGYm Boa64ZOiAfrNfhPWHIzJL46LzZ7am9y7YD+mJ2kM0jCmyPP1IUS4ZQw4aAFc4PH7aYw4 Ip4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=BNOa6KUqmUx9uB6fR2YZQjaDTT63knseKFi1dIqAvjM=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=esshutj6MzzYuEImz2RcUpb14mpMGQu7fV7PmvOuis1exiw468Z9tTl8JrVvvBSx0x R5zYKvCvgHm5FCgeymPypD9vUEsQtUTVA4Q4maP+z90wd+xdHrc+9cnljRTrLgNO4y+w CLWHHHgBd4soBhSMToQ46yfHd+PxCSE0y+r8ettSIBGo9kfG0k7vsfykYpTRxu+sYKig L+tUx6ecsmKUIDoUFdw+jJqhVQKUUaH2lHd56SYp5xYnKgF5XZ86Axt9x/CL700bpdh4 3ulkKQEgj3/gUy9cZC2mhouNAhEWpeheGgcr1RaZRe4Y4eAnwB7EXiF8t5pilwldg/Oy TIfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=OQeSqC3s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f6-20020a631f06000000b0054fcdcbf4a3si2095291pgf.142.2023.06.24.11.43.13; Sat, 24 Jun 2023 11:43:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=OQeSqC3s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233249AbjFXSlg (ORCPT + 99 others); Sat, 24 Jun 2023 14:41:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233221AbjFXSlY (ORCPT ); Sat, 24 Jun 2023 14:41:24 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 075321BE2; Sat, 24 Jun 2023 11:41:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632081; bh=NOCcPZczdsomiPtC0nBfEgK1XfX0lPqE5Cxg6R5R4g4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OQeSqC3sECHenzvybqjfuRyAjSaCo0e490rGBUFKJVUIsvUJgJ75ENipcEAK37XG7 kcHtY9xJSkKDWLvQDn/iikcGaEl6hlYDVEBG4TMnbVAPKcaU6hPfOQcQOig9hEDxzE FmZ2X11ZoGX3vWCwC3vDT09u2giwPbj47Yl9d6IM= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 89CD9600B5; Sun, 25 Jun 2023 02:41:21 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 3/9] LoongArch: Prepare for assemblers with proper FCSR class support Date: Sun, 25 Jun 2023 02:40:49 +0800 Message-Id: <20230624184055.3000636-4-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769610626865016651?= X-GMAIL-MSGID: =?utf-8?q?1769610626865016651?= From: WANG Xuerui The GNU assembler (as of 2.40) mis-treats FCSR operands as GPRs, but the LLVM IAS does not. Probe for this and refer to FCSRs as "$fcsrNN" if support is present. Signed-off-by: WANG Xuerui --- arch/loongarch/Kconfig | 3 +++ arch/loongarch/include/asm/fpregdef.h | 7 +++++++ arch/loongarch/include/asm/loongarch.h | 9 ++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index 743d87655742..ac3564935281 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -242,6 +242,9 @@ config SCHED_OMIT_FRAME_POINTER config AS_HAS_EXPLICIT_RELOCS def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x)) +config AS_HAS_FCSR_CLASS + def_bool $(as-instr,x:movfcsr2gr \$t0$(comma)\$fcsr0) + config CC_HAS_LSX_EXTENSION def_bool $(cc-option,-mlsx) diff --git a/arch/loongarch/include/asm/fpregdef.h b/arch/loongarch/include/asm/fpregdef.h index b6be527831dd..3eb7ff9e1d8e 100644 --- a/arch/loongarch/include/asm/fpregdef.h +++ b/arch/loongarch/include/asm/fpregdef.h @@ -40,6 +40,12 @@ #define fs6 $f30 #define fs7 $f31 +#ifdef CONFIG_AS_HAS_FCSR_CLASS +#define fcsr0 $fcsr0 +#define fcsr1 $fcsr1 +#define fcsr2 $fcsr2 +#define fcsr3 $fcsr3 +#else /* * Current binutils expects *GPRs* at FCSR position for the FCSR * operation instructions, so define aliases for those used. @@ -48,5 +54,6 @@ #define fcsr1 $r1 #define fcsr2 $r2 #define fcsr3 $r3 +#endif #endif /* _ASM_FPREGDEF_H */ diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h index ac83e60c60d1..ff4482fd8ad7 100644 --- a/arch/loongarch/include/asm/loongarch.h +++ b/arch/loongarch/include/asm/loongarch.h @@ -1445,11 +1445,18 @@ __BUILD_CSR_OP(tlbidx) #define EXCCODE_INT_START 64 #define EXCCODE_INT_END (EXCCODE_INT_START + EXCCODE_INT_NUM - 1) -/* FPU register names */ +/* FPU Status Register Names */ +#ifdef CONFIG_AS_HAS_FCSR_CLASS +#define LOONGARCH_FCSR0 $fcsr0 +#define LOONGARCH_FCSR1 $fcsr1 +#define LOONGARCH_FCSR2 $fcsr2 +#define LOONGARCH_FCSR3 $fcsr3 +#else #define LOONGARCH_FCSR0 $r0 #define LOONGARCH_FCSR1 $r1 #define LOONGARCH_FCSR2 $r2 #define LOONGARCH_FCSR3 $r3 +#endif /* FPU Status Register Values */ #define FPU_CSR_RSVD 0xe0e0fce0 From patchwork Sat Jun 24 18:40:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112485 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6548776vqr; Sat, 24 Jun 2023 11:43:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ53YJx+lrk5bSp6ZyNxH8RV34BykJX/c+MFOuow/RQ0Eg42irLn4Kk4sLocNh1+1q1d4/Pd X-Received: by 2002:a17:90a:744d:b0:25e:8ff2:3ce9 with SMTP id o13-20020a17090a744d00b0025e8ff23ce9mr19509415pjk.31.1687632211287; Sat, 24 Jun 2023 11:43:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687632211; cv=none; d=google.com; s=arc-20160816; b=xuk9pCbqY1qO9zEeynaPg5HU1Ze42YkP/lOfN+OTMqr+GRDup7LOZ5T4BONolEchiT r8hFVMHEsgvdNutLWAVwDciTqjfBT/hux2gLiZCet8EAeBLjWEQZTRsD1XI7A4pZVkTU xU3a2NBXv4nlBvfm3zkFOX42P4RqGBD06BNfwnS1MdWWNhTWrhsHqywTEYdkIk3wQJZP fb+pbD8jMaRbWAEZLy/erhv8CEaPSqnNXir2oXaXDXDrUQFlqOeHzFUUX6hLRR37GTOd YHTgXFWJSDLRamB2EWj5flsVzE44V1ppLJaf7+1JdtXNQl5rOf7cMb3v32q52vo8EnTD OzLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=03njfVwch92TuJFiR4G1H2eCMl/LzYJIPdaYI7L7Pq8=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=bm9a4HhVnGRwd658YtOaBpvTIYP5bg9SwfngwoppZPOmO8MMfvipSntb/GRWRkp+WW sWrT55i8Slii3T/vtRmm7fAxrtIEVdDJBk1efRpw1gLkAItTbOSIfXQfWxPvRU4c47E/ i1CTuwP3hdjS0ERhbSkZNkOqGtBlciZoNiBq+7m/uYkICrRdHOIe82gLQEcvyHz8EoSq vHu00032M7Eq+ECkM4JN313o7HQLanXdEEevr13+gHRos9jLk6WmR52M3uEhvwuMYKX+ bYWVre9RjUM5axB5Fvg86g5vlzVd5vT+JbjQk5EjVRR15iOz5WnTRV5h+krV3VejDeDf rcng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b="Hmg9eA/y"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f36-20020a17090a702700b0023d23393318si1931618pjk.55.2023.06.24.11.43.18; Sat, 24 Jun 2023 11:43:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b="Hmg9eA/y"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233174AbjFXSmc (ORCPT + 99 others); Sat, 24 Jun 2023 14:42:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231250AbjFXSma (ORCPT ); Sat, 24 Jun 2023 14:42:30 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1CE626BE; Sat, 24 Jun 2023 11:42:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632108; bh=fXisZBwaDd2KyZj8+4ewJTib/pvIS6ysYz50mkioaW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hmg9eA/y3u+U/s0cFsgyWs6GnywAtj+7aSGM+dFolb6pUs044ZDrerXQPyW3D9Bus ZRFQ/F6FaG+X50XXd5tOeuiPswKyOc5whnVi06SZTsoLPZCMkb6a9M76ybyV/77mll rBgPVd3cYro7lPXVgrJNlxjsivSlV8orra5DE74Y= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 0F069600B5; Sun, 25 Jun 2023 02:41:48 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 4/9] LoongArch: Make the CPUCFG and CSR ops simple aliases of compiler built-ins Date: Sun, 25 Jun 2023 02:40:50 +0800 Message-Id: <20230624184055.3000636-5-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769610633624371731?= X-GMAIL-MSGID: =?utf-8?q?1769610633624371731?= From: WANG Xuerui In addition to less visual clutter, this also makes Clang happy regarding the const-ness of arguments. In the original approach, all Clang gets to see is the incoming arguments whose const-ness cannot be proven without first being inlined; so Clang errors out here while GCC is fine. While at it, tweak several printk format strings because the return type of csr_read64 becomes effectively unsigned long, instead of unsigned long long, Signed-off-by: WANG Xuerui --- arch/loongarch/include/asm/loongarch.h | 63 +++++--------------------- arch/loongarch/kernel/traps.c | 2 +- arch/loongarch/lib/dump_tlb.c | 6 +-- 3 files changed, 15 insertions(+), 56 deletions(-) diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h index ff4482fd8ad7..ea8d1e82369d 100644 --- a/arch/loongarch/include/asm/loongarch.h +++ b/arch/loongarch/include/asm/loongarch.h @@ -56,10 +56,7 @@ __asm__(".macro parse_r var r\n\t" #undef _IFC_REG /* CPUCFG */ -static inline u32 read_cpucfg(u32 reg) -{ - return __cpucfg(reg); -} +#define read_cpucfg(reg) __cpucfg(reg) #endif /* !__ASSEMBLY__ */ @@ -207,56 +204,18 @@ static inline u32 read_cpucfg(u32 reg) #ifndef __ASSEMBLY__ /* CSR */ -static __always_inline u32 csr_read32(u32 reg) -{ - return __csrrd_w(reg); -} - -static __always_inline u64 csr_read64(u32 reg) -{ - return __csrrd_d(reg); -} - -static __always_inline void csr_write32(u32 val, u32 reg) -{ - __csrwr_w(val, reg); -} - -static __always_inline void csr_write64(u64 val, u32 reg) -{ - __csrwr_d(val, reg); -} - -static __always_inline u32 csr_xchg32(u32 val, u32 mask, u32 reg) -{ - return __csrxchg_w(val, mask, reg); -} - -static __always_inline u64 csr_xchg64(u64 val, u64 mask, u32 reg) -{ - return __csrxchg_d(val, mask, reg); -} +#define csr_read32(reg) __csrrd_w(reg) +#define csr_read64(reg) __csrrd_d(reg) +#define csr_write32(val, reg) __csrwr_w(val, reg) +#define csr_write64(val, reg) __csrwr_d(val, reg) +#define csr_xchg32(val, mask, reg) __csrxchg_w(val, mask, reg) +#define csr_xchg64(val, mask, reg) __csrxchg_d(val, mask, reg) /* IOCSR */ -static __always_inline u32 iocsr_read32(u32 reg) -{ - return __iocsrrd_w(reg); -} - -static __always_inline u64 iocsr_read64(u32 reg) -{ - return __iocsrrd_d(reg); -} - -static __always_inline void iocsr_write32(u32 val, u32 reg) -{ - __iocsrwr_w(val, reg); -} - -static __always_inline void iocsr_write64(u64 val, u32 reg) -{ - __iocsrwr_d(val, reg); -} +#define iocsr_read32(reg) __iocsrrd_w(reg) +#define iocsr_read64(reg) __iocsrrd_d(reg) +#define iocsr_write32(val, reg) __iocsrwr_w(val, reg) +#define iocsr_write64(val, reg) __iocsrwr_d(val, reg) #endif /* !__ASSEMBLY__ */ diff --git a/arch/loongarch/kernel/traps.c b/arch/loongarch/kernel/traps.c index 22179cf6f33c..8fb5e7a77145 100644 --- a/arch/loongarch/kernel/traps.c +++ b/arch/loongarch/kernel/traps.c @@ -999,7 +999,7 @@ asmlinkage void cache_parity_error(void) /* For the moment, report the problem and hang. */ pr_err("Cache error exception:\n"); pr_err("csr_merrctl == %08x\n", csr_read32(LOONGARCH_CSR_MERRCTL)); - pr_err("csr_merrera == %016llx\n", csr_read64(LOONGARCH_CSR_MERRERA)); + pr_err("csr_merrera == %016lx\n", csr_read64(LOONGARCH_CSR_MERRERA)); panic("Can't handle the cache error!"); } diff --git a/arch/loongarch/lib/dump_tlb.c b/arch/loongarch/lib/dump_tlb.c index c2cc7ce343c9..0b886a6e260f 100644 --- a/arch/loongarch/lib/dump_tlb.c +++ b/arch/loongarch/lib/dump_tlb.c @@ -20,9 +20,9 @@ void dump_tlb_regs(void) pr_info("Index : 0x%0x\n", read_csr_tlbidx()); pr_info("PageSize : 0x%0x\n", read_csr_pagesize()); - pr_info("EntryHi : 0x%0*llx\n", field, read_csr_entryhi()); - pr_info("EntryLo0 : 0x%0*llx\n", field, read_csr_entrylo0()); - pr_info("EntryLo1 : 0x%0*llx\n", field, read_csr_entrylo1()); + pr_info("EntryHi : 0x%0*lx\n", field, read_csr_entryhi()); + pr_info("EntryLo0 : 0x%0*lx\n", field, read_csr_entrylo0()); + pr_info("EntryLo1 : 0x%0*lx\n", field, read_csr_entrylo1()); } static void dump_tlb(int first, int last) From patchwork Sat Jun 24 18:40:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112491 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6558948vqr; Sat, 24 Jun 2023 12:08:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7TAJHgJ4McZuRVs2V2JLUt4seTMGnL/b5TIEuPG0FzXfTRfd9H8tNk5y/7p6eradRavg1x X-Received: by 2002:aa7:8882:0:b0:668:8c3c:3144 with SMTP id z2-20020aa78882000000b006688c3c3144mr15045376pfe.14.1687633732412; Sat, 24 Jun 2023 12:08:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687633732; cv=none; d=google.com; s=arc-20160816; b=MONATNCS6/tAkK5KPp8jO754yfu2IOzVWrlonO87JAh3NRuSeJEfaEAeLB0NYYx7SR 3NwatNs3mRnAWaFaiB3berDs08/rVC4zHCeoL6RfVQGQz3exr/SnhBaQg6wS2aGKDszu sNMYBjafu1pBxVfj1npwjWtbP32Vab3WYXPgH2AbI11zcdAIeZ6lRyX1NNkfe4qDlT7z 5r7i9GxyXvhgEYDulZWf6n+H28ySDVU7lT1G5+IhVjsf65LlElQwmfJG7pawfFY79MUb +s9D/BRbZv+G5yLIKkJoko8ECjx2OJ2jdIvP+RTuEztZu6jLBW4TbE23YBA67ZhXZvLP sb4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=44B1kBiVTy1jsxmc7Hv2K4S3syZxZ/cZe40zQr2iBnw=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=CWyjBqllJZx1DLfvaw6ZhFffz5mcJN9sg8L24dc+V4VeRa3Oe1ptys2hCZxoQKemZB fgO3g1JUyY2YwIQUM/y/hAv8VoXJzqcwm1FwXqLdZlFXmD+aVrefIBJ2tL9SiLvhd468 cjRKsKLOAqAy9IfiZraTQDxZZtotuJOdtJZrOJPMeKbb7iHp9VW9FmP5dZFXrfTGFbqL AwpbsnWV4Lv/49WwoFQrLgXFi1GRIzU8gUruvS+ubq2p3tAerTrl/Fr61ZL9tvmD7LOm 42O1aCQl14zzm1lMHyP2KB8eVwO3XAm0hy2f/+IhkqQmw/65AITzFNeTygOkyi3Gub9H l4Mw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=nLHaBtIP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id br12-20020a056a00440c00b0063b8a054e06si378272pfb.259.2023.06.24.12.08.37; Sat, 24 Jun 2023 12:08:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=nLHaBtIP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231250AbjFXSmr (ORCPT + 99 others); Sat, 24 Jun 2023 14:42:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233219AbjFXSmq (ORCPT ); Sat, 24 Jun 2023 14:42:46 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DB922736; Sat, 24 Jun 2023 11:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632117; bh=cx5Lu/G2tw/bbfykj8m6/Hs/WOmB+fLUfJpSp6qrCjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nLHaBtIPDZ8YeXtguxGys+9gJj+vFo/X2qM6lCoKw4/Tb9d56uBxlJOczJ+kgXyFL SQJw86wQ890A3xRmMKOgaa6XMfp4zssdBDLTDlTVL/ErToe9N467kG6W7UH7VRttsy 8eAWG//3w3Gjy+LnrZjFrVL4CdmdkQLPSC0Rkc/o= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id DB27E6015B; Sun, 25 Jun 2023 02:41:56 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 5/9] LoongArch: Simplify the invtlb wrappers Date: Sun, 25 Jun 2023 02:40:51 +0800 Message-Id: <20230624184055.3000636-6-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769612228482314154?= X-GMAIL-MSGID: =?utf-8?q?1769612228482314154?= From: WANG Xuerui The invtlb instruction has been supported by upstream LoongArch toolchains from day one, so ditch the raw opcode trickery and just use plain inline asm for it. While at it, also make the invtlb asm statements barriers, for proper modeling of the side effects. The signature of the other more specific invtlb wrappers contain unused arguments right now, but these are not removed right away in order for the patch to be focused. In the meantime, assertions are added to ensure no accidental misuse happens before the refactor. (The more specific wrappers cannot re-use the generic invtlb wrapper, because the ISA manual says $zero shall be used in case a particular op does not take the respective argument: re-using the generic wrapper would mean losing control over the register usage.) Signed-off-by: WANG Xuerui --- arch/loongarch/include/asm/tlb.h | 39 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/arch/loongarch/include/asm/tlb.h b/arch/loongarch/include/asm/tlb.h index 0dc9ee2b05d2..15750900540c 100644 --- a/arch/loongarch/include/asm/tlb.h +++ b/arch/loongarch/include/asm/tlb.h @@ -88,52 +88,51 @@ enum invtlb_ops { INVTLB_GID_ADDR = 0x16, }; -/* - * invtlb op info addr - * (0x1 << 26) | (0x24 << 20) | (0x13 << 15) | - * (addr << 10) | (info << 5) | op - */ static inline void invtlb(u32 op, u32 info, u64 addr) { + BUILD_BUG_ON(!__builtin_constant_p(op)); __asm__ __volatile__( - "parse_r addr,%0\n\t" - "parse_r info,%1\n\t" - ".word ((0x6498000) | (addr << 10) | (info << 5) | %2)\n\t" - : - : "r"(addr), "r"(info), "i"(op) + "invtlb %0, %1, %2\n\t" : + : "i"(op), "r"(info), "r"(addr) + : "memory" ); } static inline void invtlb_addr(u32 op, u32 info, u64 addr) { + BUILD_BUG_ON(!__builtin_constant_p(op)); + BUILD_BUG_ON(!__builtin_constant_p(info) || info != 0); __asm__ __volatile__( - "parse_r addr,%0\n\t" - ".word ((0x6498000) | (addr << 10) | (0 << 5) | %1)\n\t" - : - : "r"(addr), "i"(op) + "invtlb %0, $zero, %1\n\t" : + : "i"(op), "r"(addr) + : "memory" ); } static inline void invtlb_info(u32 op, u32 info, u64 addr) { + BUILD_BUG_ON(!__builtin_constant_p(op)); + BUILD_BUG_ON(!__builtin_constant_p(addr) || addr != 0); __asm__ __volatile__( - "parse_r info,%0\n\t" - ".word ((0x6498000) | (0 << 10) | (info << 5) | %1)\n\t" - : - : "r"(info), "i"(op) + "invtlb %0, %1, $zero\n\t" : + : "i"(op), "r"(info) + : "memory" ); } static inline void invtlb_all(u32 op, u32 info, u64 addr) { + BUILD_BUG_ON(!__builtin_constant_p(op)); + BUILD_BUG_ON(!__builtin_constant_p(info) || info != 0); + BUILD_BUG_ON(!__builtin_constant_p(addr) || addr != 0); __asm__ __volatile__( - ".word ((0x6498000) | (0 << 10) | (0 << 5) | %0)\n\t" + "invtlb %0, $zero, $zero\n\t" : : "i"(op) - : + : "memory" ); } From patchwork Sat Jun 24 18:40:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112487 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6549344vqr; Sat, 24 Jun 2023 11:45:20 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5e48zSYzz+RI58r+Bv/dG7nSX+9gwmYESDNNQlsL/Iph2krp4Xve++EJWU241F3ZKx8D71 X-Received: by 2002:a92:d910:0:b0:343:92a1:9cf4 with SMTP id s16-20020a92d910000000b0034392a19cf4mr16723113iln.19.1687632319813; Sat, 24 Jun 2023 11:45:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687632319; cv=none; d=google.com; s=arc-20160816; b=ovMY84XkezEh8qLdZfsybcaC/LTgHg2m4Q9ex4wzZhB+4NepHD0MzL0/Ug3hKtRUt0 2OD5qkQ83GoGZUCZ96sFz9caGQ7VyPslDn3oaNIubKmnDCqPPWkB7VdPVICsHGfe3V85 5pXQB7tV5pV42YZksfzTWRLFfzqu0e5Hjcv/LOHxB0lnVkSg5Unk6LioD5U6O29q6lE7 X809TbGYGLLu4V2dDMHe0IfiDjamKmrJJtT0p9NCpBebHeBn5akttgu7wmeFoiTCdaqg Y93g71MzC0X4R/g0xd5aDOe6+J22jqJRziY3unZ0+QOuWnriky715KuiQLMLpk1oxjly od/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jHOJQBM8Ocr78tKEyIiNftSmZmO+7WoTX/aMibnBQL8=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=j315JaZBlrQ9mkpo6rGCbwJN6JYaRDmdV5GGEouZOgZxUl6VFmsE9a4/9LUswX4EMt ksgXR3bEyOPJVqbNruvOAPzkFHm7NVALb8YtIT7RJfoS6EMTJC7gBsvJyPUuKdtnNE6V nXCS1GXBBxMZU7/aB8bQPY0DiUfRnLatYC90qhvpxzu40bJGO1WPvasJQRTZHRSonZS9 JWjPFAHMGB1hi5FOhHTFdq5QqHdxvtQCAcvrfgfO3Fso7si+Wa3CWdyzGMwoim69m4eq QtICEtRAbO0iVQfjTYeym/xUFJXFjrcjw34e7LFfGRBkimkLV3QMQ8Ffk0riowMcvOGN EHww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=da6JduTU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z34-20020a056a001da200b006689097053csi1686621pfw.48.2023.06.24.11.45.06; Sat, 24 Jun 2023 11:45:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=da6JduTU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233254AbjFXSmt (ORCPT + 99 others); Sat, 24 Jun 2023 14:42:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233233AbjFXSmr (ORCPT ); Sat, 24 Jun 2023 14:42:47 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FB4C273D; Sat, 24 Jun 2023 11:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632119; bh=eN0XWTl7RfDHYLHR5QCiltkIlDC96O/391olzbyd6qc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=da6JduTUoxoszKkVxVXY+j4YYyoyjONHX5J/Laxd8qNa2RFLtGZEfC2GT6w0QlICf yZVG8PK1uBbfu0MXyy2qAWhfL8HAlg/K17Dsz7WE8FdYI7mnZ6UgW3jOra5B39mO5v bX7c6IleGWinbf3KjQmZqLbdJxYs4UCpZRIgo4dY= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id EC3256015C; Sun, 25 Jun 2023 02:41:58 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 6/9] LoongArch: Remove all -G0 switches from CFLAGS Date: Sun, 25 Jun 2023 02:40:52 +0800 Message-Id: <20230624184055.3000636-7-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769610747484167751?= X-GMAIL-MSGID: =?utf-8?q?1769610747484167751?= From: WANG Xuerui In GCC, -G stands for "small data threshold", that instructs the compiler to put data smaller than the specified threshold in a dedicated "small data" section (called .sdata on LoongArch and several other arches). However, benefiting from this would require ABI cooperation, which is not the case for LoongArch; and current GCC behave the same whether -G0 (equal to disabling this optimization) is given or not. So, remove -G0 from CFLAGS altogether for one less thing to care about. This also benefits LLVM/Clang compatibility where the -G switch is not supported. Signed-off-by: WANG Xuerui --- arch/loongarch/Makefile | 4 ++-- arch/loongarch/vdso/Makefile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile index a27e264bdaa5..366771016b99 100644 --- a/arch/loongarch/Makefile +++ b/arch/loongarch/Makefile @@ -46,8 +46,8 @@ ld-emul = $(64bit-emul) cflags-y += -mabi=lp64s endif -cflags-y += -G0 -pipe -msoft-float -LDFLAGS_vmlinux += -G0 -static -n -nostdlib +cflags-y += -pipe -msoft-float +LDFLAGS_vmlinux += -static -n -nostdlib # When the assembler supports explicit relocation hint, we must use it. # GCC may have -mexplicit-relocs off by default if it was built with an old diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile index 4c859a0e4754..ee4abcf5642e 100644 --- a/arch/loongarch/vdso/Makefile +++ b/arch/loongarch/vdso/Makefile @@ -25,7 +25,7 @@ endif cflags-vdso := $(ccflags-vdso) \ -isystem $(shell $(CC) -print-file-name=include) \ $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ - -O2 -g -fno-strict-aliasing -fno-common -fno-builtin -G0 \ + -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \ -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ $(call cc-option, -fno-asynchronous-unwind-tables) \ $(call cc-option, -fno-stack-protector) From patchwork Sat Jun 24 18:40:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112489 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6553914vqr; Sat, 24 Jun 2023 11:59:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ590/CXSv711wTF0440Z80QAfeyIUd//KsRXLAJHiplYuyYr4zVuLunm6xmDGByS6EV2tFd X-Received: by 2002:a5d:9d4f:0:b0:782:6364:3784 with SMTP id k15-20020a5d9d4f000000b0078263643784mr5511486iok.0.1687633146660; Sat, 24 Jun 2023 11:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687633146; cv=none; d=google.com; s=arc-20160816; b=EQQhuPkUvQsWCAJzUKpjtR2RUzTiRpEEozD3ggFo90Z8DNPlpDiVcjxGk/Oa7PfMcL 9fToaplssv5q7x7rZ+D4RDSJEeo2nsvapKiyAprwCBniJjeYp6fuCdGyKJOrfbn80QEV m8Orfbm67JJiIjNDUx5gWj1FL47wslTkn+1wzJ/o+AJ07BqPlsCkY8JEBgBH5mjuY2oy QL6Z39ywakeUPQGvPCWNLBXD5kzzj/IPHpVh/Mo+FCHUh+Zj39UIkT4ovf3BOGcj72j5 G8NOX8jZ+/s54Odt0+xFvPJXFVNQpPeTlGe4aVP2SUsTdaN0R1XmFLjzzwUNwx7ni8sn 2dEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UWXb1Q+4zhaMMR8NYs0zWDlrDmFt1hQCTNcqsh9PeRs=; fh=dOptu1ihZdKkZ8ajFex7p+VOwkwvZgrA6cQy2X6s+EM=; b=SditBrgzrV9b4vD+63kmsmfZDcZsRxVLPwF8+tcDjbWODLgYJIrOsHgY4gj2w7DxnR mPJRQDpvix6l3WsCZ62yp5BD/rO7JJgnNCCLzw//jr5nmXJvj4Lbx9u8WUF6aCQ4IrSd ACsHTOBvFtOe+SIlN8X/pN5bJqOVj6YDZgEKnqrV7QscdIAjDUwFsTjDDoEQYbCgGn2A adksIed7+7LRSK1v6iYrDxiDblSb2ILyb4lur3HtbNhLZOYCrWrQYHJjXCdf939I8ew9 MQNBK+XMhnDE8v5WMhfHSogHmyv/S0rCl5rs8/T8a+MBeYifLtz6Yas2+wT8rvKqQviE p/qA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=FJtLR5X9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q34-20020a17090a1b2500b002587b0434d7si1990530pjq.132.2023.06.24.11.58.54; Sat, 24 Jun 2023 11:59:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=FJtLR5X9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233233AbjFXSm4 (ORCPT + 99 others); Sat, 24 Jun 2023 14:42:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233219AbjFXSmt (ORCPT ); Sat, 24 Jun 2023 14:42:49 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB7042699; Sat, 24 Jun 2023 11:42:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632140; bh=0Tq7EFJUUQOAtspH6l1egJDQ+7z8Kts6U1eCmQuulT0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FJtLR5X9id4V7kryXwZrL369m5ZrY688s67Lk5G4iVzV+IqTKZbXuEWqWIXac+jYi lkDPwriZygD8MFQetGr4JJPxIlyw0AvOCyAFl3xHVDLRG8kJO3Q8r1htcf9cRxcODd URv4KRbKKhhsgdfmAkRmO6y53nzP0Mac1lNjgiKA= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 1AF6960164; Sun, 25 Jun 2023 02:42:20 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH v2 7/9] LoongArch: Tweak CFLAGS for Clang compatibility Date: Sun, 25 Jun 2023 02:40:53 +0800 Message-Id: <20230624184055.3000636-8-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769611614385669279?= X-GMAIL-MSGID: =?utf-8?q?1769611614385669279?= From: WANG Xuerui Now the arch code is mostly ready for LLVM/Clang consumption, it is time to re-organize the CFLAGS a little to actually enable the LLVM build. In particular, -mexplicit-relocs and -mdirect-extern-access are not necessary nor supported on Clang; feature detection via cc-option would not work, because that way the broken combo of "new GNU as + old GCC" would seem to get "fixed", but actually produce broken kernels. Explicitly depending on CONFIG_CC_IS_CLANG is thus necessary to not regress UX for those building their own kernels. A build with !RELOCATABLE && !MODULE is confirmed working within a QEMU environment; support for the two features are currently blocked on LLVM/Clang, and will come later. Signed-off-by: WANG Xuerui --- arch/loongarch/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile index 366771016b99..82c619791a63 100644 --- a/arch/loongarch/Makefile +++ b/arch/loongarch/Makefile @@ -51,7 +51,9 @@ LDFLAGS_vmlinux += -static -n -nostdlib # When the assembler supports explicit relocation hint, we must use it. # GCC may have -mexplicit-relocs off by default if it was built with an old -# assembler, so we force it via an option. +# assembler, so we force it via an option. For LLVM/Clang the desired behavior +# is the default, and the flag is not supported, so don't pass it if Clang is +# being used. # # When the assembler does not supports explicit relocation hint, we can't use # it. Disable it if the compiler supports it. @@ -61,8 +63,10 @@ LDFLAGS_vmlinux += -static -n -nostdlib # combination of a "new" assembler and "old" compiler is not supported. Either # upgrade the compiler or downgrade the assembler. ifdef CONFIG_AS_HAS_EXPLICIT_RELOCS +ifndef CONFIG_CC_IS_CLANG cflags-y += -mexplicit-relocs KBUILD_CFLAGS_KERNEL += -mdirect-extern-access +endif else cflags-y += $(call cc-option,-mno-explicit-relocs) KBUILD_AFLAGS_KERNEL += -Wa,-mla-global-with-pcrel From patchwork Sat Jun 24 18:40:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112486 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6549016vqr; Sat, 24 Jun 2023 11:44:14 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ73EkQdT9L6061/Mt7A0SZ4gpkdRUcC5pKojL5zsRkoMg2tsqjo8/Hz1+TyqpI0bgyRXo1J X-Received: by 2002:a05:6a20:3cac:b0:122:550f:aad4 with SMTP id b44-20020a056a203cac00b00122550faad4mr16005112pzj.9.1687632254019; Sat, 24 Jun 2023 11:44:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687632254; cv=none; d=google.com; s=arc-20160816; b=DM2jNNEfqjOSkZY7Lbsq/EieMjqbn5KN1M82tiext40fFrPf44rLK55hpfiWy2nZcA MflY/pQGANAnbRWlv7NRHd2AAlJObXY2bmUJgobJ+YjsnVzqWexDvu0Dc7sYTSI2qOUN yZ4i5Igf5LXgEBiyeb1SMXefn5qQpOM5Xq1qTx2w1xjr6iTf0Rw1erFuftVdjM4DyfO3 mZFuwZvrZH1O3mpIGZgXzoHHZUTTcF2F7siSahb9QY4vH9zM7U903X18kwEX6yBovAry y4/jEe2bHFAbRhJyqYPHjICbI528Lqxg5CbJ+eNpnRnYE9MOa+Sh2A4v3YH+lS5krrs/ rnPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IMd/SUKmlWVpC4P0XrhitOnqAd0zXMtWnK5o0dkm3sA=; fh=cOkhPHs+QQbxcIFG9XL5O7NpzAYOWU9SlXvAO44hRCk=; b=XnRGXc2VG4R0vV9nAL733ZgR7DbGa57h8V11oXQdMUDHaes6lnL4Z5B/xfQ3lXj1GM F/1nfJ/ZkAJYINpFzadOMFOFGBosNd+jp5z50Q/FD15QL2SobakH4iP9HmO8owvBr6yQ OrfZXa5+P1rYzUyelN0Oty+vicxjx3//y/RVFwR0a/1/SVBNngDjekwskYR0BH5ah6Zc jk/mo5aNOQwBpiQXyamvmIrbrDrDhodDCDp4Vr8CxtNIR3mxpMrzswJ3JGIDoC+kuPfZ BFvHRc3jf6MbDaRWyPZTZAyz5SzxMv0hgHaxurB0f1Yve//pHFGgNbQqoJ0rHbpwDMlk tJuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=mLA1oLCk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x9-20020a634a09000000b00553b006cd9fsi1904717pga.728.2023.06.24.11.44.01; Sat, 24 Jun 2023 11:44:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=mLA1oLCk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233253AbjFXSm7 (ORCPT + 99 others); Sat, 24 Jun 2023 14:42:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233263AbjFXSmw (ORCPT ); Sat, 24 Jun 2023 14:42:52 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FFC51BFC; Sat, 24 Jun 2023 11:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632144; bh=f9UodCze65MUHVrQj48fTjyEJzJh37WtI+PaqIa5H+k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mLA1oLCkI9h4Jq9YMA+9CG3mDdmdq7a46L7WIZHxgJXuoymtG8dH5DH0h/jg5IPRo j5VIDnrzDGdie8ylPLOraxE0gpp1sF5lbn8/N9v7XisY4uDX4w2W7l3Jsjn0mIIgdQ oZ8bqTFCGFacslqv2DR8M5DAiWVKBMuvkaCZzbkE= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 3595D605E5; Sun, 25 Jun 2023 02:42:24 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui , Nick Desaulniers Subject: [PATCH v2 8/9] LoongArch: Mark Clang LTO as working Date: Sun, 25 Jun 2023 02:40:54 +0800 Message-Id: <20230624184055.3000636-9-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769610678344232266?= X-GMAIL-MSGID: =?utf-8?q?1769610678344232266?= From: WANG Xuerui Confirmed working with QEMU system emulation. Signed-off-by: WANG Xuerui Acked-by: Nick Desaulniers --- arch/loongarch/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index ac3564935281..ed9a148cdcde 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -51,6 +51,8 @@ config LOONGARCH select ARCH_SUPPORTS_ACPI select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_SUPPORTS_HUGETLBFS + select ARCH_SUPPORTS_LTO_CLANG + select ARCH_SUPPORTS_LTO_CLANG_THIN select ARCH_SUPPORTS_NUMA_BALANCING select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF From patchwork Sat Jun 24 18:40:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: WANG Xuerui X-Patchwork-Id: 112492 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp6567814vqr; Sat, 24 Jun 2023 12:31:58 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ouQ/kSPO1J2d6KNz5sKVkFOh1OiOHdQPN5ywDGlIdPsvPVoIBvxFu7MuG/YW2ZWcDI0bG X-Received: by 2002:a05:6808:3098:b0:398:55ff:1fb8 with SMTP id bl24-20020a056808309800b0039855ff1fb8mr30725230oib.37.1687635118247; Sat, 24 Jun 2023 12:31:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687635118; cv=none; d=google.com; s=arc-20160816; b=CNQ9nvRQYa4uX5usBkWPNg1PBBsU42Yk2ThEWW5MnsccTu0Wf9sBXH3SsZs707k26o 74Bu5MLI6ioF6vgprbf7QIdTvJnYbmrrp5YGZ15Dzy1GM0OHTHtG2L95dkTZXrxF49ny T0TqmrDzM/wKGD/YhuQv034iOFxFox8zAlj5082qnkHVADu4m4+r+A+DMjf85jH9q88G 3FlwVQEwkJINMwJ137H5K1vnsVCSUdUxZqMobFSx0b7JYkK2U36zzFfJrBhqeOljpjU2 jW37O3o9B6P3MT5s1Dr7yo3PKDS7xUuq+6N4u9mV643h2XtjhGKzOFZhB40VnjD5+gzJ 7zyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8K7/+lvZLMd6h0CCvRUtyWWUN098oZxwqAQ6Pv4emAY=; fh=cOkhPHs+QQbxcIFG9XL5O7NpzAYOWU9SlXvAO44hRCk=; b=FzeEdc5AM/WPuULenEuWWdprQxM8W5DUKj4H49ICpVHjmkfocO2Iyapj2JvCU/LnZf mahKkec3ed10bHoE2O5Yb27H30SKLIHkv9mWdcIVljG+biKFfHuP5RP2w1lm9+oHZ1xq ly6/gVC2fuAbi3UBNrk+Z+YwZPRvtv5aP56Etkvx2MqFYMCAAA86yu7NeHr6zlJqusKO nhTbtGpJh6XqTGTjlnXaKBCk25ugPAXN4coMVZz3tA43zdQnFHDYvZcp7DWGalUcN5E6 dPfjWrMhFqQIniJNY2W4/Ty5rtvGspEkutdJl4Uibe+Lu9Oi2wIV9McBwHgjndRIaL4H VlfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=LgMY6Ylu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t23-20020a635357000000b005574c3ac68dsi2023376pgl.493.2023.06.24.12.31.45; Sat, 24 Jun 2023 12:31:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=LgMY6Ylu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233283AbjFXSnD (ORCPT + 99 others); Sat, 24 Jun 2023 14:43:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233279AbjFXSm4 (ORCPT ); Sat, 24 Jun 2023 14:42:56 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC22826B9; Sat, 24 Jun 2023 11:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687632157; bh=kdNQ2yRcFr3QXcyAJBTxhivt3gO0Oi9ZzFCGa8V1v6A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LgMY6Ylu1pRlcNNel0Jy0i1lUMQFOXsGwwyT0jGdFr2ySeO3O5tTBG57kruUb4ZTQ RwvaMqXkAJtGy3vrMfV1zV3gC8gLpEo/AX38NrpT5/5C4EqkxBDPUpTyyks6bw8yYu aSh76a9q4XcsHeMpbYDabNEWwK29h4CZ6PFFHniU= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id 5D5D9600B5; Sun, 25 Jun 2023 02:42:37 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui , Nick Desaulniers Subject: [PATCH v2 9/9] Makefile: Add loongarch target flag for Clang compilation Date: Sun, 25 Jun 2023 02:40:55 +0800 Message-Id: <20230624184055.3000636-10-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230624184055.3000636-1-kernel@xen0n.name> References: <20230624184055.3000636-1-kernel@xen0n.name> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769613681631313359?= X-GMAIL-MSGID: =?utf-8?q?1769613681631313359?= From: WANG Xuerui The LoongArch kernel is 64-bit and built with the soft-float ABI, hence the loongarch64-linux-gnusf target. (The "libc" part doesn't matter.) Signed-off-by: WANG Xuerui Reviewed-by: Nick Desaulniers --- scripts/Makefile.clang | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang index 058a4c0f864e..6c23c6af797f 100644 --- a/scripts/Makefile.clang +++ b/scripts/Makefile.clang @@ -4,6 +4,7 @@ CLANG_TARGET_FLAGS_arm := arm-linux-gnueabi CLANG_TARGET_FLAGS_arm64 := aarch64-linux-gnu CLANG_TARGET_FLAGS_hexagon := hexagon-linux-musl +CLANG_TARGET_FLAGS_loongarch := loongarch64-linux-gnusf CLANG_TARGET_FLAGS_m68k := m68k-linux-gnu CLANG_TARGET_FLAGS_mips := mipsel-linux-gnu CLANG_TARGET_FLAGS_powerpc := powerpc64le-linux-gnu