From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id ECB1C3858D39 for ; Mon, 19 Jun 2023 19:03:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ECB1C3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1b52bf6e669so31229435ad.2 for ; Mon, 19 Jun 2023 12:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687201426; x=1689793426; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=MfQDC+Ma/Yri/eraowAQYBxeWjr76BWMnjPQdKp8Ttc=; b=JJR4vEidv3k3h6ZQgWX5A8ycdPaq9vyHOQyIdabXVVdNGW6ch+DygAw6tifZiDExew Wb7w3tnflFpukeUoLQaR0zjw5o9AkXkqB1Z8NXn5mtRHyYVPxHs3xMVw5aEiNGQhf3yy t8jzr3coS92yTuVk1IwtEmNi5BRQKXUhK1Daz0x1pKQKJEApt4WnSO2v3VMt+hqZJukv aTTa0qzg7DjfK0BED+oIl9Ed2dXhWdUHe9KneOJd/Tw7+BGByxt1vqKJI0dbGnUxTkwd CBlxZwueaHPHGZfDHJFhF2L+vMhzv8jm4jUGCxfucvC9biNWmFZjTff4eBjtpmgzP/sA D74w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687201426; x=1689793426; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MfQDC+Ma/Yri/eraowAQYBxeWjr76BWMnjPQdKp8Ttc=; b=XAxuygOiQghKZ8bF4vJGqWB0mFMBrVnmyDU3aaJ+aK5wJFX+sibl2GjNg45TUFIQrw NJ0E8rnz9TCx5Y+tSLAnjhkM5TxanazknEKomHdGO4XNODftEERtZtBWm8tiJC1ZMksh irMbA49Uewf8GLwS3LT3ySABmeCEWDlgs8Z7sQ40moBRqlAclof482If07XKpL/q1z3l 7Im1XOZYDVeHEQRvfTj+1mxAWuxyd+IaAn3eAsTy2ejg4nFbLwd8svewVFMeknXvBXAF ZPOujtK5suFzi7ki48P9IOx3MbD8EUSf3ne/v4fJHNgvcBav5FJidm7vxqpQt8eepR6D x8dA== X-Gm-Message-State: AC+VfDxEB5e/zQabvQnHY6ojPnisH1AEQS1s1dF2EVd2jcBYDuhwnhbh 2+Z46CsZPOgZ2gXPuP42ovg= X-Google-Smtp-Source: ACHHUZ4m+N23Utr6fpRgkyl54tb4Jyuoo7w+FI8opaby27nPlKNObNKGPetlec1uJwrSq+JhGa5tKw== X-Received: by 2002:a17:902:74c5:b0:1b0:6e16:b92c with SMTP id f5-20020a17090274c500b001b06e16b92cmr10737851plt.54.1687201425725; Mon, 19 Jun 2023 12:03:45 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id ik27-20020a170902ab1b00b001ac7c725c1asm212352plb.6.2023.06.19.12.03.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 19 Jun 2023 12:03:45 -0700 (PDT) Message-ID: <2acab575-32f6-ee46-6215-04b594229d2c@gmail.com> Date: Mon, 19 Jun 2023 13:03:42 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v2] RISC-V: Save and restore FCSR in interrupt functions to avoid program errors. Content-Language: en-US To: Jin Ma , gcc-patches@gcc.gnu.org Cc: palmer@dabbelt.com, richard.sandiford@arm.com, kito.cheng@gmail.com, christoph.muellner@vrull.eu, jinma.contrib@gmail.com References: <20230613064126.1323-1-jinma@linux.alibaba.com> <20230614075746.3918-1-jinma@linux.alibaba.com> From: Jeff Law In-Reply-To: <20230614075746.3918-1-jinma@linux.alibaba.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SCC_BODY_URI_ONLY,SPF_HELO_NONE,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 6/14/23 01:57, Jin Ma wrote: > In order to avoid interrupt functions to change the FCSR, it needs to be saved > and restored at the beginning and end of the function. > > gcc/ChangeLog: > > * config/riscv/riscv.cc (riscv_compute_frame_info): Allocate frame for FCSR. > (riscv_for_each_saved_reg): Save and restore FCSR in interrupt functions. > * config/riscv/riscv.md (riscv_frcsr): New patterns. > (riscv_fscsr): Likewise. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/interrupt-fcsr-1.c: New test. > * gcc.target/riscv/interrupt-fcsr-2.c: New test. > * gcc.target/riscv/interrupt-fcsr-3.c: New test. Thanks. I pushed this to the trunk. jeff