From patchwork Mon Dec 20 21:05:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526069 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4449769imb; Mon, 20 Dec 2021 13:07:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJwv5ozrio+8EJ168yxil4LZ9suBwBqv11+N0sXn80H7HnbLMc76agLsi2rEzxnnmeZLREF6 X-Received: by 2002:a05:6602:150b:: with SMTP id g11mr9355808iow.119.1640034438110; Mon, 20 Dec 2021 13:07:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034438; cv=none; d=google.com; s=arc-20160816; b=UH0mJyxCcyJU8If0xbD83ZZ06ig7mwpGfr5aOAdF+lkcmzgOYs2grFCHxUjKoDHp3X eo3h82DFrw8WguuoEf8BR5JxmJLWJ89oDpzPhlOaklznuWFz425Y1LSf8vZ2BuaEkIFa Z4Wp2H0DceAxQe4JEp7eIy4c6Ymra5PZM2tPhiNrAyE0XC8KTwOZ44XnsH9DFIhIDlEn xxPOLPph8Ndni3uVtAGBL36J9GCLLi1NiiegsuX4BrGK///vL8l5O/YpnjR+ZHMj0iRp /u21xdpsS36TmiCnW9yfmbWzQ+6J61sx7G2ghzUalT/X0zpKP1QR5hnMCc6ABOncm4Hb iVeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=nlfMa3uLcCkh+T3g7LsRxXaJmvJxKY8lfYOrMw7+gaI=; b=CK5ydfjFsMxoT/YqvbobehQgNYJIGOhJ2UbBswoPLWulsZktn/NqmzIedClO6GrkuK BqAkz3or5L2waAP9sF51qEgkhduRdm1WTKS4yEVoDyYQUCe/ShAimz/QK16xFoQo/NYY ZEql934HJ8Dt4ULuUpwKfDJApHszzCCzVRP5/JurKNojhMceT3s/xCYPEzDNt+WbZ8qq sicbwGDBW9pQ7yqBo4ZRdGuKM10HkJK85OwpeHfX/ZTg+Z/Z0ToUnp6F5Zkat1HDdjly SkVe7D+pMstSgdL6di2fTdiSeV+Z8vVO1yxk8usehxQfx1l0Gp7HYJbvTuszwZVy44pi RArg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=CVNxuUUQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id q4si5524065ilv.106.2021.12.20.13.07.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:07:18 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=CVNxuUUQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPsL-0000AS-LE for patch@linaro.org; Mon, 20 Dec 2021 16:07:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52558) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqi-000084-4n for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:36 -0500 Received: from [2607:f8b0:4864:20::530] (port=42896 helo=mail-pg1-x530.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqe-0005sj-Ky for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:34 -0500 Received: by mail-pg1-x530.google.com with SMTP id g2so7853168pgo.9 for ; Mon, 20 Dec 2021 13:05:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nlfMa3uLcCkh+T3g7LsRxXaJmvJxKY8lfYOrMw7+gaI=; b=CVNxuUUQ8ySBdygCRof3fYHri1OVqTLp04xF1FhKmNN6tIAOanbKE7WelEJlIWyLWB oKiA0NRdbU6fh7VJjASUAElUR64/fdXQsWgnJhz8DnYr9N1RviW6ZSKRZlTz+3o4w5e1 Rtgc5EYRY+nVoHYdNaa8EMlEfxazBpnJ7EOwaKMGRa+535+4COw9E4uYwYGC8uV++TBH 3XclSAAqoeVS2JEGSZqhd3qy/wiOUNOBlaPA34aki+uMV0lefv78BrSRLMJfneSXT7yE 7+Dri9+jWj5RuBX3toi8quA6bkc+/LkNF+09B8RsSNFFbLA5gAtpiVNY1I2mj6DedxwY 7p4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nlfMa3uLcCkh+T3g7LsRxXaJmvJxKY8lfYOrMw7+gaI=; b=GY0A3WIQ9J+vQRpJ+3RwFA7KGCseLxUyO4PQAt0PHxSIjR7JwYtItUAHjeL9GnOl7a kWgljJoHkOQQA0t1KiGUoOgd9N4PW65aTu5lMtP+iOHkzLpdmjXW8fzUsHvgH0CVm6Oo vRQVEfkn3vTmGH9Q9JlPNIGg4IBVIofh4kPFlnx2OAvnMrtx1Gp1w2UASqIc/vugyrun 7oDHT7l+Xe+AJCcFLxq+j6J7x5PA286jeK5/6us2nxhHCDjRXPHJd1yPgn5Xlx2Pls81 tawJe8v+RMNot1jaiwA+IDEOzagHW6+XJoXmTSaCHEc30RRP3EbUTVyMJZxdJvr7cbTg xAvA== X-Gm-Message-State: AOAM531zyYPjeUmPvho9dD3Hn/hjecEIcBOIkk8eRuYxY2krY9Duv/rw jolWHM60gMcxa7sb8YrthziutY6qrs3YQQ== X-Received: by 2002:aa7:9e9e:0:b0:4bb:39a:b85c with SMTP id p30-20020aa79e9e000000b004bb039ab85cmr2332652pfq.68.1640034331182; Mon, 20 Dec 2021 13:05:31 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:30 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 01/24] linux-user/alpha: Set TRAP_UNK for bugchk and unknown gentrap Date: Mon, 20 Dec 2021 13:05:05 -0800 Message-Id: <20211220210529.150423-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::530 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" These si_codes were changed in 535906c684fca, for linux 4.17. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/syscall_defs.h | 1 + linux-user/alpha/cpu_loop.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 0b13975937..bc18a4f248 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -715,6 +715,7 @@ typedef struct target_siginfo { #define TARGET_TRAP_TRACE (2) /* process trace trap */ #define TARGET_TRAP_BRANCH (3) /* process taken branch trap */ #define TARGET_TRAP_HWBKPT (4) /* hardware breakpoint/watchpoint */ +#define TARGET_TRAP_UNK (5) /* undiagnosed trap */ struct target_rlimit { abi_ulong rlim_cur; diff --git a/linux-user/alpha/cpu_loop.c b/linux-user/alpha/cpu_loop.c index 4029849d5c..b039369198 100644 --- a/linux-user/alpha/cpu_loop.c +++ b/linux-user/alpha/cpu_loop.c @@ -86,7 +86,7 @@ void cpu_loop(CPUAlphaState *env) /* BUGCHK */ info.si_signo = TARGET_SIGTRAP; info.si_errno = 0; - info.si_code = 0; + info.si_code = TARGET_TRAP_UNK; info._sifields._sigfault._addr = env->pc; queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); break; @@ -155,7 +155,7 @@ void cpu_loop(CPUAlphaState *env) break; default: info.si_signo = TARGET_SIGTRAP; - info.si_code = 0; + info.si_code = TARGET_TRAP_UNK; break; } info.si_errno = 0; From patchwork Mon Dec 20 21:05:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526070 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4449789imb; Mon, 20 Dec 2021 13:07:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJynOgxlmN1FF75/ETdqJOl94LPByDrcq8hUt1M7yrpjzi0NOaFlxBvf3ETSxvnTW9E6wijW X-Received: by 2002:a25:850f:: with SMTP id w15mr27610694ybk.373.1640034439274; Mon, 20 Dec 2021 13:07:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034439; cv=none; d=google.com; s=arc-20160816; b=e2Lch+WLFYQl8uLUR59K2IRXTCgeJIUH7d492sIKSkEwMp3hz0Rhypdb1ZV5iObvi/ BInk4PawGNxq8P3E3A0gku7M8B12iZEnzkpFkKd9VsioCEOiZtW9ZZ8J0bLV18kbOMFZ IXIhChFye1b5XZMEnezVuzULHx1Pfg4BKi1AiFji3oAPTzGnfUpiYUZV5G4mZr5uUyWq 8UZA6HHoyd4e8ajk56XITX+lXMDdl8LquM0jyKdhlGgXzBMemAsVSeS8etzQ59d0ydES ULmWU3VNQWqWXRrUa2eRPMRdoYaD8SRSdRyCOvcdWXvTIRHw330FRjX7yH9VG1bOUfoy Gi8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=BCE1WlXmmaCtgHYc/C0kxl+XaSWrlWSBPlh1JjzXRMo=; b=gojYonT/RTdRzT8Vc9NJVYCScsDIEq60Y9PzL+XE3vX5sBVA6IAsDr8AkVyF8CHuXI frCLDudf4vV1OyZ4I8Zwe6ysjatsuuXvpyT5obfSsa7EpJ2QQSWQhNUSprJpE4MiG0Zq zv+Wd4+cKnuf49mkBWtNdirGnVYRGLBFLL+cKAyPPXph0VSsx26/NdvNOg1wooVdpIHI HMVFJRRGly0400PbrClKS0TnpNooQyLrlxnOS3L7kQZRiL3fZJdp0MBy2R+eQPbPJe3T jz4udOkOyLGXL61P1apwZtxxUT9xfonH9obXEPOTlPE4JkBIJUGBy/kSPCRX2jp2b7rI w9xQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Dm1X5WKM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id r1si26643251ybu.477.2021.12.20.13.07.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:07:19 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Dm1X5WKM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPsM-0000B4-PI for patch@linaro.org; Mon, 20 Dec 2021 16:07:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52560) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqi-000085-2r for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:36 -0500 Received: from [2607:f8b0:4864:20::530] (port=38859 helo=mail-pg1-x530.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqf-0005ss-Gf for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:34 -0500 Received: by mail-pg1-x530.google.com with SMTP id y9so10429642pgj.5 for ; Mon, 20 Dec 2021 13:05:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BCE1WlXmmaCtgHYc/C0kxl+XaSWrlWSBPlh1JjzXRMo=; b=Dm1X5WKMOXNquFVBuVxVXF6DOg8qZnudQh71/Vigv5FSTGalEqVjY80RjQSUL5F9FY GEU1xuNEedw7T4emEFdhv8M0SgbiUg6q4yMBnC+4AEpkbaiw4d3n3ahF/pNtnSj3UgcM oCi2H4wrbhNSwruUKZWDyFhXqB+1phn9OhG4tOBY9VMef0tDT8BSrS8Qqie31WgIrDOZ /ZjkKTy+qR6JuTUrE0dmQ/o5mjHxWDQfuhJN60lhA1w0mue2LxQ6FPlKN1lpXj+SzvGW wO+JOEBjAa56a2/870OaqfCR9UdHIrifbIzeLfTTN7bsSCPqUW1VFR/1KDRpOodlRsVn /L8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BCE1WlXmmaCtgHYc/C0kxl+XaSWrlWSBPlh1JjzXRMo=; b=C+WZm3mxbz7yPzdcivGaqMHbhRlosQj33Xndv2R/HTCsD6xZSsetZ8ZK9u/lexvlT3 BO142CSENjqdXL668Bjjug6MdlOVkJhHQMzYSr5aHNrqirOqeLkjKo+GrQWM2bZCF1A9 FgVvzxytr+2Fgx26Dg0CQln4bBEKsJOsS+LjOInZx38fAstuX3mpbFpd5KwuaZvgSwgL 11uJ3LATJq2+xTLcKZa2x7C34/26f1u2WeZuncl/Ozx9iFfSSTD1AaXyOJCdjK4ZDeMi 3NMkHZqD/U+WXQb/cRBeCLIzuW3wEtPBnxdvBudD8kElX2vjS7F7iMCsqZ0hjz9aZpN5 qlsQ== X-Gm-Message-State: AOAM530yRb1b74KQl6Nj8/NipUlOYYSgek/m1V7ODHmDWf/xoWx946g9 FNzYwkvvloQQzasJ0yoCYS2ieU+yh5UuSQ== X-Received: by 2002:a05:6a00:168b:b0:4a8:d88:9cd with SMTP id k11-20020a056a00168b00b004a80d8809cdmr17943787pfc.11.1640034332092; Mon, 20 Dec 2021 13:05:32 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:31 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 02/24] linux-user/alpha: Set FPE_FLTUNK for gentrap ROPRAND Date: Mon, 20 Dec 2021 13:05:06 -0800 Message-Id: <20211220210529.150423-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::530 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This si_code was changed in 4cc13e4f6d441, for linux 4.17. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/alpha/cpu_loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/alpha/cpu_loop.c b/linux-user/alpha/cpu_loop.c index b039369198..92de2a4424 100644 --- a/linux-user/alpha/cpu_loop.c +++ b/linux-user/alpha/cpu_loop.c @@ -151,7 +151,7 @@ void cpu_loop(CPUAlphaState *env) info.si_code = TARGET_FPE_FLTRES; break; case TARGET_GEN_ROPRAND: - info.si_code = 0; + info.si_code = TARGET_FPE_FLTUNK; break; default: info.si_signo = TARGET_SIGTRAP; From patchwork Mon Dec 20 21:05:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526071 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4449798imb; Mon, 20 Dec 2021 13:07:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJxqC0eWcejTD2UNaUkG0hNxJl5jA8I7GfKP8MEvrXnZtDBZuTDF+3LJfhV1SUPoXPXZkK+Y X-Received: by 2002:a05:6638:25cd:: with SMTP id u13mr34655jat.8.1640034440088; Mon, 20 Dec 2021 13:07:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034440; cv=none; d=google.com; s=arc-20160816; b=z/q602WSA4kuLhhqup5KV5lKBEwAUYsXi5MBHttyFxL2HJ+Hki79EGumwS/bZpeqvl T0/Lzjo4MVJqBjTOLLMxY92nO8lfDBe/inl4h3knPza2OlvEkF2AJ8njMTqaETaMe8ff Ugq4pneuBkU04gZjVbAe7XTwc2XaEvpftRl6/IcJbWPAX3TyPC1EMPtJnmP1hFDIHSwg rG+MTkKQ3cbgGmi7XODRaiyeu1nqHAXTf1XtXhoS1uH0ePNIU/tL14UtgZLUP1IfwJBZ HSrw+I5PbwQrRyFp3xDGldal2EihPjDXlZldyyocC24fTTe7QlZGEdi9cFwN+jItvcjE ou0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=sq/kznFGz9PWdUHHi74JU5t5d0KvsAf3BVy4yRlW1PQ=; b=SHPxSisB1IUXWE0LUImDZkHkrjzRTamHLvcoymwO5Z7vmuDkmYTnquiSQ3KB+cC3WD jhxUKbO825KwmBZvJ6BoGS+UAwflQkcmppzL9wS5mKO6zXZeNVRKTGjfRb4UqBiYGkrb DmoAhxG6GatB8P/5A/aRqUVQNPcc+uRxeM2Ha0SmRgQAwcI9KSLdLXw2aqKpKa9Pc88L sioS+0aIOSKowyxyo2x2smvvwf5FKS0mXLqnskv9R+zUFCR24YgGvDk3IKmkMFpGf60V WZzAjTfkIgmdapY0FXSGS32TOQjGy2ow3/LsbE0f+MQKtMEwwdWh5PyhID1t1veX3Rl9 imEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=SvVAAWTz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id f13si1984122ilu.33.2021.12.20.13.07.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:07:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=SvVAAWTz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52568 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPsN-0000Cf-Jf for patch@linaro.org; Mon, 20 Dec 2021 16:07:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52580) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqi-00009F-PJ for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:36 -0500 Received: from [2607:f8b0:4864:20::435] (port=38701 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqg-0005sy-5i for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:36 -0500 Received: by mail-pf1-x435.google.com with SMTP id b22so5023461pfb.5 for ; Mon, 20 Dec 2021 13:05:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sq/kznFGz9PWdUHHi74JU5t5d0KvsAf3BVy4yRlW1PQ=; b=SvVAAWTzTvjQNixITXtrJqvfFqke9G43iX2TYA+c+R9zQlIkiFjbnNJ4T3wrJONM5F sMJzKaX+KU5gKbEfUxuGBiDBoNJBRLAVudPrQVhTHD/N3tC0cf6UMrKTeh0M3rcxutmZ Lm9mgL6UpXQlbFqCVp9mm6iaNfdNbJJ1NPcGMnNU2uwYVY7kp21MWYx6Q8WNXqVJDmEQ wZlEr9hMvQK2X9PvjcUZwd612xuaqBlD50rvKCS5UXhVYwev3e3OQqPVxHxK6xXzw9zh u4GkHpKaslBFTyht6ulhcEUCYPcbiXgqSu+gyHE06Hh2GKOXGYxUVsmXTh2dFnnvcjnD W0xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sq/kznFGz9PWdUHHi74JU5t5d0KvsAf3BVy4yRlW1PQ=; b=RdnbF7t8nQWmWk+1LCTyD7e0MxUV2jsc+qAILiWbPsrxpNBjFTaSyVgtYnVf55tDi3 kKhJNby4YyEJCRC8EZ7LpkYc7Fu6kMYtPRNRpuC+HZfQ1X/CDcLjFiWS5NLVSPUJlurg UTLFd+IFebqUbjm6iCdhLDevMGjwUXGNxymVyqwLAzGgduwZSSZ5Ghj8rCL+2J8c3E9o f0p+3/AXAYN5LiwW4M2ZLSzAzNMUeVNBNJ3BwxCukiCLy0CbGNTIvTAjh+WlzE/VDv79 CL7vSmk32OqArfA1dCfxOPpgkgxNyFy1Pu6o0jTejfTOyHb/KJGAo0xmjSeARFuW42f8 rC/w== X-Gm-Message-State: AOAM533KhxfIL+++P56ukAVkeL2Sr7cltDZ2l8qBi8tlrQtN0AJdW98n 4moZ7H9LnoS94I6fDuXhSL/pHwwdefNeUw== X-Received: by 2002:a05:6a00:1349:b0:4ba:fd72:64da with SMTP id k9-20020a056a00134900b004bafd7264damr3112954pfu.69.1640034332954; Mon, 20 Dec 2021 13:05:32 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:32 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 03/24] linux-user/alpha: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:07 -0800 Message-Id: <20211220210529.150423-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/alpha/cpu_loop.c | 61 ++++++++++++------------------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/linux-user/alpha/cpu_loop.c b/linux-user/alpha/cpu_loop.c index 92de2a4424..0e4c2db462 100644 --- a/linux-user/alpha/cpu_loop.c +++ b/linux-user/alpha/cpu_loop.c @@ -27,8 +27,7 @@ void cpu_loop(CPUAlphaState *env) { CPUState *cs = env_cpu(env); - int trapnr; - target_siginfo_t info; + int trapnr, si_code; abi_long sysret; while (1) { @@ -56,18 +55,10 @@ void cpu_loop(CPUAlphaState *env) break; case EXCP_OPCDEC: do_sigill: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPC; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); break; case EXCP_ARITH: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_FLTINV; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_FLTINV, env->pc); break; case EXCP_FEN: /* No-op. Linux simply re-enables the FPU. */ @@ -76,20 +67,10 @@ void cpu_loop(CPUAlphaState *env) switch (env->error_code) { case 0x80: /* BPT */ - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; + goto do_sigtrap_brkpt; case 0x81: /* BUGCHK */ - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_UNK; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; + goto do_sigtrap_unk; case 0x83: /* CALLSYS */ trapnr = env->ir[IR_V0]; @@ -130,47 +111,43 @@ void cpu_loop(CPUAlphaState *env) abort(); case 0xAA: /* GENTRAP */ - info.si_signo = TARGET_SIGFPE; switch (env->ir[IR_A0]) { case TARGET_GEN_INTOVF: - info.si_code = TARGET_FPE_INTOVF; + si_code = TARGET_FPE_INTOVF; break; case TARGET_GEN_INTDIV: - info.si_code = TARGET_FPE_INTDIV; + si_code = TARGET_FPE_INTDIV; break; case TARGET_GEN_FLTOVF: - info.si_code = TARGET_FPE_FLTOVF; + si_code = TARGET_FPE_FLTOVF; break; case TARGET_GEN_FLTUND: - info.si_code = TARGET_FPE_FLTUND; + si_code = TARGET_FPE_FLTUND; break; case TARGET_GEN_FLTINV: - info.si_code = TARGET_FPE_FLTINV; + si_code = TARGET_FPE_FLTINV; break; case TARGET_GEN_FLTINE: - info.si_code = TARGET_FPE_FLTRES; + si_code = TARGET_FPE_FLTRES; break; case TARGET_GEN_ROPRAND: - info.si_code = TARGET_FPE_FLTUNK; + si_code = TARGET_FPE_FLTUNK; break; default: - info.si_signo = TARGET_SIGTRAP; - info.si_code = TARGET_TRAP_UNK; - break; + goto do_sigtrap_unk; } - info.si_errno = 0; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, si_code, env->pc); break; default: goto do_sigill; } break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + do_sigtrap_brkpt: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); + break; + do_sigtrap_unk: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_UNK, env->pc); break; case EXCP_INTERRUPT: /* Just indicate that signals should be handled asap. */ From patchwork Mon Dec 20 21:05:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526072 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4451305imb; Mon, 20 Dec 2021 13:09:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJzITsaQDN0Jq26zm04lEl8APzB01bWLNkRaMLMH7TO8V/EXaG5wAb6ACNFxbaje8ggU/fKi X-Received: by 2002:a05:6638:25d0:: with SMTP id u16mr2165jat.191.1640034566369; Mon, 20 Dec 2021 13:09:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034566; cv=none; d=google.com; s=arc-20160816; b=lXJYYC93lNq+oOOtvM1euG6OE32J61SmN6ByeesTYwHpXXCuj1/Wkh7hgl0xDvL3dO i0JkPeHNWrgibXd3TGcZ3KRK8FKHmu8H4Z3eQ41UCRJNBa1WaZSlLJaYF0bI2XWDDAp3 6pxfjx/jXN8LSMIKIHGcHwkOSo6um5XEjI6jzd10DNaSDyZCdJTSanz8W7KQ5SD3Y9g8 KWosIY+DCYavHinva2PcXSpDWQKC3K3+1QrwwVEqj2n4e6lvNeBdEnz0yYl9ujLClxGq SEDNAvgeP3ixomRuXMBeNjTlVq7bWqczkxIhjBaJz3YbW0WoqFi4b9izvkAtkXvtbEcZ fV1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=h2fdYoIHcyUR/++4/QSd+NppRobTSDqFOu9ZoZtWFRE=; b=jJbG44XycL4C+PTT+FiJD/97EfqYyJUx3mlbnrE1559JVuQ/WM31AeLdPwnMtGeSip fLis7GJFu08vlvwawqaZF9hTuNPj7UkLILO+EV4BJ9FRxVIqRA6QCOAPcUU9gXOoPCZh ybTRqXkCLXyaV0xvqnY7Tnhm5M4XE+SuRpOvHVsJ9q40i35rQfNr+d2Md2REFQ45/gz7 l7PCbjKYuMuSvbovnGqoxg/nLX3DYsSppDy2MF00OU93C/CVBsmaawQZVBEH3rMzc3q0 yASl4o5BogCQ9DKwW5KkoV+6tomj1QQOdyREidcOSMPUzSfC0i3qfgkImBPpb3PRIp9Z OuWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=i7EOwVGG; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id v39si13749199jal.78.2021.12.20.13.09.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:09:26 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=i7EOwVGG; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:32946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPuP-00061C-TE for patch@linaro.org; Mon, 20 Dec 2021 16:09:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52586) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqj-00009s-7y for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:37 -0500 Received: from [2607:f8b0:4864:20::432] (port=34687 helo=mail-pf1-x432.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqh-0005t6-5D for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:36 -0500 Received: by mail-pf1-x432.google.com with SMTP id c2so9775131pfc.1 for ; Mon, 20 Dec 2021 13:05:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h2fdYoIHcyUR/++4/QSd+NppRobTSDqFOu9ZoZtWFRE=; b=i7EOwVGGZbmSp+ngwoi2ZFb2kUdwpmJm7+gPue71MSI8/i75LeRcLRaCK8Qq+XXoKv LJa5asxQkHARpelcN6JvmPM6OZ4mYTndtQzmqvHfnQGUphvgdxUPb1Y2UGAQZlHrdhQv 7Wo3Gar7s5B4Noy3LvyGEjhB2zb9QhyphDGJxiPKqV02rgDwhrWP2H4pCbhuTDUangv4 vrK/k8fbl9gvGAOE/8uyrDAqKQ56UUD6TnlZJ6OquVqRC0E2znIElI0kKDY2qhFslegI /ipOlw8Uu974e2UnYw0Qj2GDN6tUKA3Jbqhl0HIBqgkxgTO1Dx9PwACwXRJSbLxKvF+P b2qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h2fdYoIHcyUR/++4/QSd+NppRobTSDqFOu9ZoZtWFRE=; b=HH4FLRjUwdBaMXEGgFILppxt7FkCifxVydjq1HAf+qE/OgyqN3WCpsAVbpcAnSxmrI vThdwo9SoJJ/h9MqQ8FXV5kPRklxXbOHprNwKzFaicK+V1Iktc2SXDkQqFtq0mYFHI+U kv5Bszjw/gw0+XIasAC7MgEzp6xg+jAJ+3gKCfxqcAZUltnk03+aAQ67rx0Cv5ytCw21 CBWdVJiE7Y1Cr4BbQmU77CBYuJkkPk3xzbNkW8pEkAYzSg69uEc8U6yUgs6Di4Qd2WOP pRF72JpdhUSiiUAqg9ujt2CSgQLDSF240eAbiYnhgPOJxue0JYn08oamJOYmSDaNMBsn 6jiw== X-Gm-Message-State: AOAM533ka5h1G1bbYQypwqGffr7StxXEKPAYeo0ET4O3upST4m93gxnn yK4wFAFanmkuleOeqUPDf8E0ImtDzY1WhA== X-Received: by 2002:a05:6a00:c88:b0:4ba:96e9:ffdc with SMTP id a8-20020a056a000c8800b004ba96e9ffdcmr13768383pfv.33.1640034333760; Mon, 20 Dec 2021 13:05:33 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:33 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 04/24] linux-user/cris: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:08 -0800 Message-Id: <20211220210529.150423-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::432 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x432.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/cris/cpu_loop.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/linux-user/cris/cpu_loop.c b/linux-user/cris/cpu_loop.c index 0d5d268609..16a2e889e5 100644 --- a/linux-user/cris/cpu_loop.c +++ b/linux-user/cris/cpu_loop.c @@ -28,8 +28,7 @@ void cpu_loop(CPUCRISState *env) { CPUState *cs = env_cpu(env); int trapnr, ret; - target_siginfo_t info; - + while (1) { cpu_exec_start(cs); trapnr = cpu_exec(cs); @@ -38,8 +37,8 @@ void cpu_loop(CPUCRISState *env) switch (trapnr) { case EXCP_INTERRUPT: - /* just indicate that signals should be handled asap */ - break; + /* just indicate that signals should be handled asap */ + break; case EXCP_BREAK: ret = do_syscall(env, env->regs[9], @@ -57,10 +56,7 @@ void cpu_loop(CPUCRISState *env) } break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526076 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4453055imb; Mon, 20 Dec 2021 13:11:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJy/GdmxgdRIiGZhuNA3rGd9OdXlaJ+k8OU+Cn+bv7z5TjCzXco1hQgL1eHXX0SYtIT/1i/U X-Received: by 2002:a92:d304:: with SMTP id x4mr8761199ila.149.1640034690520; Mon, 20 Dec 2021 13:11:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034690; cv=none; d=google.com; s=arc-20160816; b=Mb+nvShNCiHD5S+fPoLSxh0JVUv9zHVDA9G1hAHgCQzrn+7hRhEt2BYCaiS9aC8d4e i5wiNCZdA2+AECG+Gaoe8JJiYgYvHLgOcB8y+MsHI6Bq/XQsH+9QvxeH1OqjjXXQYIX1 l7bpr+z7X1eR2aB2Mr1+E1euxlBYPkoJcPyLOZ6mT4q/LAvWr6wvAR57csP9vm6npdE2 4iynZvalx8+2Fmbv7Q5E19muG/VOM0BtjgK5WHaU6/FDdoeTlCa4STrN1e5RmYFvmDzM ND/MzMRi1XkT/S22ZzYghKw967mU9f1CG6s7LhtbRIah3VCvbhXb4j9LsVtaVqsq4dUO YSjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Cq+EqsUr6Fk7YRDOR1iWeMyRL/11b3e2J0Pnd4eMUrQ=; b=HcC0wt+VIeqY6NoTJshUKFvnEmvBTL3bu/a2WDyZyylZi8PIozpH4YC56j23MYIBxx MEO9pZa8TC7gS6bXAzyg/LoToWTOlTCM0DWxTdxs5mOZgdY48gW9dUwiPfdzgarBt0t6 iUZdU2inFyDpRSjQq2tl24k4h6ITOPrs4uI9jeLVtinXBqXMiC2zlb8OXgIRAjONbFSL lYLUf1b+SNStcbEuWRKYejhuRs9X2J82afPh7dzcMI443lXEg0OmPcy2b3J078NF9DNy S92q3oc7zVAVSPxiAY174Xaxq6p2ciizcopmPOw4AsQSk00Kt9FKPIOtpzyvl8yoXO4P UvPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ga3rCoEM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id f8si4481636ilu.171.2021.12.20.13.11.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:11:30 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ga3rCoEM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:41664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPwQ-0003TV-0a for patch@linaro.org; Mon, 20 Dec 2021 16:11:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52620) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqk-0000Cv-7V for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:38 -0500 Received: from [2607:f8b0:4864:20::530] (port=43825 helo=mail-pg1-x530.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqh-0005tF-Qe for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:37 -0500 Received: by mail-pg1-x530.google.com with SMTP id 8so2861374pgc.10 for ; Mon, 20 Dec 2021 13:05:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Cq+EqsUr6Fk7YRDOR1iWeMyRL/11b3e2J0Pnd4eMUrQ=; b=ga3rCoEMdutGA7gepfJ20KyKDlpEqPg/VW2r4JNBTycV90TBDaUri5jV7yYBzOu5jE cbspCSG5NBxcLulxIPtfwztz5bcbe7Ynhm2oW+wA34pqDgH9t62zPIJp20x2LYGQLP3X 1AodpqXqXNXxDjN+t204eb0T7MjCKrDvMGLuTPgijCeSj79oeNRry46JMoQbhxBMVDyf R/wMug5DrjXHoHFyFJLMCHCithxuh/6C7FkYW+CsojDIFYRA+cRSf8fvlkYkG32Xeaca Lr8OlvzY3meSd24jrlEZEtj7X9kfiUBMNQQbn+ZVmmKOlAbxoWz4edclwcV2+DykPTRF aAHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Cq+EqsUr6Fk7YRDOR1iWeMyRL/11b3e2J0Pnd4eMUrQ=; b=Lz8cge6xYPHP6bGjDGx6d5/4Zk2yP5d8ZE3mOD6Nwb44zKwnF9S47Bhd9h4kbpzokr B4AhEX1+IECHGxnc4v+QmSmsXK/PIlsxwmxTcxcm5/mWRlUSA0ltCqqFwCqD3XAU87Vu CADF83PiWlXm05+KPXOFZGFjvkTQpSh89HBgWc12JCa7u4dqhJ/YstKdQ41oJdktqn/2 LyBCCeoaSaiOAtwyDRdyRAbHOUuXSD+KB8XMhAN2K5h+12mYr2nACbFEh4IzSK8sfdZ/ 9R7TEFm3nkrrl6+ONR88MkM+Hc9uZoIywf3rcoHjMLt9N81HioOFcitJIhCOg3tiuqK3 uK1A== X-Gm-Message-State: AOAM533Y7WqyLbt+MOO5uNPbiPEn2zD+JQ7jWMzOkRLddaiZPLIIc341 yxpneXXaryI71JTtqBUvQiAv/a/cXuBkoQ== X-Received: by 2002:a05:6a00:1744:b0:4a4:f4e6:1cc0 with SMTP id j4-20020a056a00174400b004a4f4e61cc0mr17870833pfc.15.1640034334605; Mon, 20 Dec 2021 13:05:34 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:34 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 05/24] linux-user/hppa: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:09 -0800 Message-Id: <20211220210529.150423-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::530 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP and missing si_code for SIGBUS. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/hppa/cpu_loop.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/linux-user/hppa/cpu_loop.c b/linux-user/hppa/cpu_loop.c index 375576c8f0..b09caa1111 100644 --- a/linux-user/hppa/cpu_loop.c +++ b/linux-user/hppa/cpu_loop.c @@ -110,7 +110,6 @@ static abi_ulong hppa_lws(CPUHPPAState *env) void cpu_loop(CPUHPPAState *env) { CPUState *cs = env_cpu(env); - target_siginfo_t info; abi_ulong ret; int trapnr; @@ -147,26 +146,15 @@ void cpu_loop(CPUHPPAState *env) case EXCP_ILL: case EXCP_PRIV_OPR: case EXCP_PRIV_REG: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPN; - info._sifields._sigfault._addr = env->iaoq_f; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->iaoq_f); break; case EXCP_OVERFLOW: case EXCP_COND: case EXCP_ASSIST: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = 0; - info._sifields._sigfault._addr = env->iaoq_f; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, 0, env->iaoq_f); break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->iaoq_f); break; case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ From patchwork Mon Dec 20 21:05:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526073 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4451335imb; Mon, 20 Dec 2021 13:09:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJyMSOYszPBq4Vnh8/TIy8UYeyfXcanESpN+ZExMoZzdg2RLqWnGa7ZNhAXg8P92qqYH+s+P X-Received: by 2002:a5d:9650:: with SMTP id d16mr9241392ios.15.1640034569019; Mon, 20 Dec 2021 13:09:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034569; cv=none; d=google.com; s=arc-20160816; b=zW+tRLXXMl2O2pscddT5ta57n4FgLAoTXFXE3/SfYz7MgeEKwPVeYAU0jWntIgI+NZ r7PuTtrec3MdNQAqFxmJdz8Q7O6L58GoyA5lEYqWHIOxJHKrfqYy07oGSPPpken6isg6 Sl1PyA8kPbHQe8n2LEgVhNnefF/taJv2payqBwhvt/vb7MUdTveSDlVO9NMRA1vgYA+r 6fqLt9+u2F93FgTrHZkaER0/0RFJgbUniv0OIzuo5vdyUZkptWTo8qiB9daHQi3doOqT j/QdgOrUXOEO07hQqUo3sxiWinOMz/STL1WbQrAKMz4f3Z8W4oSTNcwHoe/0tF5gWWS5 6/sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=3GSy2kvUvNsh+WtyFYrRefI0IkOd8hdjsqXAQKDL2Tk=; b=ide68LA/Gd4cDf0489JdCl/61BdDbtda7NrusNdz1Z4tymHrJmY/cT5ehJRgXEuHlp UakQi1QOerFmONiy0xY/bKh8+PCplhL8TAb3j0n0Y9rjsWV/jHeX9i7zSxLo3bXHXKV1 kQT7g2TkC/URSskqhxRXKjQkAzAsHBuHkzFCMmJ4dYMQQ5E2OyrQNbm2wz2A2SzYEMcx ON4AaKQgKMghcORkTFHSCnvPQ3DGZptrwZrie5fgPAifnDLCgKtSprFcZ13qPxZaDIa4 FsRHpzBBgxJ5IRxFiAQu1vj+adYtXVC23GuSXuaibVV8L9dOrLN0o8f0Dnsokrwab2pG wsvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="LW/CMeQ3"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id b7si4313495ilr.96.2021.12.20.13.09.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:09:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="LW/CMeQ3"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:33282 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPuS-0006EB-HH for patch@linaro.org; Mon, 20 Dec 2021 16:09:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52614) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqk-0000C1-2X for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:38 -0500 Received: from [2607:f8b0:4864:20::436] (port=45028 helo=mail-pf1-x436.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqi-0005tL-JQ for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:37 -0500 Received: by mail-pf1-x436.google.com with SMTP id k64so9763559pfd.11 for ; Mon, 20 Dec 2021 13:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3GSy2kvUvNsh+WtyFYrRefI0IkOd8hdjsqXAQKDL2Tk=; b=LW/CMeQ3by9q6XNZGJoEKKHuuY729WN8kNkQiwpyZN0I+rbKoigaGX1TA5k5yCzsqc 0TlfhJ11Z1y7QDul4rT5CnYqwAriWxp5A9gPSfkVITboEu8JcpuZxT4Xb/q+zCMs0sw/ VW2uncAy72Q7SZm5AJOKr99yQ+HJdo4IdzXBX8XIlTefO943IJx0bM3tBpHLqVt8Hw+X n61IEAaIRchiLxmJN/j+O8VAuGrxDfe0ycH6QsSs3tiDo0mUk+fbKAT18VF73QQkSAim vbw5yRQIOzVzfHQVtgTX3E3mNyCCyp/CPaUOlj/Y03SNvj7K35jblHfq0olQKrxbHmjB d5UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3GSy2kvUvNsh+WtyFYrRefI0IkOd8hdjsqXAQKDL2Tk=; b=d5IP1kNnnTeG/638I82mmdt2s/lHU2gqrfBzZFAd3aCK7+8LxDk3gc70xGvS7nL3h0 EPdGOyW7CWYzZO/0sTNk5CM0m8mBWby8eGHb0G6Wxs8+yYgD6UXXB8v7XdzUPyEOQaNg xO9E/s8Gjt+Zqsp+8NPqSC2/pcVq/x44/wpK6wE6yPPlMsWjVrbxJh+c0F9AwtpihqiU 1dMQLRf/0ASP6LYamceePrFduSbxptBWtLdSiiHsc4jc9Tib++8b+QTeykyiZV6O1t5S heVgmiWiOtKIs95tB4ofj8/IkDSrJwf/Htk3h/9WmWphoMcIlz48nRxniX9uX5t/cCwz v5LA== X-Gm-Message-State: AOAM531lieidIj1k/pTXfnKTY88xhG8wSkv3Q1oCDVD7m8+HCq68LCTC 4oFJewtrH0T/9NbYq0Ubi+fl7YBC5GeqGg== X-Received: by 2002:aa7:950d:0:b0:4ba:787f:c5dc with SMTP id b13-20020aa7950d000000b004ba787fc5dcmr17695085pfp.46.1640034335420; Mon, 20 Dec 2021 13:05:35 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:35 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 06/24] linux-user/hppa: Use the proper si_code for PRIV_OPR, PRIV_REG, OVERFLOW Date: Mon, 20 Dec 2021 13:05:10 -0800 Message-Id: <20211220210529.150423-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::436 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" These si_codes have been properly set by the kernel since the beginning. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/hppa/cpu_loop.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/linux-user/hppa/cpu_loop.c b/linux-user/hppa/cpu_loop.c index b09caa1111..8e13f84a64 100644 --- a/linux-user/hppa/cpu_loop.c +++ b/linux-user/hppa/cpu_loop.c @@ -144,11 +144,17 @@ void cpu_loop(CPUHPPAState *env) env->iaoq_b = env->gr[31] + 4; break; case EXCP_ILL: - case EXCP_PRIV_OPR: - case EXCP_PRIV_REG: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->iaoq_f); break; + case EXCP_PRIV_OPR: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_PRVOPC, env->iaoq_f); + break; + case EXCP_PRIV_REG: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_PRVREG, env->iaoq_f); + break; case EXCP_OVERFLOW: + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->iaoq_f); + break; case EXCP_COND: case EXCP_ASSIST: force_sig_fault(TARGET_SIGFPE, 0, env->iaoq_f); From patchwork Mon Dec 20 21:05:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526080 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4455506imb; Mon, 20 Dec 2021 13:14:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJzRNvEYZOKb293j7z0VT/8Ho1vF9xG04JnkHPzsBkbGmZcq3FZcwmdG5r1IIpX/N1ydZu1L X-Received: by 2002:a25:d70e:: with SMTP id o14mr9653ybg.427.1640034886889; Mon, 20 Dec 2021 13:14:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034886; cv=none; d=google.com; s=arc-20160816; b=XW9qwPPlSpyfsNihiDBvwWcaeITm/P+Xs9TmMikrGlwHorgj045n53HBoh/IA/I4R1 58RQ6jC+qXZ9V1yJLaojOJppNBovgrltDb5gC5q9vTt6cqAk9ldaqmjm07QT5Q307zBp IiLdX/YRCX85pIGkz4ULKJG23Hp507NyY2UvwmbkVG4mAfm98jeUDUXELJV/Z71WTevQ M0DlyoZCmeOrcrqm9mYN1r9LJ+5CAdFYLKag6RYeoFl7EE+SkjaDOqyqF9bQE0uTaxj+ 0SfTgCjtp0MVIJcgqaNroxH1v8xXxrmtDXmPb5t4VKa6Qe4vF6QfV/RVfyPqojVedun7 LFXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=JrjGaJbIPN4t2pKJl7K0EquK8iWYAYK0CsxpksEWHF8=; b=Iqfqj7p6iJl6jd2QOzFgbOfiUjC8Xyj+11wRjshm07iejWjDEwd0IyCECn59yIDfTd XXI3KcDWMh+9UU2ltVWIklbEhLRw50eZAtCFvlMnZn7ZkZkAYdI4XXfNybTmtzBRxrx6 t02FiJn46SkIkPg9gBf2Z8fFDTN1MdG+2wZsBw9yyPPOLZFU4pqaYWFaxpMsf2J16m8I 8kCXjRHUMaUvEVUyl1tjBuGkcBwtoif/K1WzeVG41i5miIdD7/VTJywlKeYrTlJomBsG ncWIzhba/POtRcWaxZArmFjhDIJQtlW9Fet2RpedtI9afl8wS4aAiQnwd4xEo2j4nQKS gCmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BaN7kxll; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id o201si18128152yba.307.2021.12.20.13.14.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:14:46 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BaN7kxll; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:50404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPza-0000se-Bc for patch@linaro.org; Mon, 20 Dec 2021 16:14:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqk-0000EG-KS for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:38 -0500 Received: from [2607:f8b0:4864:20::534] (port=36584 helo=mail-pg1-x534.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqj-0005tb-85 for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:38 -0500 Received: by mail-pg1-x534.google.com with SMTP id 200so10435689pgg.3 for ; Mon, 20 Dec 2021 13:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JrjGaJbIPN4t2pKJl7K0EquK8iWYAYK0CsxpksEWHF8=; b=BaN7kxllirHjRAIImX8BX7DOy+y3K9dompu3UjOjSa6s85p6d+yh8UZBXyw5y6X62j gctHQKgfqY3wyKm8Izu5tPWYGi6AjD42DY9yio+viYYja03rrdAay4Np8QMGEwbOMLka CeizCDEredXjimd7RlspfBJ3+rftiE42WFroVT2pBiRHKNFmbxoWcPipLvq4boipW5wo NifSUJ61xy4KnxJJB3tvpBo8JNX8cYnuJp3OtZtSO6mOdv/4kFo6ZkJTPnlZU/yiEmzE jMDeCS8Mwj4OtWjHXneNhMZZeq6tNvfnaRn9A8mCXp0vqgS93uR9Jp6hx9rIEIRVGPwX r6Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JrjGaJbIPN4t2pKJl7K0EquK8iWYAYK0CsxpksEWHF8=; b=6+n2IcTlVybpMUmuylECtIemoDyMktItsy14Wg9pov0orbaLAv6b5wFkMC/ffKiXz+ 3vp1s592kd36FjKILx04Ch26ttZQeuxNQs1ATBL/uR894NXGeaTTU5q7xge4E6+40Bqr vuNAke8qo23AJISio8jHtm1Fu9p36vtM2wgGDBzxUuLxZJZTizS8JdDXZsgv4QOPj5UL WIqzHuCB0LIsjbRysA5T6QLhwPc+F9Mp+Ew36kf/C0Fu+7NYaXCc/6ICwenqr2R+7wmV cM5iBHcberXjZnTygF0gFGxLxvIpQShc51IU3SVKnl02mmi7emv9VIAFx52Zeys8OXXK zrow== X-Gm-Message-State: AOAM532zwiXo/V3Zi9v6v7D50isOKO2C4wsWJQLMoL+JGXrja5XVO2Xu IIJQzRDIQdk0KfxtaJy3TDkyLAxugywZlQ== X-Received: by 2002:aa7:9438:0:b0:4a2:c941:9ac4 with SMTP id y24-20020aa79438000000b004a2c9419ac4mr1287291pfo.12.1640034336081; Mon, 20 Dec 2021 13:05:36 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:35 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 07/24] linux-user: Remove TARGET_NSIGFPE Date: Mon, 20 Dec 2021 13:05:11 -0800 Message-Id: <20211220210529.150423-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::534 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This define is unused, and we have no similar define for the other signal sub-codes. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- linux-user/syscall_defs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index bc18a4f248..a738bdcecf 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -688,7 +688,6 @@ typedef struct target_siginfo { #define TARGET_FPE_FLTINV (7) /* floating point invalid operation */ #define TARGET_FPE_FLTSUB (8) /* subscript out of range */ #define TARGET_FPE_FLTUNK (14) /* undiagnosed fp exception */ -#define TARGET_NSIGFPE 15 /* * SIGSEGV si_codes From patchwork Mon Dec 20 21:05:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526074 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4451338imb; Mon, 20 Dec 2021 13:09:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJwHmTyOy8EhDsv9IQ3BGvMFNUullW9gS+tDTu1rmUPQkDR8y3uIuH95FacDFN1VwYJuw5td X-Received: by 2002:a5d:9ec2:: with SMTP id a2mr9744210ioe.44.1640034568982; Mon, 20 Dec 2021 13:09:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034568; cv=none; d=google.com; s=arc-20160816; b=ANbBqrpWShZjO4gRLi9Nr/HEsIBgf5/Vg/TIa3am+cd0Mw0aa6oCc5ZFQTW8/BR4DX RGjebnph/WhqgJlH2WZRfqKtC5mTHW4syRk4eTx1xrJbBlR30HxSpBrdmjJ8toqciDy4 +SyOuX5Ht0ydFSHOMItdGf9K1Oz/K1YXq8Ltz6foI+tMVnf3ZHg88pLizBIz0u6mB34t c3uKZ5Gu5y4QUPwYI5WSeYfn3kYLuCc46e+sZRclu4YK5WVDijXVuqorIDLX1IvHx28E DP9oEAF4qinT11sl2WoIM/Rq2SaardzGb3kEcrYJ8FFvOpWjfGk32/a8vbrHLHNfvD/H l2TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=+z+2wgajKIXNhb3GkYsTaJ6MztPE6mnhuYtE6HY72+A=; b=pBaEikvfLSsd1pbSIkurMCvMzneFskvi3iOARigGvKT8lQ89sXxLwRJq4xzJThJMp/ jOLJKLEVgdjvPMXUHIJO6cKbGiWyQoNZLdaAtTL3DZyss0ok4tBp5Z81KyqOskpONhdJ 9dTih1JSJ9He3w1XE+mIJ3ad7OuQ5uj/aC52Z84zN5B8Uq0Lbz+5BYl3lSGRlE+lx3M0 LhUPVv44phR3nvpSpH+4EW0wMzJDNUJPut0WhvDKp+r0D94ocKwlYkQ1rXopXGjXciFB 5tJkMMUinIkdl+sjBJ1x1ICzCwozC9pqeehGOSyQ6TM9/ztETlw27TO+YpT0ALCbpX6D vjIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="kCgsih/w"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id m39si13626299jam.135.2021.12.20.13.09.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:09:28 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="kCgsih/w"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:33314 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPuS-0006FT-HP for patch@linaro.org; Mon, 20 Dec 2021 16:09:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52640) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPql-0000Gy-Ga for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:39 -0500 Received: from [2607:f8b0:4864:20::634] (port=38669 helo=mail-pl1-x634.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqk-0005tr-3A for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:39 -0500 Received: by mail-pl1-x634.google.com with SMTP id c7so259820plg.5 for ; Mon, 20 Dec 2021 13:05:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+z+2wgajKIXNhb3GkYsTaJ6MztPE6mnhuYtE6HY72+A=; b=kCgsih/whxvrAX6yqcIjJzOSoDeZDMybnO18KyPV7CbctYALnbH0JmR2+0aXP6I0Jg zJ5xKvqZkTNi+pSUXBN8dhkAG8edZoUr6LUTg8Y4j4+BBfL0qHVUHZcgF5Rk1sJbfHa3 N9JpK1SIoHI2mH7enUPB1mUrxTMW7zFpkEcsMxhLzsM0fe0znSojWplfnLuKEpkOk6dm GQkfGBSKaqIG+gsleU0lICxLXTQSyG8UvsdAneMLlDc3fBGClOZ5tGOXIb7O6EowINW2 noDDOpM06y6HijzdgZovq3ItqEXzn50NHAwufJ+94tYJj/fLLw4sxUSnefS6Y00YCQ8H EtGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+z+2wgajKIXNhb3GkYsTaJ6MztPE6mnhuYtE6HY72+A=; b=V/hhwYRv9iLHOlVqImRQJCgpUnnRgefAbda9UT7p0HVi7CYZsDm96X3Pc8iWVIbrTa RbCuD2e66668MQzVHdZ7Z58IDTpox27wssYDTa7kAo87Kl/McZ/wPoiuZAyVnNRN0acy Vtobn+9fGHZdWiVUupKGGO1gI3MKCaGMHCaPK16Rbn30802ayrDpVPPTTX4gyzLKSSdI OSMNe03ct3SyGF/X2gAF+E3AR/jKR+olzi9eMtLJLgdDXz2uI5tY4mJKSE7mfm/8pWI0 4s1Z7bHqR/xwO93D+xZwixphmOOYoPkOeoRMALMkKiENcd/jZhGaN8CvlfuenN+Lx5hN TafA== X-Gm-Message-State: AOAM533co4jps57bMZTcSaXuRT/vBJjhrg8iB6gwvjYrNXF6s/JsJS4x r0PaZdCVOWCqN3/7hoYLCIzHuiTioUAVTw== X-Received: by 2002:a17:90b:4d0e:: with SMTP id mw14mr965374pjb.151.1640034336870; Mon, 20 Dec 2021 13:05:36 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:36 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 08/24] linux-user/hppa: Set FPE_CONDTRAP for COND Date: Mon, 20 Dec 2021 13:05:12 -0800 Message-Id: <20211220210529.150423-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::634 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This si_code was changed in 75abf64287cab, for linux 4.17. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- linux-user/syscall_defs.h | 1 + linux-user/hppa/cpu_loop.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index a738bdcecf..f9240702eb 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -688,6 +688,7 @@ typedef struct target_siginfo { #define TARGET_FPE_FLTINV (7) /* floating point invalid operation */ #define TARGET_FPE_FLTSUB (8) /* subscript out of range */ #define TARGET_FPE_FLTUNK (14) /* undiagnosed fp exception */ +#define TARGET_FPE_CONDTRAP (15) /* trap on condition */ /* * SIGSEGV si_codes diff --git a/linux-user/hppa/cpu_loop.c b/linux-user/hppa/cpu_loop.c index 8e13f84a64..c33a59fef5 100644 --- a/linux-user/hppa/cpu_loop.c +++ b/linux-user/hppa/cpu_loop.c @@ -156,6 +156,8 @@ void cpu_loop(CPUHPPAState *env) force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->iaoq_f); break; case EXCP_COND: + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_CONDTRAP, env->iaoq_f); + break; case EXCP_ASSIST: force_sig_fault(TARGET_SIGFPE, 0, env->iaoq_f); break; From patchwork Mon Dec 20 21:05:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526077 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4453097imb; Mon, 20 Dec 2021 13:11:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJxYckB7+M49L2c5s2e/XC62Mw0bPkXtiNmbYH/3A9cEfb4oLYoI7ZEaGImTbUZr2HHAjDb4 X-Received: by 2002:a02:864b:: with SMTP id e69mr23477jai.9.1640034694254; Mon, 20 Dec 2021 13:11:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034694; cv=none; d=google.com; s=arc-20160816; b=NLraUimH/EGaBPBw0pdsHifM6tiIATzhdy7S99hWIaf6+qH8wVpkF+0SolcbRv1kzm AOjvlslVJzUrAvAvCe6tDRCaNnyH4Ma7ochNg6lkuiEjsgCcYlSsz3Zc5h5LVYTuh7iS 6sFMzaAetDj+5+t92KHb1hrjNqD11chENDE1H0OFuxQ6gPGFBoJl6YzQW41Jkww+5TLL U8BtHT0sZGFPbwSqTbqqC7/2PkVLRXAj9M2NAuMHdMv4iJAPVvyWszWB2DufDFV+AKZK 83Ajvtio5iSED1yHblgqyGFeFDA8jeybCqTeWFxIoV0NNZGXToP+xPuHeKaGVT5KlII1 hPFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=eorTYpTGmRMqlosPMgNCUx4CrYGaNy55bmumMBNoYKc=; b=jANgcQYMjLj0lyAogismV3+9ffmaFmcUz3qrtRd25STjqm70x0fP7r2ebKNPojVoTO 8QNaUS4KgOKUJa5rXdgTcS5hSyB0rZN7nqHnMK9nxpSSuDmU2EI4d77jC3dQP9YuFQK+ lgs/gP47qd7K9ygXvTQ17t0kw//q+iZRb1CQfOQ5yrN8rAMZI6BgFr25PRlu+rD6Uxze BrMAxm/aHsSCGKjqcMReP3V2PeJx5pm4wP4LrzSCFIg7cUICC5882X6A1iXsL6LZynLI y6sJ/yykngazcEzcrxZqBGQ9T5WoTFSxouXKMsHbHzOJ+bgVv+LCo3l+CCoHeQFYuQM3 PKmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=uRGKkW9c; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y18si6364342jat.66.2021.12.20.13.11.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:11:34 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=uRGKkW9c; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:41984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPwT-0003gy-Pn for patch@linaro.org; Mon, 20 Dec 2021 16:11:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqm-0000LM-HP for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:40 -0500 Received: from [2607:f8b0:4864:20::62f] (port=43688 helo=mail-pl1-x62f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqk-0005u9-VQ for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:40 -0500 Received: by mail-pl1-x62f.google.com with SMTP id m24so9019238pls.10 for ; Mon, 20 Dec 2021 13:05:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eorTYpTGmRMqlosPMgNCUx4CrYGaNy55bmumMBNoYKc=; b=uRGKkW9cuq8DD9IfL+LVdwdl+aMB8Kfz5OYXd6uJIu4rXlH0PhQ7QpxC6VK4LEHLZK C6WY+9NJIUb6Dr/wS6Alwj+ydkOtDFd78sTG8lK0us1P9BjmVVmeMMh7xShFPwqmOp7h QnuhVDACo5vztPkdqr4VkQ/C/tXJt3bxLFln99hkYqf9bEIaKlKpBR2QCjp98ARl9/1D 4HW30BT0c787v7/OP47YP91nYmnK4bGsdLBnNK/2LLP2YthL1iRzkOuTQ2MLfkPUxN5Y QZc5sczCl3HPBvyihV+K6lbpNwTBKcjj5dbEU0InNFHbbdAXaDh67O4mgJte3soKpnay 75Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eorTYpTGmRMqlosPMgNCUx4CrYGaNy55bmumMBNoYKc=; b=R3hys7uW/hPCsASWTpqHqJCpiQIsvxlaCr9fbgqbK8lUzy6odCNAjBqv7BUrVi2rGk dCJIkPSZgrELca/AuYGI0723A+E+JYWKyNWXLf4Ff3tyVPtsNJKlwZlRF2S7bIJoMpzb 2kdtCfdzLhM3+XVFcogt9I2pFjQFJ80S0FxD0LST3UvH1/dwOLSsgIudvNDSLid32B1j kgDW79px8HukhD2teH27jVmhQ12z2JInHRy+vwpcqtncl6tStb9Nkahn5S1bbFBZyw82 JSdgLdoqo3NJmUT8J1AzbmJm8qltQqzPYv18eh5uum51/UUwLk0aG3Yt6mkt0CeKPdfS bJ0g== X-Gm-Message-State: AOAM530dRFRUPjSSZDx6uhFSnLMzoDts6uY456dKS0oJffRMVhP8+BjP K53KcGOSsLWTNG577gJPTtiqZpJYMfWzew== X-Received: by 2002:a17:90b:19c7:: with SMTP id nm7mr957397pjb.107.1640034337698; Mon, 20 Dec 2021 13:05:37 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:37 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 09/24] linux-user/i386: Split out maybe_handle_vm86_trap Date: Mon, 20 Dec 2021 13:05:13 -0800 Message-Id: <20211220210529.150423-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62f (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Reduce the number of ifdefs within cpu_loop(). Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/i386/cpu_loop.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/linux-user/i386/cpu_loop.c b/linux-user/i386/cpu_loop.c index f6a1cc632b..a372cfe1b2 100644 --- a/linux-user/i386/cpu_loop.c +++ b/linux-user/i386/cpu_loop.c @@ -198,6 +198,17 @@ static void emulate_vsyscall(CPUX86State *env) } #endif +static bool maybe_handle_vm86_trap(CPUX86State *env, int trapnr) +{ +#ifndef TARGET_X86_64 + if (env->eflags & VM_MASK) { + handle_vm86_trap(env, trapnr); + return true; + } +#endif + return false; +} + void cpu_loop(CPUX86State *env) { CPUState *cs = env_cpu(env); @@ -259,12 +270,9 @@ void cpu_loop(CPUX86State *env) break; case EXCP0D_GPF: /* XXX: potential problem if ABI32 */ -#ifndef TARGET_X86_64 - if (env->eflags & VM_MASK) { - handle_vm86_fault(env); + if (maybe_handle_vm86_trap(env, trapnr)) { break; } -#endif gen_signal(env, TARGET_SIGSEGV, TARGET_SI_KERNEL, 0); break; case EXCP0E_PAGE: @@ -274,22 +282,16 @@ void cpu_loop(CPUX86State *env) env->cr[2]); break; case EXCP00_DIVZ: -#ifndef TARGET_X86_64 - if (env->eflags & VM_MASK) { - handle_vm86_trap(env, trapnr); + if (maybe_handle_vm86_trap(env, trapnr)) { break; } -#endif gen_signal(env, TARGET_SIGFPE, TARGET_FPE_INTDIV, env->eip); break; case EXCP01_DB: case EXCP03_INT3: -#ifndef TARGET_X86_64 - if (env->eflags & VM_MASK) { - handle_vm86_trap(env, trapnr); + if (maybe_handle_vm86_trap(env, trapnr)) { break; } -#endif if (trapnr == EXCP01_DB) { gen_signal(env, TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->eip); } else { @@ -298,12 +300,9 @@ void cpu_loop(CPUX86State *env) break; case EXCP04_INTO: case EXCP05_BOUND: -#ifndef TARGET_X86_64 - if (env->eflags & VM_MASK) { - handle_vm86_trap(env, trapnr); + if (maybe_handle_vm86_trap(env, trapnr)) { break; } -#endif gen_signal(env, TARGET_SIGSEGV, TARGET_SI_KERNEL, 0); break; case EXCP06_ILLOP: From patchwork Mon Dec 20 21:05:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526082 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4455561imb; Mon, 20 Dec 2021 13:14:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJy2NrL8li5fE1Cfespxc2tRf4n+CrJd/JFvtcM5877fvw8WlZ86EzLyxElis7NUmXG3GnKp X-Received: by 2002:a05:6902:72c:: with SMTP id l12mr36782ybt.89.1640034890739; Mon, 20 Dec 2021 13:14:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034890; cv=none; d=google.com; s=arc-20160816; b=dNZa17Bxltl4sTDlsXrmeoQxiz/9MTJhJLYHtTjLwR78IhYqJAHHD5xUULPuB8ev41 qDxnjWnkcC3KkItG1jtaK/wuDshg8Slsfin+vScAlAH7mXeo36GJzeAMULGgkU3kz7WK Lk+lfftAzvQLPIjbYDEJMIOb1eDqXBzGsPNkT1kX/F9SHHSurGS9TFNt5V0wy1942zzm drMwiZLBplyZhvUl8oq4pWBDKcrlGpVH3x+8EkcD7YECG1qSN4kgni7tLdE3f6UlKwKu 7pcrUoi/Iab5Nc+z3yCvDQeqWEaa68wNiyl9EAffBas5BKynbFwT778IiTGFNGqua5KV xQcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=oryq+LuMrMDBeDTMJmIY7vqQWuye0TU114y1grFNoXo=; b=S7hFUuTV+iuv3hB5Dhl40hs7IVetUAEz1cQVzVCpn+mb1bMjcNX1SOau6YwskWyPNc 0orWHeEQdd4zfZPtIkRf6PX1pBkOhhn/MbQtAkwXIed2VnovxbDhVSQwe8qypR4X3NsO psw+/Wm5jOx1pbKa5cUf0nN8CVjYrKh3EuKyV6shfPpRe4I56UBWwsKyTRsRUH6h/8dm lBnPNxwtT3P45I49Q8VMP4WHTVhqyY4gESSiQXUX8jjEXZZGrTId+Dol+aQllQCgU/tC We1Q3Yze6TEs7yTir/3hItnO/m4RcdiZxXEfPlNxthTA8FCITy5FjVCubUzlvZXGUNiR +0KA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=nP5Z9l9V; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d10si17852825ybf.595.2021.12.20.13.14.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:14:50 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=nP5Z9l9V; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:50718 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPze-00014o-5n for patch@linaro.org; Mon, 20 Dec 2021 16:14:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52686) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqn-0000Pk-I8 for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:41 -0500 Received: from [2607:f8b0:4864:20::436] (port=40715 helo=mail-pf1-x436.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPql-0005uO-UB for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:41 -0500 Received: by mail-pf1-x436.google.com with SMTP id z6so9792091pfe.7 for ; Mon, 20 Dec 2021 13:05:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oryq+LuMrMDBeDTMJmIY7vqQWuye0TU114y1grFNoXo=; b=nP5Z9l9VHulFIBNRYSElE9KBVIGj+lJk4C+aZNcPfrw+B8VRYoFZodYOgNog0bC3PP yxyvMyeo/502IDZY+BTzvSnfJCD0OJK5WUqWfBLsMDGraa+lh8VStgD/5VJa70VyqFvg s/LP0crL67waByxk8uoUzmnUzPnfxzIGv0bZMfsULMeJHZzsOI3gC9k6m/ThbcTUgood lquriqqcbXDpWYiuq5TGwdAIhNf6LcJqKedc+A45FOg5AgJX52VQTrE+FTDuVMAt1djN SSc9UxiJL5x/jUKwvEpgVmiBjw3G8gFKERpjAUTYw+E1Vda6fHNlSIdKezxH5wwVWfN7 dHOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oryq+LuMrMDBeDTMJmIY7vqQWuye0TU114y1grFNoXo=; b=DJxYcCAMknpvPH3NgtpyFgUYvKyfc+LoT4d5o283awKjwazYQBp3Lm/VQu8W4RGbmr aiV/LDtTRj7hfE1xWVjrJbPI3eHGGugD2PgGbew9X8AMp5ITG5NDOQq8LscJpHKu9ub3 nvEdccd6rp78JhFTIwSh4nMeoyvb0FcG46luGgjX8Re3u0IgBYv/MlEnKun2RcSM7EWO TBZrgoSnvKbT0yhVMpOrig909RZrTQpZnOK+z6d8hHtPExFqHtx7KfVrLyQ8QgOsgw8A yc9zLg/01IAemUqaYTdQE0lCQP2UwKfW6+7A4L13/HqkjZ9fNpux5FrvwXd3fvmQzucl 6akQ== X-Gm-Message-State: AOAM531ABSHprhnjxOy4LjyXFmSF06JYIcXXhXbe6xe41gaUj6XYVULw pcRb8dpO1eSeCwlkOuQNLXliohikNYyqGw== X-Received: by 2002:a05:6a00:10cf:b0:4a3:124d:bb81 with SMTP id d15-20020a056a0010cf00b004a3124dbb81mr18145444pfu.75.1640034338654; Mon, 20 Dec 2021 13:05:38 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:38 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 10/24] linux-user/i386: Use force_sig, force_sig_fault Date: Mon, 20 Dec 2021 13:05:14 -0800 Message-Id: <20211220210529.150423-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::436 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Replace the local gen_signal with the generic functions that match how the kernel raises signals. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/i386/cpu_loop.c | 47 +++++++++++++++----------------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/linux-user/i386/cpu_loop.c b/linux-user/i386/cpu_loop.c index a372cfe1b2..879d44b490 100644 --- a/linux-user/i386/cpu_loop.c +++ b/linux-user/i386/cpu_loop.c @@ -84,17 +84,6 @@ static void set_idt(int n, unsigned int dpl) } #endif -static void gen_signal(CPUX86State *env, int sig, int code, abi_ptr addr) -{ - target_siginfo_t info = { - .si_signo = sig, - .si_code = code, - ._sifields._sigfault._addr = addr - }; - - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); -} - #ifdef TARGET_X86_64 static bool write_ok_or_segv(CPUX86State *env, abi_ptr addr, size_t len) { @@ -107,7 +96,7 @@ static bool write_ok_or_segv(CPUX86State *env, abi_ptr addr, size_t len) } env->error_code = PG_ERROR_W_MASK | PG_ERROR_U_MASK; - gen_signal(env, TARGET_SIGSEGV, TARGET_SEGV_MAPERR, addr); + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, addr); return false; } @@ -193,8 +182,7 @@ static void emulate_vsyscall(CPUX86State *env) return; sigsegv: - /* Like force_sig(SIGSEGV). */ - gen_signal(env, TARGET_SIGSEGV, TARGET_SI_KERNEL, 0); + force_sig(TARGET_SIGSEGV); } #endif @@ -266,53 +254,54 @@ void cpu_loop(CPUX86State *env) #endif case EXCP0B_NOSEG: case EXCP0C_STACK: - gen_signal(env, TARGET_SIGBUS, TARGET_SI_KERNEL, 0); + force_sig(TARGET_SIGBUS); break; case EXCP0D_GPF: /* XXX: potential problem if ABI32 */ if (maybe_handle_vm86_trap(env, trapnr)) { break; } - gen_signal(env, TARGET_SIGSEGV, TARGET_SI_KERNEL, 0); + force_sig(TARGET_SIGSEGV); break; case EXCP0E_PAGE: - gen_signal(env, TARGET_SIGSEGV, - (env->error_code & 1 ? - TARGET_SEGV_ACCERR : TARGET_SEGV_MAPERR), - env->cr[2]); + force_sig_fault(TARGET_SIGSEGV, + (env->error_code & PG_ERROR_P_MASK ? + TARGET_SEGV_ACCERR : TARGET_SEGV_MAPERR), + env->cr[2]); break; case EXCP00_DIVZ: if (maybe_handle_vm86_trap(env, trapnr)) { break; } - gen_signal(env, TARGET_SIGFPE, TARGET_FPE_INTDIV, env->eip); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->eip); break; case EXCP01_DB: + if (maybe_handle_vm86_trap(env, trapnr)) { + break; + } + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->eip); + break; case EXCP03_INT3: if (maybe_handle_vm86_trap(env, trapnr)) { break; } - if (trapnr == EXCP01_DB) { - gen_signal(env, TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->eip); - } else { - gen_signal(env, TARGET_SIGTRAP, TARGET_SI_KERNEL, 0); - } + force_sig(TARGET_SIGTRAP); break; case EXCP04_INTO: case EXCP05_BOUND: if (maybe_handle_vm86_trap(env, trapnr)) { break; } - gen_signal(env, TARGET_SIGSEGV, TARGET_SI_KERNEL, 0); + force_sig(TARGET_SIGSEGV); break; case EXCP06_ILLOP: - gen_signal(env, TARGET_SIGILL, TARGET_ILL_ILLOPN, env->eip); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->eip); break; case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: - gen_signal(env, TARGET_SIGTRAP, TARGET_TRAP_BRKPT, 0); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->eip); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526075 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4451341imb; Mon, 20 Dec 2021 13:09:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJxNkVRg7A+5ZyehzqNssOz3BNbP3SOLlDu7qVOkgKitT7E5eXBKwk2NiLtwis/oEdJ2dCF4 X-Received: by 2002:a05:6638:1122:: with SMTP id f2mr14581jar.33.1640034569312; Mon, 20 Dec 2021 13:09:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034569; cv=none; d=google.com; s=arc-20160816; b=SpChYgj8V+5aXugehWARQX8f/b2DfzrHVtvZOaylMnle4VSl21/gGV1+3g/zF7aJZS 6bwVE9j3i/vpWlXff6GH6xVHtljLYywZDcFScvlgepYC7gT3/AZ4sCy0/zJM44eyhVMv bS6D6qlGtwbx69oe9fN6R7L8FSCcroql7kS4lGl6041F0okvGwWEcbty+3cYcnj9FD/Y NBcfJiyGxUiKP86GhVJPHzj/tOwAMxTPGExfi4hXgS9c8I7kwdYhLyvND6RRI++1uOK3 7MwM3JANuYMlfIYpUurbpfBgDcZ7PrWykX93mCH+bvu0pgPzz/9/aqvthRIu+EJuw7oL jKIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=QjcTOyfouWebLv6OWxrEWdluQ6cixLMqNIiFZ1J5dvA=; b=Flyzo7YlVQpAXjqQ0hamhjCNV2EVXzHawv39z5I8nT2xbPW51v1fXGdQT8hNNPdF6+ 3NZAMHndeI+jRdUdQtK21JDvaCAoLOYu1L05c4yF/Mwk0FDjg86MjpP/KHfCzTaK18Rl rqi+Kss94OQRxxF80iDAnYoziYRKhUE1Dguj7+SwZnj/plZgSg5zJLRYidcf8UsZjsap UcPsDNpAW3h7/yBxqSBO1QL4lry8/1ZoyEozX4pDoIzQ7wStcOSFmtqm12ofuw+AhLjF vAvh/1gN0RyLcyzu/0HJE6z/spPLpGCMyIWIcoj+tZaelI8UbOP3amxAxRIlXDiH4LVD aauw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=c1U4eSTw; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a10si16251009iow.21.2021.12.20.13.09.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:09:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=c1U4eSTw; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:33170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPuS-00069t-QL for patch@linaro.org; Mon, 20 Dec 2021 16:09:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52718) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqp-0000Tt-74 for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:43 -0500 Received: from [2607:f8b0:4864:20::436] (port=33584 helo=mail-pf1-x436.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqm-0005ua-Lz for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:42 -0500 Received: by mail-pf1-x436.google.com with SMTP id 205so5608599pfu.0 for ; Mon, 20 Dec 2021 13:05:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QjcTOyfouWebLv6OWxrEWdluQ6cixLMqNIiFZ1J5dvA=; b=c1U4eSTw+mV2Ce0rQDWfiyKEXY6vSAJco4vuqyM30mRdJ74JkatyH1iSRpx9LL35TS nuwldtnT0Y1D5kX2EiwZxk134FR/pvknrwzKjopTjAt7DRbwTzY4fVvz4jD87Hw48ZTK 3D1wFFC2w4fHJyTzVMW7WMCBQSvdj8BG1LD2iBWWfecrzwCNebtmACCaJXZDMTq2aArm BGMCGZmrp94TsCtO/k3pqt0RgejBuBaD77R/zG64qkDgKlyeSNztd5j/JILxKHz8qLk+ 1yWltpj9c/fFafOHRpJjsKkYEIL9Qft8altjV+9GNbSmbp18bjebo3+KfC/bTwjtZ3NX VhkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QjcTOyfouWebLv6OWxrEWdluQ6cixLMqNIiFZ1J5dvA=; b=K2GW9QbcddNGscjsa2St97y614ho/kKzfAS2vQsKrfavLE4jmoRC+KqPlbAurz5FZJ rv7L9lVKxqR23xY8CxcJqYiJxdFRu85brNMSqtSXyZ68W5p4b3Ep06ENAb1rU9+nNlcw CSvfY1NREwQs8E0FfyRp9fLN0yc/jDkqqqbi8WYQVUjC/czDlG/bsx/CLliWF9FN+Ln3 UJr7AIZ782hE7+/uwnhUrZo7JEnzK5DeomYepBPUwyv1SBugNegZ7HVYWC2tki/0w3Uk O76OMZmw2rTsJPYWT3AbrV/vwOXlLZOGsJubZyox0EedhEoARa2djuSAX3+OFvaPzoym ReKQ== X-Gm-Message-State: AOAM532wLHZ+djPIFihn9ZHEX98188LzJfz0wOoQPtAKFKoYF4QfzXQt yzMYDPMXx2VLoxnPldFGR/+x88CAjFfhbQ== X-Received: by 2002:a05:6a00:2405:b0:4a8:3294:743e with SMTP id z5-20020a056a00240500b004a83294743emr18004289pfh.61.1640034339535; Mon, 20 Dec 2021 13:05:39 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:39 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 11/24] linux-user/m68k: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:15 -0800 Message-Id: <20211220210529.150423-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::436 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 790bd558c3..f6ea3b97ec 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -29,7 +29,6 @@ void cpu_loop(CPUM68KState *env) CPUState *cs = env_cpu(env); int trapnr; unsigned int n; - target_siginfo_t info; for(;;) { cpu_exec_start(cs); @@ -46,25 +45,13 @@ void cpu_loop(CPUM68KState *env) case EXCP_ILLEGAL: case EXCP_LINEA: case EXCP_LINEF: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPN; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_INTOVF; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->pc); break; case EXCP_DIV0: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_INTDIV; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); break; case EXCP_TRAP0: { @@ -91,10 +78,7 @@ void cpu_loop(CPUM68KState *env) /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526087 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4458101imb; Mon, 20 Dec 2021 13:18:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJzzs07FW2WOXAFnIc4xzMvbb6M2qbbBVEsrNCzvH5GfeoF5U+6ZXCePkiJlcm8X4BI77MBT X-Received: by 2002:a05:6638:411b:: with SMTP id ay27mr24476jab.211.1640035090981; Mon, 20 Dec 2021 13:18:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035090; cv=none; d=google.com; s=arc-20160816; b=rlHl2I5oLer9Yy2Jn+TNMl5sPrq8EvO4BGVtxH7NqAHwH7ioJ25kbrEs6UvtaeDoCn tUz1hjBlmce0Wzo/2xqIZab1hZAYoTe/1UYR2JXY6Zm2X4so0W8wVRMe5OYkwiNbsKAs VUnHCzQzTiyIP5nRLIOoJTUntYa1A600bDudj0Eajnwdj1ywqCClQ0+/fmGfnIyzXaHI J++BKJsgzZYo7waAhXc0lqySQ0wRu/SacH/gWewAXRKBnqr7zfQlRTcwYioAnTEDGpjG AXMz1xgSB9HEwTf+Xkqh4oMyzVBTk8VZpUxoq1A/24CX89kuCKFLGdpiarAwri+u4sLH LfCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=RWV9WOum/EgcRXAB9OWJGs5V6nSAWvrKYW5XslI2s0c=; b=c8y8j8IDpEyUwG4lPdzOEB/HHccYWGSuH2Hu/4UqOJd5Wg3R/3573ojjExMoA2clwq YqTv7X5ud28hwRX+4GpVX4td7B7lQOz/fJGT5q3rQNG+9IMyr3nyCHwSOfPOrdfv0X5k E+Aq9jkz43Tz8GH3ATKSV1ouT0EJcyuaKql4/PY92ma06YK6VA1t4VYMIf8bk5rRve+C 8UCj5M8rO/j/HUaYtPyOQglMkwNF7uz/8fSzrLv/jbpLTAxmHNK4QADm8TfA8J3X8D3T W8bGXvMPpwuBvK0c7r/r/kupWiFsNyZWUrlZ0QuqNjEJC++pqSw8pilClXS1naE4WkJJ tkNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ui6yCzwN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y3si16864160iov.37.2021.12.20.13.18.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:18:10 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ui6yCzwN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:34078 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ2s-0000UA-Ef for patch@linaro.org; Mon, 20 Dec 2021 16:18:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52714) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqp-0000TK-2G for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:43 -0500 Received: from [2607:f8b0:4864:20::533] (port=47097 helo=mail-pg1-x533.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqn-0005uk-II for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:42 -0500 Received: by mail-pg1-x533.google.com with SMTP id r138so10410388pgr.13 for ; Mon, 20 Dec 2021 13:05:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RWV9WOum/EgcRXAB9OWJGs5V6nSAWvrKYW5XslI2s0c=; b=ui6yCzwN5+lWeKDq3KNqxVURrgLoGvbrfAVYzpANY67V2pCQJkh+BzI7cvcMUtmplR q2KQ+8iK6ksxk6BrxIm8czevnqGvKijaJP1vtfSGyK+342JVP4OMtuogE+tq2REiosNV UmZrm2qJq03u6f4heHCeVclttwPQEB29JBJkUwtdA4dVA+RZzZ1yD8j1HCyIa2h+kX1i sH25DRvtRm/GweaiC3hXaZ1aSWE7qlSKvexHQcOq3ub3XMXIbSiB3n47uwTdzINffQDb X9x97eBS+uMUs1z72nn+fsU1mwzi0gyIvFjfB/z1Gtr7x0bmY7c68geupxKYwFM3+2Nc HJ4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RWV9WOum/EgcRXAB9OWJGs5V6nSAWvrKYW5XslI2s0c=; b=DPNfaqwILmg0fxlHamKmzwU0NugIit1KZ2DYfEwvUTWZ3C3kq2vs70jWuUbl9Qb0ZQ o66C80kjIaVqX8NnTwmJN11z/YHcGRRS1A9+XVc+uedId7gFBqhBik0jxjP+U9TjEmi+ d6oX7La3d68umMLmmMVvc3IP2DUhiR3jn97/WucqLRcst3GqPPhSsuDu81ULKNdT+AsZ DIp39co0C6ogMDFv30h7SiLkuQo5dankoKadCH7co9v6OugM7TO8G/dMMbvJdRVo6CZ7 TpmxxoQ58CYm5m5AHJeJY1tOXTb/m0y/V5XGQyRVnWU8orUAuX7lmDMubResev9g+b4I Hn9w== X-Gm-Message-State: AOAM530ONxIzln/l617uhM5LksbFobX74ruSPvIx9FAkeYzIeKfz7U+b FO+8LZUHbwP4yUcS91yS4WUyfdJAysmy2Q== X-Received: by 2002:a05:6a00:228b:b0:4bb:1111:65cb with SMTP id f11-20020a056a00228b00b004bb111165cbmr533780pfe.56.1640034340308; Mon, 20 Dec 2021 13:05:40 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:40 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 12/24] linux-user/microblaze: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:16 -0800 Message-Id: <20211220210529.150423-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::533 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/microblaze/cpu_loop.c | 61 +++++++++++++------------------- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/linux-user/microblaze/cpu_loop.c b/linux-user/microblaze/cpu_loop.c index a94467dd2d..263b68aea1 100644 --- a/linux-user/microblaze/cpu_loop.c +++ b/linux-user/microblaze/cpu_loop.c @@ -27,9 +27,8 @@ void cpu_loop(CPUMBState *env) { CPUState *cs = env_cpu(env); - int trapnr, ret; - target_siginfo_t info; - + int trapnr, ret, si_code; + while (1) { cpu_exec_start(cs); trapnr = cpu_exec(cs); @@ -38,8 +37,8 @@ void cpu_loop(CPUMBState *env) switch (trapnr) { case EXCP_INTERRUPT: - /* just indicate that signals should be handled asap */ - break; + /* just indicate that signals should be handled asap */ + break; case EXCP_SYSCALL: /* Return address is 4 bytes after the call. */ env->regs[14] += 4; @@ -67,6 +66,7 @@ void cpu_loop(CPUMBState *env) */ env->regs[14] = env->pc; break; + case EXCP_HW_EXCP: env->regs[17] = env->pc + 4; if (env->iflags & D_FLAG) { @@ -74,42 +74,31 @@ void cpu_loop(CPUMBState *env) env->pc -= 4; /* FIXME: if branch was immed, replay the imm as well. */ } - env->iflags &= ~(IMM_FLAG | D_FLAG); - switch (env->esr & 31) { - case ESR_EC_DIVZERO: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_FLTDIV; - info._sifields._sigfault._addr = 0; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; - case ESR_EC_FPU: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - if (env->fsr & FSR_IO) { - info.si_code = TARGET_FPE_FLTINV; - } - if (env->fsr & FSR_DZ) { - info.si_code = TARGET_FPE_FLTDIV; - } - info._sifields._sigfault._addr = 0; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; - default: - fprintf(stderr, "Unhandled hw-exception: 0x%x\n", - env->esr & ESR_EC_MASK); - cpu_dump_state(cs, stderr, 0); - exit(EXIT_FAILURE); - break; + case ESR_EC_DIVZERO: + si_code = TARGET_FPE_FLTDIV; + break; + case ESR_EC_FPU: + si_code = 0; + if (env->fsr & FSR_IO) { + si_code = TARGET_FPE_FLTINV; + } + if (env->fsr & FSR_DZ) { + si_code = TARGET_FPE_FLTDIV; + } + break; + default: + fprintf(stderr, "Unhandled hw-exception: 0x%x\n", + env->esr & ESR_EC_MASK); + cpu_dump_state(cs, stderr, 0); + exit(EXIT_FAILURE); } + force_sig_fault(TARGET_SIGFPE, si_code, env->pc); break; + case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526089 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4459689imb; Mon, 20 Dec 2021 13:20:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZ7/ahql6oer9wmAMXA/CFIac8J0n4JxQoSweIWf7rHtW98l8kcq9JJ2ladsZx63j0HBJw X-Received: by 2002:a05:6902:154d:: with SMTP id r13mr35383ybu.491.1640035235236; Mon, 20 Dec 2021 13:20:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035235; cv=none; d=google.com; s=arc-20160816; b=gFrQJPvwVjdu9GMfoZpNAK0+5SDJYNjGOShbzZxI8tN/8KJt3zwhZ1Ju7Zn2XQU9v1 teHTVQPt6dH5Gcz1L4CbXLhLZRM0WPmbT4z4Sb3QKSSv1tmm1fZMd5c0IEto9dESPFMh RkWXHCe1qoM1vzr5dkqT2GdMQH8qTkjeK7Xq62Zlr5Pu5ckEAkNcS9SH4/x2LBU6YSPD vPiZ6Ml1CH2O4P7mIKVvgxXotBnEGRpftKTt4btp5EbyX5ZIQexIopSfmMo4Y3fXaZoJ W5rWb5ULQo6tuVszZEE2T9zizzXuiG8c5AhGoafqG3c0QmADf0eykD6Wq2KnWIEIxCSx TQZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=ta3Ko9zxfZ4eRR7LoDI2ksYw0ZQI5fINkcgZmVZuQY0=; b=EcgVSWNeUk7Fta6cZTdNRbxrWSb1JpZcqF1K6JsRnHEwdzvdJv2ujuUyuv6Ktn5n0L TK4EUuAMHjTchGskGmQpq1rZ+KZpPL1/f6ChSlO3r3LYSkXGG43VjxrRpBPawS1fsgRQ 693TKYTpzeamK6DmkXh04z8gpEKn7FlalzPGqsTnND+OspEVuAv72Cepgx8cz+dmrSlF uGkmp0ktkIwrXkjDBvv46TV1juDoDp6UiOST3djsEmoDvliidRzaMebszcTiAF8JieML s8sWd2kZze6u8T90OrxO6+FyV+elZ4bmYAL8xC/h814dgoeaFv7y4tsRaz9/K0bwnPns i/Jw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=hX+OtUff; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a17si19197844ybt.109.2021.12.20.13.20.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:20:35 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=hX+OtUff; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:41914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ5C-0005l3-NQ for patch@linaro.org; Mon, 20 Dec 2021 16:20:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52750) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqq-0000Vy-9K for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:44 -0500 Received: from [2607:f8b0:4864:20::42b] (port=42569 helo=mail-pf1-x42b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqo-0005uu-Ak for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:43 -0500 Received: by mail-pf1-x42b.google.com with SMTP id t19so3476582pfg.9 for ; Mon, 20 Dec 2021 13:05:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ta3Ko9zxfZ4eRR7LoDI2ksYw0ZQI5fINkcgZmVZuQY0=; b=hX+OtUffJanhryZ6O07gJcsVdcxnpXg287moCDvDwGTkMuASRT2n4OaC/WkxyuGU5t sKlzy9wTfyWdVPaKKXRt49SqJ4wKZZycHx0depkXrWjCQdW9+iWlhgFuiX0z+pWCTHQB 5goDqPj2+tRaTDQVYoaBZ79Xt3Nd/woTN3bEMh4hZjQWMaG1+kM/uN5w/4/SDXSFihRe D6Rp1XdC30s5f0E1cDa1StJVmH6+HcJHddmmP9rLI5sD9drdhzGus7L7zKMuUpe0Q9fg wKfvCiFzzCK6VkHYCFqkIkvScuDWNOX5XlbW++qBPGDNtPjiBUP53+fsta8wbn0SdTiq qyYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ta3Ko9zxfZ4eRR7LoDI2ksYw0ZQI5fINkcgZmVZuQY0=; b=vllbr6+cncxCvY1p6DifCo0nE+iGVt2+h4/BPiajusSuhPRO6kTI3BcbNQT+YsW8Uu qf7jBnU0+wkUByVDNh1xRhtobpNA/tfkb9OTEcnwZmv0ofygt78N7OcOb29/ZviWiIH9 jOX+Aw1GAjPCptvCzEH2S75ivxdSJvKdhrMNcigyt4Vdtx+UtveijzCIukeFmIYGk7vL DPtMAlJNg4d4pcVrXkuny7qb+SPx2O2KAKeMqACUEP66L9nct5bDGiRWYygm0EalSWTF RFECYzINdAmZRhcrz1lnP3C3CcgW3pJ+pfAedDk0SYJEM4TksdBPAEKPJCvISKW/aQMi edMQ== X-Gm-Message-State: AOAM531ODuDyRvxlgCl0QhNtgGUUowqqbRvt6tBLWBve6e3Vxz0wQ61Q Hcx2dRlUhipUslXDTgohCEGbAZsG3AvecQ== X-Received: by 2002:aa7:9481:0:b0:4ba:82e3:1964 with SMTP id z1-20020aa79481000000b004ba82e31964mr16300884pfk.4.1640034341144; Mon, 20 Dec 2021 13:05:41 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:40 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 13/24] linux-user/microblaze: Fix SIGFPE si_codes Date: Mon, 20 Dec 2021 13:05:17 -0800 Message-Id: <20211220210529.150423-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42b (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42b.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Fix a typo for ESR_EC_DIVZERO, which is integral not floating-point. Fix the if ladder for decoding floating-point exceptions. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/microblaze/cpu_loop.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/linux-user/microblaze/cpu_loop.c b/linux-user/microblaze/cpu_loop.c index 263b68aea1..cf1668a45f 100644 --- a/linux-user/microblaze/cpu_loop.c +++ b/linux-user/microblaze/cpu_loop.c @@ -77,15 +77,25 @@ void cpu_loop(CPUMBState *env) env->iflags &= ~(IMM_FLAG | D_FLAG); switch (env->esr & 31) { case ESR_EC_DIVZERO: - si_code = TARGET_FPE_FLTDIV; + si_code = TARGET_FPE_INTDIV; break; case ESR_EC_FPU: - si_code = 0; - if (env->fsr & FSR_IO) { + /* + * Note that the kernel passes along fsr as si_code + * if there's no recognized bit set. Possibly this + * implies that si_code is 0, but follow the structure. + */ + si_code = env->fsr; + if (si_code & FSR_IO) { si_code = TARGET_FPE_FLTINV; - } - if (env->fsr & FSR_DZ) { + } else if (si_code & FSR_OF) { + si_code = TARGET_FPE_FLTOVF; + } else if (si_code & FSR_UF) { + si_code = TARGET_FPE_FLTUND; + } else if (si_code & FSR_DZ) { si_code = TARGET_FPE_FLTDIV; + } else if (si_code & FSR_DO) { + si_code = TARGET_FPE_FLTRES; } break; default: From patchwork Mon Dec 20 21:05:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526084 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4457620imb; Mon, 20 Dec 2021 13:17:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7ZSh7kt9e0mL6ucV6yd3nyLw4FVC+5WS2qCZf0Mwt90jy3ppi5kEd+UtpDUBNypF4wVLt X-Received: by 2002:a02:a382:: with SMTP id y2mr30039jak.101.1640035057004; Mon, 20 Dec 2021 13:17:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035057; cv=none; d=google.com; s=arc-20160816; b=JDemyEypE6+XtE8JRyw3DcGR+ss2ja25SsJc4/FhYxhh24wR2WiiHxdOyI740eUaWH tljrvRc2sZCjWgTOriZ98n1/g+kolqj/L7Mp5IqbH+ieXxibemgPUNyBAzI3y94uTyR2 GsiepOW45hbTGQuDrqM0Q9MpOkPyMz0lUWXmUyqPXCBT4GkxWU6x/YGSyvfuxc7Vapq2 /AiBGah78go3iIXjS0WfbCZ/e1ocmryRcwZz1r80JXfbq8965VvZAZpQp6mp0ueW3+FD YiJdMaQSUJCh+CcH5m/xmYPlu3I6ErujgzI9odbpFVV9TEy4a2rp9y+Dsg7wb64hilV4 nvNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=JNhSgXJTgMGZWBsS+vqzx7SqW7s/rfAY63sPF+SkLf0=; b=WlgANSnFOPUzQvx3t3PogNPdcplygSlIO3szQt5HrOU2foReD3caCmQJVFcT5+gmjH FDXCkHi+RSnYBClGM3/Dt6Jm7/F7+n4Q6ZLIl8gWPD67WCmqw3PHD1Wm32Q9GAinyXkM T2m2FkqSE5SxzxCyi228whFfNXg1sSDYXcrS19WYKQF5h+gF/R+czSOiZlCM2f00TI7Z fMG3YRjX9RFjTvnoMI30REA0BNI+c6dyIlMxuTkKCq1fh7TIgIWTLG1dWXaItHnsFLtN cCiCnNxFNrHl4eGkUz21+WzWa4gazw9Nik45r6LfTwXj59nhjjMohpMGbUXwhRPjoaGh nb/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=b3IobSou; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id b6si14644839jat.81.2021.12.20.13.17.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:17:36 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=b3IobSou; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:59028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ2K-0006jS-G1 for patch@linaro.org; Mon, 20 Dec 2021 16:17:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqr-0000X7-2U for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:45 -0500 Received: from [2607:f8b0:4864:20::531] (port=37679 helo=mail-pg1-x531.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqp-0005uz-7E for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:44 -0500 Received: by mail-pg1-x531.google.com with SMTP id a23so10430930pgm.4 for ; Mon, 20 Dec 2021 13:05:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JNhSgXJTgMGZWBsS+vqzx7SqW7s/rfAY63sPF+SkLf0=; b=b3IobSoulVxdx8q8motxIs1S/KgIVN7CoVFQXrsydHbsm7hq+yZ+WueIRNFY6Aqi5Y ZK5OHA4vAxedHMoEgv5ZqRrVu8G0z6Y7mlvOJJ+E5KrvA3NCXavmkyfRdFkgl0QJOOXU KkOH+MMjhHNG8P11WnL4degAzD6Y3Tp3sS8Uv9XtHtjCkrVmGWnR4idEvHeul+BvT+LS HhALkopZRrMnZqi7mJeaRplgG9Rr6/X7YkE9QJ+O13zJqKXll4mfpTitVQlHvKBdXVGb jIzBlgk1h7Zq0sQ25QXkBtk/PAG0l3zynXJftRfRYvE8fth9ov6Xbr32KuXwQc9GTgHF HFMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JNhSgXJTgMGZWBsS+vqzx7SqW7s/rfAY63sPF+SkLf0=; b=i3Oae6Z1BuapFaV6Pz90DptRLPaZz/AEUmvueJoqxC4YbkDJZzWfuS1HcgDEL7MBj8 cbymsjfyiEERZtKoOSSlkF3fqJeTgmJJN1rxsruaTcLe60qS2Axtgvg9uFUVzmnGLYPE Q3e3y2sy+599vUm7kDo8ObcSyTLMkYX0Ctr1a2IFRsfCTapRA9Sd2rAMSKR/dPoiIqbE aKqSs/gkPP9PB6xFB679R1tYTXp8bSj6W7gFRyZGV6CtKmApn1zv0rVjdXYZo8HVHzGW nG6A5CouVmt405ExsEthoxwqwQXzVxvXKe1jysIXEswyw4tUxqTBfuPNOG9olxHblSra sgfA== X-Gm-Message-State: AOAM531lMPIf5KDDCs/N2f4H4y2d6mP32kpFZBJxyG+nycDlV8pR7zUg lRletPGRxA80+KYXXAIdS9fJ7xn789ynsw== X-Received: by 2002:a05:6a00:ad0:b0:4a3:1056:e2ae with SMTP id c16-20020a056a000ad000b004a31056e2aemr18226957pfl.2.1640034341881; Mon, 20 Dec 2021 13:05:41 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:41 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 14/24] linux-user/mips: Improve do_break Date: Mon, 20 Dec 2021 13:05:18 -0800 Message-Id: <20211220210529.150423-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::531 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::531; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x531.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Rename to do_tr_or_bp, as per the kernel function. Add a 'trap' argument, akin to the kernel's si_code, but clearer. The return value is always 0, so change the return value to void. Use force_sig and force_sig_fault. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- linux-user/mips/cpu_loop.c | 46 +++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index b735c99a24..7317194cc3 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -40,29 +40,25 @@ enum { BRK_DIVZERO = 7 }; -static int do_break(CPUMIPSState *env, target_siginfo_t *info, - unsigned int code) +static void do_tr_or_bp(CPUMIPSState *env, unsigned int code, bool trap) { - int ret = -1; + target_ulong pc = env->active_tc.PC; switch (code) { case BRK_OVERFLOW: + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, pc); + break; case BRK_DIVZERO: - info->si_signo = TARGET_SIGFPE; - info->si_errno = 0; - info->si_code = (code == BRK_OVERFLOW) ? FPE_INTOVF : FPE_INTDIV; - queue_signal(env, info->si_signo, QEMU_SI_FAULT, &*info); - ret = 0; + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, pc); break; default: - info->si_signo = TARGET_SIGTRAP; - info->si_errno = 0; - queue_signal(env, info->si_signo, QEMU_SI_FAULT, &*info); - ret = 0; + if (trap) { + force_sig(TARGET_SIGTRAP); + } else { + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, pc); + } break; } - - return ret; } void cpu_loop(CPUMIPSState *env) @@ -205,6 +201,13 @@ done_syscall: abi_ulong trap_instr; unsigned int code; + /* + * FIXME: It would be better to decode the trap number + * during translate, and store it in error_code while + * raising the exception. We should not be re-reading + * the opcode here. + */ + if (env->hflags & MIPS_HFLAG_M16) { if (env->insn_flags & ASE_MICROMIPS) { /* microMIPS mode */ @@ -257,9 +260,7 @@ done_syscall: } } - if (do_break(env, &info, code) != 0) { - goto error; - } + do_tr_or_bp(env, code, false); } break; case EXCP_TRAP: @@ -267,6 +268,13 @@ done_syscall: abi_ulong trap_instr; unsigned int code = 0; + /* + * FIXME: It would be better to decode the trap number + * during translate, and store it in error_code while + * raising the exception. We should not be re-reading + * the opcode here. + */ + if (env->hflags & MIPS_HFLAG_M16) { /* microMIPS mode */ abi_ulong instr[2]; @@ -293,9 +301,7 @@ done_syscall: } } - if (do_break(env, &info, code) != 0) { - goto error; - } + do_tr_or_bp(env, code, true); } break; case EXCP_ATOMIC: From patchwork Mon Dec 20 21:05:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526079 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4453123imb; Mon, 20 Dec 2021 13:11:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJxnwtkPuj17WgeyPeHcPHojglyiP9S7P7cvTRGkY9Mi4kX9Kv7DKGLU0d/0oT6pxYrDGpMb X-Received: by 2002:a25:77d4:: with SMTP id s203mr57149ybc.224.1640034695583; Mon, 20 Dec 2021 13:11:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034695; cv=none; d=google.com; s=arc-20160816; b=RMeRqVV/ib9xiOraGTMSgZaSxCYhhPCB81CDqC0fD0Cf3RRE83KpKjadfIH4Sj9zUg XOFTo8U4rlIZvQvYl+WwjlwBn5hax0czq3fIEL3J9fby+3crGpnGLengL/JgDQrYJpa/ w4VeZZUzvpHUwosV3yPCW40GiEw5IOxct7SJTziZBQrK29j3677pRN2gP8EPIqQejxR5 q0xQbrk0rj6UxWmiz5K0kgoPFcMRnFuS5CznERnvLTdoONAyFN6zQupG6EBPGxpPKzLD stxWW1XSlPOaafXtlSQSItz/z/l62FIOng22p0vHOk06a15kgHu1sW/U8p1eY1v+suDB 3FCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=sVhhElrpe+4XPKy6R1NWowFrVYM3GvIonkol7qAjv2A=; b=aWfZDT7382F1RRF/aAvTm23ZX9TnKpxHtwMymMBphegG5TuOnWCqdoJocBlBIhbZeD MZzGNCn2mWpfw0Y7aGkv4HSgYQNPAibZqU2dIG8DXRsjiPnNXcDlyCcO/VelUw5X7K1+ t81JbKNEzjoYKA+pRu4Z8qAgQ77SfPRWEyHrNY2TsXQ+fPOVKlxDs72y6KanYbtMYz/r Q8CBNh4GizqycIGMeqplVo6NTdqL/WcTRyN3MOaVXtxYQZA157IREZH9cjeMhljfqO/S tap9YYY1C0dETZBrxtqz+PQ3kHiRVStehCo3DN1LmYx1F1Zu98LQPCIa/5VYapKiObHG 3bGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=sCvKwgLV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c81si19626018ybc.833.2021.12.20.13.11.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:11:35 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=sCvKwgLV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:42054 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPwV-0003jt-0b for patch@linaro.org; Mon, 20 Dec 2021 16:11:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqr-0000YS-CP for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:45 -0500 Received: from [2607:f8b0:4864:20::42e] (port=37430 helo=mail-pf1-x42e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqp-0005vE-RP for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:45 -0500 Received: by mail-pf1-x42e.google.com with SMTP id 8so9805615pfo.4 for ; Mon, 20 Dec 2021 13:05:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sVhhElrpe+4XPKy6R1NWowFrVYM3GvIonkol7qAjv2A=; b=sCvKwgLVkvUg+Fr2s93NNjt3f+OFXdI83+y7JkhBS6Ufd4uE8jusw3TKqd9PNQIq+C f0PjQm4asGRbc8C9zbRm3L8SZKBMn2+1STCO4D83Dnr1gZMk2qcFC3jlq14NkoLCO/HK QbOO8PVCekoH7IWh0we5MGe9peTCfFb8O2cpgiYonBtegiEBP9DY1Az8HbkBhlVE193V AJwAoJ7jbpfE/2cGotbxHyrCJM1ci5vJUbY+Xt9f3jYvYIwAho+A2fv8t4H9Hnsgm6bX zCfHMS+W6cw8HCYGlLJKK/LpD8eDFpgdSsqYPNxOZB5uIf6kIWydzFCcE5Fn5xbHYAG8 xPdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sVhhElrpe+4XPKy6R1NWowFrVYM3GvIonkol7qAjv2A=; b=qIHcxbbkgrCSah1NXXJZrBXdmKAtHwaLBeu1p2jI/c7p7NAQXwsdmO6ysjBh7ykxFp PvDXXo1fAG+HZ0JdTzbwSzcUDF2TRKLoYb3+F0OQy5ECOyl6bw6y9i82f8XCRAOKWZOr E+kiYaLvPmLlj+cMNjcgM58yHcOaxfVpfgbXCLRlFDskHBTMm86FETnBdcXPaXaEOodM T5RaLOQA2OkG/JfuyvRbkLAQ7SSch4AbTJkyxXaij+bVkiqHbsQN3ibhCz2zo1goGNNJ nVT5HVbiVnUPvXDJ2eaV7CKvWZde2cCOrLX+TNiMIoiTl0CRUCCrQamEhkF6j4iWAfKB HBSw== X-Gm-Message-State: AOAM530aN9cwmNDWjnA0oVKBYUZv46NxvqJDFNYmqNXUgviducAHNSLt w/O6nOQbJG7879PIEraHap47eMrvv5HQCg== X-Received: by 2002:a63:b50d:: with SMTP id y13mr16340575pge.286.1640034342618; Mon, 20 Dec 2021 13:05:42 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:42 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 15/24] linux-user/mips: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:19 -0800 Message-Id: <20211220210529.150423-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42e (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP and SIGFPE; use force_sig (SI_KERNEL) for EXCP_DSPDIS. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/mips/cpu_loop.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index 7317194cc3..034b31f853 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -64,8 +64,7 @@ static void do_tr_or_bp(CPUMIPSState *env, unsigned int code, bool trap) void cpu_loop(CPUMIPSState *env) { CPUState *cs = env_cpu(env); - target_siginfo_t info; - int trapnr; + int trapnr, si_code; abi_long ret; # ifdef TARGET_ABI_MIPSO32 unsigned int syscall_num; @@ -156,43 +155,32 @@ done_syscall: break; case EXCP_CpU: case EXCP_RI: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = 0; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + case EXCP_DSPDIS: + force_sig(TARGET_SIGILL); break; case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; - case EXCP_DSPDIS: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPC; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, + env->active_tc.PC); break; case EXCP_FPE: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_FLTUNK; + si_code = TARGET_FPE_FLTUNK; if (GET_FP_CAUSE(env->active_fpu.fcr31) & FP_INVALID) { - info.si_code = TARGET_FPE_FLTINV; + si_code = TARGET_FPE_FLTINV; } else if (GET_FP_CAUSE(env->active_fpu.fcr31) & FP_DIV0) { - info.si_code = TARGET_FPE_FLTDIV; + si_code = TARGET_FPE_FLTDIV; } else if (GET_FP_CAUSE(env->active_fpu.fcr31) & FP_OVERFLOW) { - info.si_code = TARGET_FPE_FLTOVF; + si_code = TARGET_FPE_FLTOVF; } else if (GET_FP_CAUSE(env->active_fpu.fcr31) & FP_UNDERFLOW) { - info.si_code = TARGET_FPE_FLTUND; + si_code = TARGET_FPE_FLTUND; } else if (GET_FP_CAUSE(env->active_fpu.fcr31) & FP_INEXACT) { - info.si_code = TARGET_FPE_FLTRES; + si_code = TARGET_FPE_FLTRES; } - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, si_code, env->active_tc.PC); break; + /* The code below was inspired by the MIPS Linux kernel trap * handling code in arch/mips/kernel/traps.c. */ From patchwork Mon Dec 20 21:05:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526090 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4461799imb; Mon, 20 Dec 2021 13:23:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJygRtWHADznwhtLfkyAWIIIZbxV0YcMEyrmNex0QvBs6daBjriWSEDd9hVN4iwYCCSoQI0y X-Received: by 2002:a92:2807:: with SMTP id l7mr9895829ilf.292.1640035414894; Mon, 20 Dec 2021 13:23:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035414; cv=none; d=google.com; s=arc-20160816; b=U6zmHcz9CiwBLVWho2CDyyzE3MbN69Bp1YSxs9Q/TVLDJgDgzm8/WIXJie1pjA8/UM gLKJJot9PDZTPuz2fIXYx1ZlUZ/isbVnuyeFYBPGHxPUBqE9528yGfcCBpth4rVE5tsL jZs+moJ3SlcTKayuyaXvP19Pid4UroYw7stvrukHm6F2C5gi+fq49q3KJcHc95s1++io wgOxLw7TGs9iwrxHE8xA+KxxLU9OQG9280IOaKh3xM/ocKoqlfphybPM1t0IBnAbjoSp 6b6ItUiuL3B00MAr5iUrRx+fYxb+7b+cqEGv9IdoZClPc9m5e69xDrPXN5zbJQx11g8+ C6JA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=/k1KwegcoLRTwj1/P40WgFS+kMo0JUxTbUKfEoyeaSA=; b=OCirAwxHcKXGiKbhRZ/E9iuzCPRelTbZmVboUtHxmegMLs3nF1M4fHJernMOcb4b9r vTnrwFUbGLQXQI8rKrEZoIhNLlvB0msZibqRruOxjlpxpIm14SBuqQI5BaSyxvS7D2B2 xzbj6Z9k+PL8Do39/ZjbC7QIdr7ApiCiMD9BATZ7nyMqsghpMnDbKpjQIHGvV4L0fi8s qRHG0xeblfNHsDYbwQFrT3OprZ4dONOXGQqzROL8vuSOoTTfKsj7Jr52RSy/gyC9utYe vuc8AskEx8vzXRiolnperJoMuWWLEKL6CDorHrHtugkzYzN1D8SksFhT/MAgsOcH7sm9 /Qaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cZPTG3Y5; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d22si12094950ioy.44.2021.12.20.13.23.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:23:34 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cZPTG3Y5; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ86-0002qI-CC for patch@linaro.org; Mon, 20 Dec 2021 16:23:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqs-0000dQ-Tt for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:46 -0500 Received: from [2607:f8b0:4864:20::62d] (port=42853 helo=mail-pl1-x62d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqq-0005vY-Qf for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:46 -0500 Received: by mail-pl1-x62d.google.com with SMTP id u16so2971782plg.9 for ; Mon, 20 Dec 2021 13:05:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/k1KwegcoLRTwj1/P40WgFS+kMo0JUxTbUKfEoyeaSA=; b=cZPTG3Y5NWHx8sxuPiitnYYlrjxBjcZj3pG6MGgmxDF+7MbeQ0UuLKS/XaBox1lMXs iX460dpWfDTr6phrwuMrfTdRpfyA4wzfUJ+BW3wyfQoyDX7dovyiFKrKEOX0IfPcClAU Kq8R8WXjgvz7RkhKC2nxBRo8n2Gh8EpRp+jItRR2zEwRckVpzNWSHr8HPyNoEOazjfCR UD2ev0cpJ5yDOnFT5EoyIdqBOmXROXylQyQeZjiFHECGVforQQXBuiJpK4EtLvuKt6zR q6R4vZRyC5qRkTpTfrCKuVf19EOwujD/Au+gGTlYRTVkMwTTB64My4fdGNWFeNcdvOuw pX2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/k1KwegcoLRTwj1/P40WgFS+kMo0JUxTbUKfEoyeaSA=; b=huc01OUDznN6mPLZKN0S+mzALwF2FpvSUk3ZeyVT1SCIxTqkuAfidP1NEveeN+7hct 3HCo2VVCSlwyqboxecv66EfT2FZcHionQOscPjw3wvGuVbfFQXIkEysQzboAdqzvtx0q seQLxb7bSRquUBNc2NT0/6Obv6ooCCHTco/EsjGF0yHVclNLEzDv5KyoZrZr4mQgzfub yCMegleWEbkiAXxdjIvt0tHSaIK3fUic0UggtKOke+JhoeDd2QK21TtuNG/MgNQQ3vtG 68DIdIHq4pLQfrgR+zlSjRziGOypee50SqewLe9HRRQbYDH4BhmJXfjNtBWsto8HG0oO sBAg== X-Gm-Message-State: AOAM530XQApZ6Ms+7/f/tLT5fQ4aYgIi3apQGAz30ZfqINFmZtjNHkQd 8eTAOEIM8dvthv2TvgytwxFYXQ+HvrQKYg== X-Received: by 2002:a17:90a:5781:: with SMTP id g1mr14151pji.236.1640034343480; Mon, 20 Dec 2021 13:05:43 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:43 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 16/24] target/mips: Extract break code into env->error_code Date: Mon, 20 Dec 2021 13:05:20 -0800 Message-Id: <20211220210529.150423-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Simplify cpu_loop by doing all of the decode in translate. This fixes a bug in that cpu_loop was not handling the different layout of the R6 version of break16. This fixes a bug in that cpu_loop extracted the wrong bits for the mips16e break16 instruction. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- target/mips/tcg/translate.h | 1 + linux-user/mips/cpu_loop.c | 73 +++-------------------- target/mips/tcg/translate.c | 12 +++- target/mips/tcg/micromips_translate.c.inc | 6 +- target/mips/tcg/mips16e_translate.c.inc | 2 +- 5 files changed, 25 insertions(+), 69 deletions(-) diff --git a/target/mips/tcg/translate.h b/target/mips/tcg/translate.h index 6111493651..ae01515efe 100644 --- a/target/mips/tcg/translate.h +++ b/target/mips/tcg/translate.h @@ -129,6 +129,7 @@ enum { void generate_exception(DisasContext *ctx, int excp); void generate_exception_err(DisasContext *ctx, int excp, int err); void generate_exception_end(DisasContext *ctx, int excp); +void generate_exception_break(DisasContext *ctx, int code); void gen_reserved_instruction(DisasContext *ctx); void check_insn(DisasContext *ctx, uint64_t flags); diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index 034b31f853..8efb6d2a24 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -65,6 +65,7 @@ void cpu_loop(CPUMIPSState *env) { CPUState *cs = env_cpu(env); int trapnr, si_code; + unsigned int code; abi_long ret; # ifdef TARGET_ABI_MIPSO32 unsigned int syscall_num; @@ -185,71 +186,15 @@ done_syscall: * handling code in arch/mips/kernel/traps.c. */ case EXCP_BREAK: - { - abi_ulong trap_instr; - unsigned int code; - - /* - * FIXME: It would be better to decode the trap number - * during translate, and store it in error_code while - * raising the exception. We should not be re-reading - * the opcode here. - */ - - if (env->hflags & MIPS_HFLAG_M16) { - if (env->insn_flags & ASE_MICROMIPS) { - /* microMIPS mode */ - ret = get_user_u16(trap_instr, env->active_tc.PC); - if (ret != 0) { - goto error; - } - - if ((trap_instr >> 10) == 0x11) { - /* 16-bit instruction */ - code = trap_instr & 0xf; - } else { - /* 32-bit instruction */ - abi_ulong instr_lo; - - ret = get_user_u16(instr_lo, - env->active_tc.PC + 2); - if (ret != 0) { - goto error; - } - trap_instr = (trap_instr << 16) | instr_lo; - code = ((trap_instr >> 6) & ((1 << 20) - 1)); - /* Unfortunately, microMIPS also suffers from - the old assembler bug... */ - if (code >= (1 << 10)) { - code >>= 10; - } - } - } else { - /* MIPS16e mode */ - ret = get_user_u16(trap_instr, env->active_tc.PC); - if (ret != 0) { - goto error; - } - code = (trap_instr >> 6) & 0x3f; - } - } else { - ret = get_user_u32(trap_instr, env->active_tc.PC); - if (ret != 0) { - goto error; - } - - /* As described in the original Linux kernel code, the - * below checks on 'code' are to work around an old - * assembly bug. - */ - code = ((trap_instr >> 6) & ((1 << 20) - 1)); - if (code >= (1 << 10)) { - code >>= 10; - } - } - - do_tr_or_bp(env, code, false); + /* + * As described in the original Linux kernel code, the below + * checks on 'code' are to work around an old assembly bug. + */ + code = env->error_code; + if (code >= (1 << 10)) { + code >>= 10; } + do_tr_or_bp(env, code, false); break; case EXCP_TRAP: { diff --git a/target/mips/tcg/translate.c b/target/mips/tcg/translate.c index 47db35d7dd..a42f507aed 100644 --- a/target/mips/tcg/translate.c +++ b/target/mips/tcg/translate.c @@ -1367,6 +1367,16 @@ void generate_exception_end(DisasContext *ctx, int excp) generate_exception_err(ctx, excp, 0); } +void generate_exception_break(DisasContext *ctx, int code) +{ +#ifdef CONFIG_USER_ONLY + /* Pass the break code along to cpu_loop. */ + tcg_gen_st_i32(tcg_constant_i32(code), cpu_env, + offsetof(CPUMIPSState, error_code)); +#endif + generate_exception_end(ctx, EXCP_BREAK); +} + void gen_reserved_instruction(DisasContext *ctx) { generate_exception_end(ctx, EXCP_RI); @@ -14160,7 +14170,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx) generate_exception_end(ctx, EXCP_SYSCALL); break; case OPC_BREAK: - generate_exception_end(ctx, EXCP_BREAK); + generate_exception_break(ctx, extract32(ctx->opcode, 6, 20)); break; case OPC_SYNC: check_insn(ctx, ISA_MIPS2); diff --git a/target/mips/tcg/micromips_translate.c.inc b/target/mips/tcg/micromips_translate.c.inc index 0da4c802a3..f91f7a96cd 100644 --- a/target/mips/tcg/micromips_translate.c.inc +++ b/target/mips/tcg/micromips_translate.c.inc @@ -822,7 +822,7 @@ static void gen_pool16c_insn(DisasContext *ctx) gen_HILO(ctx, OPC_MFLO, 0, uMIPS_RS5(ctx->opcode)); break; case BREAK16: - generate_exception_end(ctx, EXCP_BREAK); + generate_exception_break(ctx, extract32(ctx->opcode, 0, 4)); break; case SDBBP16: if (is_uhi(extract32(ctx->opcode, 0, 4))) { @@ -937,7 +937,7 @@ static void gen_pool16c_r6_insn(DisasContext *ctx) break; case R6_BREAK16: /* BREAK16 */ - generate_exception(ctx, EXCP_BREAK); + generate_exception_break(ctx, extract32(ctx->opcode, 6, 4)); break; case R6_SDBBP16: /* SDBBP16 */ @@ -1812,7 +1812,7 @@ static void decode_micromips32_opc(CPUMIPSState *env, DisasContext *ctx) gen_pool32axf(env, ctx, rt, rs); break; case BREAK32: - generate_exception_end(ctx, EXCP_BREAK); + generate_exception_break(ctx, extract32(ctx->opcode, 6, 20)); break; case SIGRIE: check_insn(ctx, ISA_MIPS_R6); diff --git a/target/mips/tcg/mips16e_translate.c.inc b/target/mips/tcg/mips16e_translate.c.inc index 84d816603a..f57e0a5f2a 100644 --- a/target/mips/tcg/mips16e_translate.c.inc +++ b/target/mips/tcg/mips16e_translate.c.inc @@ -969,7 +969,7 @@ static int decode_ase_mips16e(CPUMIPSState *env, DisasContext *ctx) gen_slt(ctx, OPC_SLTU, 24, rx, ry); break; case RR_BREAK: - generate_exception_end(ctx, EXCP_BREAK); + generate_exception_break(ctx, extract32(ctx->opcode, 5, 6)); break; case RR_SLLV: gen_shift(ctx, OPC_SLLV, ry, rx, ry); From patchwork Mon Dec 20 21:05:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526091 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4462821imb; Mon, 20 Dec 2021 13:25:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJwyJQETBjrhAuYyV1JudY7APhJkbbefdiNEIisPhSdjfJLfVsyHL03cNqrKjfr3WeggZLVA X-Received: by 2002:a02:cf82:: with SMTP id w2mr50837jar.314.1640035504964; Mon, 20 Dec 2021 13:25:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035504; cv=none; d=google.com; s=arc-20160816; b=B4rtt4kDh97AX94GRNIUtX9D5rVHuUySL+MCELUSs2KHiq2EZntegsg/dSNHRFR8Uc rG4+57gOzfOF7RvheqbIE48+nQieDeG3MM9wpzE7q2NE14Kcg37tg+1S/mASBKZQ6oqn /JZ+cJ60b1VqwhewPCHl8UzYh9WBLt+4+cTSRHraAA07QSpaF9kaqTBm70WqKGS0ArGS N5vfKQdEwa0N1dKJ7t9hR0sfXtJROpmv8ksmYFYWVT4uUMp2K8atAUZGcYhw1dAqNjtK XsGcBmw85hSPJ5JtNbOZYzIDyH2mdk0igXRKswpdbuDttjuXvPZl0gQJCgUlPfqyZx9z jSMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=W+g1NnQMESePVqMyML1nkGjrPiq4QQ2Hy5ek/dRUG54=; b=ZFShCaJ+MjUUW+3utf+5895Emv/Vc6cvBXzctuhha5HcuJJWub9ip9r+0x/lNuMIay aQHhUDq4KgNsjNsIPciHgbM40rtT9kcRT2ajBeU4/0spwOeyo7rtOC6ZhEshOGVEG2Xt Wi+uv3MjzjdsrptAd8Yef16w5wnuXeBp3bvuCXBF0npDUKHTCiYVFGuwGWdzYm2e4Uyq a0XkpgnRv3g5QPJ9QZjiPepiAJ4RgE1VzyRCVs4zY9auuFOkf3yGtrGm++hPEJYq/Bmy mqcbpUATYyrg+AS9XSATXe/MrSYjAYmqyY1paIsI9xlwvRIVcw+/Ip0fkAQp5sPgFS2O 3wSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CFTOdjXW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id s3si13698512ilv.28.2021.12.20.13.25.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:25:04 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CFTOdjXW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:56506 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ9Y-0007HX-Eb for patch@linaro.org; Mon, 20 Dec 2021 16:25:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0000nV-BJ for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:53 -0500 Received: from [2607:f8b0:4864:20::536] (port=40605 helo=mail-pg1-x536.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqr-0005vk-RM for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:48 -0500 Received: by mail-pg1-x536.google.com with SMTP id l10so10431390pgm.7 for ; Mon, 20 Dec 2021 13:05:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=W+g1NnQMESePVqMyML1nkGjrPiq4QQ2Hy5ek/dRUG54=; b=CFTOdjXWdNwwWmHNyYn7XqbQJZONS6aQGrnGXUJb14AYxuQpa4PDjKhBiLCg08sC5c bKSP3ZBZfKjTmJPTGZp7JuRDDgYFNUCOjSpeW2f8DteZgoW0NjKLS9psXYR/qy3U2/tj Gdk8G8IX1xMl1++W8N55KX0TekqMx/cOxBbLs2vhsTO6DYr0Slir4C64ev1t7n96b9To atQvqrjz9WihXc6hz63wNFMf8gLEfsis4giYP2q8q47VZX0Dt4Qbo+sQxWO9X65BIBio dlPTNCrfew2wu10nhIfWhfGDlvDxzq29/B7ec3FRkm7GK4wWg0mZxOGti+HL49Sh9rXL WPWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=W+g1NnQMESePVqMyML1nkGjrPiq4QQ2Hy5ek/dRUG54=; b=Bcnlh4CrrrrrzyI6tIvz6N7fOC3LQ7uRVZE2OYSqF5flraCQQUWs5TBaITLOjvHfoL 4IDhmRSsH1tcrip+YH0FNL6ReQBhIX3mjN1FaVpnhucc0jF8vqtxGgIycCa2Mjwz5cz6 4D+VU0tSIoNFHiYEzcRgugmP/pyq/LshbXJqFzxQVg9T5Xyhdb6DziBDakyWUVPOvMkx dA1Zgtm05D5Q5R0Nfywulh0Juup0OQn5gLa6VndrdeoLOvv5QPpo5b/4Tq/3t28Bgk2f lqQQQ2V9ed2/vtDtttSWdtBYuw1RRRdP6S8aC7EDx7dZgbnUW/SwtCBxMmWprnQBlOx9 Wj4Q== X-Gm-Message-State: AOAM533AgN3fPmTQOkfYJG5vPU1Pi4cKa+axvNWscTKdCOpbNK06yGQz ajvWYc+Tokpq6huPjyJazm3YbXOKhQFoTA== X-Received: by 2002:a05:6a00:d64:b0:4ba:cb6f:87e0 with SMTP id n36-20020a056a000d6400b004bacb6f87e0mr8132616pfv.72.1640034344279; Mon, 20 Dec 2021 13:05:44 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:44 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 17/24] target/mips: Extract trap code into env->error_code Date: Mon, 20 Dec 2021 13:05:21 -0800 Message-Id: <20211220210529.150423-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::536 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Simplify cpu_loop by doing all of the decode in translate. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- linux-user/mips/cpu_loop.c | 41 +---------------------- target/mips/tcg/translate.c | 24 ++++++++++--- target/mips/tcg/micromips_translate.c.inc | 4 +-- target/mips/tcg/nanomips_translate.c.inc | 4 +-- 4 files changed, 25 insertions(+), 48 deletions(-) diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index 8efb6d2a24..6079c2d600 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -197,51 +197,12 @@ done_syscall: do_tr_or_bp(env, code, false); break; case EXCP_TRAP: - { - abi_ulong trap_instr; - unsigned int code = 0; - - /* - * FIXME: It would be better to decode the trap number - * during translate, and store it in error_code while - * raising the exception. We should not be re-reading - * the opcode here. - */ - - if (env->hflags & MIPS_HFLAG_M16) { - /* microMIPS mode */ - abi_ulong instr[2]; - - ret = get_user_u16(instr[0], env->active_tc.PC) || - get_user_u16(instr[1], env->active_tc.PC + 2); - - trap_instr = (instr[0] << 16) | instr[1]; - } else { - ret = get_user_u32(trap_instr, env->active_tc.PC); - } - - if (ret != 0) { - goto error; - } - - /* The immediate versions don't provide a code. */ - if (!(trap_instr & 0xFC000000)) { - if (env->hflags & MIPS_HFLAG_M16) { - /* microMIPS mode */ - code = ((trap_instr >> 12) & ((1 << 4) - 1)); - } else { - code = ((trap_instr >> 6) & ((1 << 10) - 1)); - } - } - - do_tr_or_bp(env, code, true); - } + do_tr_or_bp(env, env->error_code, true); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); break; default: -error: EXCP_DUMP(env, "qemu: unhandled CPU exception 0x%x - aborting\n", trapnr); abort(); } diff --git a/target/mips/tcg/translate.c b/target/mips/tcg/translate.c index a42f507aed..98c0f1aab3 100644 --- a/target/mips/tcg/translate.c +++ b/target/mips/tcg/translate.c @@ -4733,7 +4733,7 @@ static void gen_loongson_lsdc2(DisasContext *ctx, int rt, /* Traps */ static void gen_trap(DisasContext *ctx, uint32_t opc, - int rs, int rt, int16_t imm) + int rs, int rt, int16_t imm, int code) { int cond; TCGv t0 = tcg_temp_new(); @@ -4778,6 +4778,11 @@ static void gen_trap(DisasContext *ctx, uint32_t opc, case OPC_TGEU: /* rs >= rs unsigned */ case OPC_TGEIU: /* r0 >= 0 unsigned */ /* Always trap */ +#ifdef CONFIG_USER_ONLY + /* Pass the break code along to cpu_loop. */ + tcg_gen_st_i32(tcg_constant_i32(code), cpu_env, + offsetof(CPUMIPSState, error_code)); +#endif generate_exception_end(ctx, EXCP_TRAP); break; case OPC_TLT: /* rs < rs */ @@ -4818,6 +4823,18 @@ static void gen_trap(DisasContext *ctx, uint32_t opc, tcg_gen_brcond_tl(TCG_COND_EQ, t0, t1, l1); break; } +#ifdef CONFIG_USER_ONLY + /* Pass the break code along to cpu_loop. */ + tcg_gen_st_i32(tcg_constant_i32(code), cpu_env, + offsetof(CPUMIPSState, error_code)); +#endif + /* Like save_cpu_state, only don't update saved values. */ + if (ctx->base.pc_next != ctx->saved_pc) { + gen_save_pc(ctx->base.pc_next); + } + if (ctx->hflags != ctx->saved_hflags) { + tcg_gen_movi_i32(hflags, ctx->hflags); + } generate_exception(ctx, EXCP_TRAP); gen_set_label(l1); } @@ -14155,7 +14172,7 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx) case OPC_TEQ: case OPC_TNE: check_insn(ctx, ISA_MIPS2); - gen_trap(ctx, op1, rs, rt, -1); + gen_trap(ctx, op1, rs, rt, -1, extract32(ctx->opcode, 6, 10)); break; case OPC_PMON: /* Pmon entry point, also R4010 selsl */ @@ -15289,11 +15306,10 @@ static bool decode_opc_legacy(CPUMIPSState *env, DisasContext *ctx) case OPC_TLTI: case OPC_TLTIU: case OPC_TEQI: - case OPC_TNEI: check_insn(ctx, ISA_MIPS2); check_insn_opc_removed(ctx, ISA_MIPS_R6); - gen_trap(ctx, op1, rs, -1, imm); + gen_trap(ctx, op1, rs, -1, imm, 0); break; case OPC_SIGRIE: check_insn(ctx, ISA_MIPS_R6); diff --git a/target/mips/tcg/micromips_translate.c.inc b/target/mips/tcg/micromips_translate.c.inc index f91f7a96cd..7e7d26a91b 100644 --- a/target/mips/tcg/micromips_translate.c.inc +++ b/target/mips/tcg/micromips_translate.c.inc @@ -1047,7 +1047,7 @@ static void gen_pool32axf(CPUMIPSState *env, DisasContext *ctx, int rt, int rs) case TNE: mips32_op = OPC_TNE; do_trap: - gen_trap(ctx, mips32_op, rs, rt, -1); + gen_trap(ctx, mips32_op, rs, rt, -1, extract32(ctx->opcode, 12, 4)); break; #ifndef CONFIG_USER_ONLY case MFC0: @@ -2439,7 +2439,7 @@ static void decode_micromips32_opc(CPUMIPSState *env, DisasContext *ctx) check_insn_opc_removed(ctx, ISA_MIPS_R6); mips32_op = OPC_TEQI; do_trapi: - gen_trap(ctx, mips32_op, rs, -1, imm); + gen_trap(ctx, mips32_op, rs, -1, imm, 0); break; case BNEZC: diff --git a/target/mips/tcg/nanomips_translate.c.inc b/target/mips/tcg/nanomips_translate.c.inc index 2c022a49f2..916cece4d2 100644 --- a/target/mips/tcg/nanomips_translate.c.inc +++ b/target/mips/tcg/nanomips_translate.c.inc @@ -1268,11 +1268,11 @@ static void gen_pool32a0_nanomips_insn(CPUMIPSState *env, DisasContext *ctx) switch (extract32(ctx->opcode, 10, 1)) { case NM_TEQ: check_nms(ctx); - gen_trap(ctx, OPC_TEQ, rs, rt, -1); + gen_trap(ctx, OPC_TEQ, rs, rt, -1, rd); break; case NM_TNE: check_nms(ctx); - gen_trap(ctx, OPC_TNE, rs, rt, -1); + gen_trap(ctx, OPC_TNE, rs, rt, -1, rd); break; } break; From patchwork Mon Dec 20 21:05:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526081 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4455551imb; Mon, 20 Dec 2021 13:14:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJxU8mljEiUfEGgNgzlDS2uNUAAmiflSWow+A3Ib8R9vwn8lwL/iML4vjVT/HaDXqGTk0ZOf X-Received: by 2002:a25:918e:: with SMTP id w14mr62075ybl.386.1640034890243; Mon, 20 Dec 2021 13:14:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034890; cv=none; d=google.com; s=arc-20160816; b=gvk9K9mX8ZccOwQ6/926QC3BnuIXEROCHdkuDOJDn/D+BMjMRauyoRnkuiVwvl98Qg kYx65u7OPgamVQJlKehh4F689Y6Jr81zYAube7Hdzuasp8BkZoKid96+2S/RDKBp/inH vRNFkN3UJJ08vLAjL0Mga5Ei4pnLeXVfpZslIH8GVBk9VWlWueFv9Q4RcJmdvkZVQ84y qczjqbqyn7g7CfEbQGfq+X4t3SqcmKayxb1vtyKSB63ZEC+eexzxlMOrLSKQ6vvkm2up QbuulDeN41p9u/0MYDOKbtY452EJauxNekBxVt5W725CLcVt2dJHShN6M5eSkZRNLzRV uQcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=RaLycKVdfV0ekqtdy8hAK0du2MJDBZ+dYKE4BFXj/j0=; b=oXKkQtxBAzei36i+BNYYk9bqdnD1w0infDoXkcDAl8GkOyXLbecvmWA3rMCiv6ifIr etV3TAcOkxK7e9XwQrh5YGiudLEl+sBjh6NlgL4UNHncmSzluMZuEtHPKmtu19EsE2kx BZES8S3M4NhbhJ5bLmFKzRvLYDUXevnx1hZS6llcaXCimOopeu4swcpr5rFrNvWzigAz vyzyDI+NwkoS/6JqkUNqKmXIK6dAv5a3P+Hty/BcGIdDhoYr559KzXg0zut3hNdwdbAu bjfNEtYT+jrBn86dC3L8ygBETYwSImtOz/xQFM0OTI6tVdr/+geMQor+Nti1lUhuyA8p FvzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=QpyvjN8b; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id p126si13066769yba.619.2021.12.20.13.14.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:14:50 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=QpyvjN8b; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:50828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPzd-00019F-Ok for patch@linaro.org; Mon, 20 Dec 2021 16:14:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52844) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0000nW-Bt for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:53 -0500 Received: from [2607:f8b0:4864:20::1035] (port=35815 helo=mail-pj1-x1035.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqt-0005w4-0M for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:48 -0500 Received: by mail-pj1-x1035.google.com with SMTP id j6-20020a17090a588600b001a78a5ce46aso424538pji.0 for ; Mon, 20 Dec 2021 13:05:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RaLycKVdfV0ekqtdy8hAK0du2MJDBZ+dYKE4BFXj/j0=; b=QpyvjN8bafi0+zjhL9sWtkBMGJKyZvxKtw5C4o3t2Ydt5pzfa1J/QUXwDOXh44AA1O WPIVAXcLfX6S7LBkiYYR2PFuPTSK2lDP0q3kRI09aUU2U5cVY49Yjytngg2rqZ/RvI7n 2RlqRuKJ8/DBCJNH+4M81vWTuqQRfbWAaRdu0L/xb767upDMbOfiGFvGHK2cqz6O5PHA D1D69+cXgjPwEzWJ5Vn+Cc0NoXr6zV/eKAET8yG1XX972iEN1xKLCwnm6QJ+fl8gUN8d CwZzf/6aVZp+4/TfD75RItiZI5LH7lZ3pSwxjrO7OpBzEPnnYH1VLjTy//TADmReYynB 5zRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RaLycKVdfV0ekqtdy8hAK0du2MJDBZ+dYKE4BFXj/j0=; b=p+xIHLs8otw3iccYjWZbSxaRuJimpW4MGyYqaMYWeKV+3UewSPCgFR0CDPdQIo63OP tLmIVf5hIIdoQNPjJITV8f1NramE5ixvb/TTQNtU/T6EJFbwvai6PPG+mn0HFiYQmMZ/ c/gSIO5gQgN8tQfxw7A8Spw+r6PfRqGvXSPvZYdMpsrIiLmbd+YWBSRod5Me+2ye7R7Q WTEROEP7ai4HRZQdqteoFDdQErwL/OgwyiGmN46mC3xfwJjcwH8rGeZcqN2QNvIQOXBY vXU+p1lwJwqmBxyfWTPwIejPP7fnRnODcPUCSpBH9+RlU3aEcluB95LIjelAoHxfI3Vl DI/A== X-Gm-Message-State: AOAM531JXOqPUS5QE9kGFhIf6E/lY11IYvahaeCmNRp+sFngM7e8jRX3 FgCnpbE1IF5spV+hk6rQzQqTDn1vxNer5A== X-Received: by 2002:a17:90b:350c:: with SMTP id ls12mr920976pjb.197.1640034345132; Mon, 20 Dec 2021 13:05:45 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:44 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 18/24] linux-user/openrisc: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:22 -0800 Message-Id: <20211220210529.150423-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1035 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stafford Horne , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Stafford Horne Signed-off-by: Richard Henderson --- linux-user/openrisc/cpu_loop.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/linux-user/openrisc/cpu_loop.c b/linux-user/openrisc/cpu_loop.c index 3cfdbbf037..9b3d6743d2 100644 --- a/linux-user/openrisc/cpu_loop.c +++ b/linux-user/openrisc/cpu_loop.c @@ -29,7 +29,6 @@ void cpu_loop(CPUOpenRISCState *env) CPUState *cs = env_cpu(env); int trapnr; abi_long ret; - target_siginfo_t info; for (;;) { cpu_exec_start(cs); @@ -55,27 +54,16 @@ void cpu_loop(CPUOpenRISCState *env) } break; case EXCP_ALIGN: - info.si_signo = TARGET_SIGBUS; - info.si_errno = 0; - info.si_code = TARGET_BUS_ADRALN; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->eear); break; case EXCP_ILLEGAL: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPC; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); break; case EXCP_INTERRUPT: /* We processed the pending cpu work above. */ break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526083 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4455585imb; Mon, 20 Dec 2021 13:14:52 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/iaLmeTgK5MNNq3SR+2fFdIin4CZNjI8kV47GKnlVDmGhN9HXVH9WCBwZcEoaSOfa0Fpf X-Received: by 2002:a25:7455:: with SMTP id p82mr15951ybc.309.1640034892565; Mon, 20 Dec 2021 13:14:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034892; cv=none; d=google.com; s=arc-20160816; b=H2baQoUTgshpJ8VYOPlATvp0FsyPrAYTartycibLfUzOG0GesVK65AV2/jtxXKUaTq 5HkLRFPwgG6/4cHEoTbuxwXg0nLVWB/i14vNC2O8jetno1kAjUWIW6EwclIyIzkt2Wug AtJPaKBm6Rr4bgLjo0WhVtnx4/IaCWmJETA1zHbUWgUnK8pl0DBVCbg4n6TszQqEs0yd rmvrb7JuVf57Vm+WiRH6TCK7/sOsnF5K6iLQK9tbBUJnyg79N1OXHUn0RPOxapwfEsPo rE3O1uFYfH9/DqAAPjVE23WHII9Bee18gEq35+R+IzNbzW/sVwzD0jzXGNey/jIticnY CTQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=JKn/dn/o5/5uSJhUVusVlDHnM+Rs1ENAWdTHsonHpeI=; b=YdhQudTs+WriKLF4fN1vZXJveNa5XM5/DcGVMOz9llBq9ysqHICWvXEUbbK30TVzwt Mvw43ss4T4qqD804cUeOe6JvrItr0SvbfXQ5vWjCyiCGICKsM4emKcqpLFTmzmo0z6cH YTXJ+NcVXokG2hhrKGwcns8/ZYxdzwXTp7giwfo/J9jStqLtbHgVhP3jMHElFwp2ddzA 9Kmomt9P+6mkfiNlzMbodvTbSkPO3dpr9pqqvb6mRMDMJdaon3pkRGGARjxC8f5J4bUZ n9ehVCobvCQ2BOkmeGY/Etbi35IO3H4xQGYzUtSM8r/Rzcezp0C3ZH6LUAtPPoL2ao/b Fz4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=FykmmZMA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id f129si17460618ybc.202.2021.12.20.13.14.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:14:52 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=FykmmZMA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:50772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPzg-000174-1t for patch@linaro.org; Mon, 20 Dec 2021 16:14:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr1-0000op-Ks for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:56 -0500 Received: from [2607:f8b0:4864:20::102d] (port=39838 helo=mail-pj1-x102d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0005wI-3C for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:54 -0500 Received: by mail-pj1-x102d.google.com with SMTP id z9-20020a17090a7b8900b001b13558eadaso371304pjc.4 for ; Mon, 20 Dec 2021 13:05:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JKn/dn/o5/5uSJhUVusVlDHnM+Rs1ENAWdTHsonHpeI=; b=FykmmZMAO8TemiGMc6SueUxSC9xPFXkqBQy0EJUVzqMKdUJk0GpZbQ/7M/Px1wsdCz 5hRGJIqSanKJazCjiUaTiH0+q4D+5B5pb7g/91YclPQONlkVEl7S+3AXXshKU0cP3nAy j87ayreXxMvcaAB2mudS/MNs1DIBr/WxnMEF/jt8a9MAl5Qd6FuioS/QepCH4wAPivp8 4NdHW7vXKvCgY5EuFGV7zerE39IjIKXruk6l6raflfyCQ2DCmJAUwd2QQTdu4nlcGdSx C5nL+Xdz4M1qPvmnM3JS/d1VrwHvexA6jmJDJ5elsyYlM+tky6uAJNs05UBLz9Gqwh8V sHDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JKn/dn/o5/5uSJhUVusVlDHnM+Rs1ENAWdTHsonHpeI=; b=Ddm5u3rYPS3Uftce3u/Mmp7cbzPzztxCqSznRATqWsc9JdlQ3O1PiZjm0vs6tbiw31 +sPWXrviROPJADlnhRG9BaEBm7IF2vLzAyghXc+8xvcO7DaytU/G+7kfRxxG+Lqr0X9y I7vwU8GJGH6E39CAVBQ+XJahwPly1DTftD+fkkPjPKQAmJMlcruvhBsIpyTdyBYETnb2 LoGslvaAkWALfShZS/nTT+6qpMQ0hrdcMZ9HJ5HYpcD3J7i1vEJdvTByzBjzSix2QKgv GRvSjhLq6eNNp5mJiSwmATABQCGabiSYWdu6xXR9nCBNpb+Lg6SYCanFCV7AD5U8zkEZ VCGg== X-Gm-Message-State: AOAM533orFtzj5IgL0earkd8N0tPozoowBgj5FFWCUuNU3USR1Ru3QBN KZm2FSIEp1AQRH+xoz+UPp3IRRrBuE743g== X-Received: by 2002:a17:90a:6b44:: with SMTP id x4mr7239pjl.27.1640034346546; Mon, 20 Dec 2021 13:05:46 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:46 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 19/24] linux-user/ppc: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:23 -0800 Message-Id: <20211220210529.150423-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. The fault address for POWERPC_EXCP_ISI is nip exactly, not nip - 4. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/ppc/cpu_loop.c | 136 ++++++++------------------------------ 1 file changed, 28 insertions(+), 108 deletions(-) diff --git a/linux-user/ppc/cpu_loop.c b/linux-user/ppc/cpu_loop.c index 483e669300..bb20300da9 100644 --- a/linux-user/ppc/cpu_loop.c +++ b/linux-user/ppc/cpu_loop.c @@ -76,8 +76,7 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, uint32_t val) void cpu_loop(CPUPPCState *env) { CPUState *cs = env_cpu(env); - target_siginfo_t info; - int trapnr; + int trapnr, si_signo, si_code; target_ulong ret; for(;;) { @@ -102,61 +101,10 @@ void cpu_loop(CPUPPCState *env) "Aborting\n"); break; case POWERPC_EXCP_DSI: /* Data storage exception */ - /* XXX: check this. Seems bugged */ - switch (env->error_code & 0xFF000000) { - case 0x40000000: - case 0x42000000: - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_MAPERR; - break; - case 0x04000000: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLADR; - break; - case 0x08000000: - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_ACCERR; - break; - default: - /* Let's send a regular segfault... */ - EXCP_DUMP(env, "Invalid segfault errno (%02x)\n", - env->error_code); - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_MAPERR; - break; - } - info._sifields._sigfault._addr = env->spr[SPR_DAR]; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; case POWERPC_EXCP_ISI: /* Instruction storage exception */ - /* XXX: check this */ - switch (env->error_code & 0xFF000000) { - case 0x40000000: - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_MAPERR; - break; - case 0x10000000: - case 0x08000000: - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_ACCERR; - break; - default: - /* Let's send a regular segfault... */ - EXCP_DUMP(env, "Invalid segfault errno (%02x)\n", - env->error_code); - info.si_signo = TARGET_SIGSEGV; - info.si_errno = 0; - info.si_code = TARGET_SEGV_MAPERR; - break; - } - info._sifields._sigfault._addr = env->nip - 4; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + /* FIXME: handle maperr in ppc_cpu_record_sigsegv. */ + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, + env->spr[SPR_DAR]); break; case POWERPC_EXCP_EXTERNAL: /* External input */ cpu_abort(cs, "External interrupt while in user mode. " @@ -167,24 +115,23 @@ void cpu_loop(CPUPPCState *env) /* XXX: check this */ switch (env->error_code & ~0xF) { case POWERPC_EXCP_FP: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; + si_signo = TARGET_SIGFPE; switch (env->error_code & 0xF) { case POWERPC_EXCP_FP_OX: - info.si_code = TARGET_FPE_FLTOVF; + si_code = TARGET_FPE_FLTOVF; break; case POWERPC_EXCP_FP_UX: - info.si_code = TARGET_FPE_FLTUND; + si_code = TARGET_FPE_FLTUND; break; case POWERPC_EXCP_FP_ZX: case POWERPC_EXCP_FP_VXZDZ: - info.si_code = TARGET_FPE_FLTDIV; + si_code = TARGET_FPE_FLTDIV; break; case POWERPC_EXCP_FP_XX: - info.si_code = TARGET_FPE_FLTRES; + si_code = TARGET_FPE_FLTRES; break; case POWERPC_EXCP_FP_VXSOFT: - info.si_code = TARGET_FPE_FLTINV; + si_code = TARGET_FPE_FLTINV; break; case POWERPC_EXCP_FP_VXSNAN: case POWERPC_EXCP_FP_VXISI: @@ -193,51 +140,50 @@ void cpu_loop(CPUPPCState *env) case POWERPC_EXCP_FP_VXVC: case POWERPC_EXCP_FP_VXSQRT: case POWERPC_EXCP_FP_VXCVI: - info.si_code = TARGET_FPE_FLTSUB; + si_code = TARGET_FPE_FLTSUB; break; default: EXCP_DUMP(env, "Unknown floating point exception (%02x)\n", env->error_code); + si_code = 0; break; } break; case POWERPC_EXCP_INVAL: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; + si_signo = TARGET_SIGILL; switch (env->error_code & 0xF) { case POWERPC_EXCP_INVAL_INVAL: - info.si_code = TARGET_ILL_ILLOPC; + si_code = TARGET_ILL_ILLOPC; break; case POWERPC_EXCP_INVAL_LSWX: - info.si_code = TARGET_ILL_ILLOPN; + si_code = TARGET_ILL_ILLOPN; break; case POWERPC_EXCP_INVAL_SPR: - info.si_code = TARGET_ILL_PRVREG; + si_code = TARGET_ILL_PRVREG; break; case POWERPC_EXCP_INVAL_FP: - info.si_code = TARGET_ILL_COPROC; + si_code = TARGET_ILL_COPROC; break; default: EXCP_DUMP(env, "Unknown invalid operation (%02x)\n", env->error_code & 0xF); - info.si_code = TARGET_ILL_ILLADR; + si_code = TARGET_ILL_ILLADR; break; } break; case POWERPC_EXCP_PRIV: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; + si_signo = TARGET_SIGILL; switch (env->error_code & 0xF) { case POWERPC_EXCP_PRIV_OPC: - info.si_code = TARGET_ILL_PRVOPC; + si_code = TARGET_ILL_PRVOPC; break; case POWERPC_EXCP_PRIV_REG: - info.si_code = TARGET_ILL_PRVREG; + si_code = TARGET_ILL_PRVREG; break; default: EXCP_DUMP(env, "Unknown privilege violation (%02x)\n", env->error_code & 0xF); - info.si_code = TARGET_ILL_PRVOPC; + si_code = TARGET_ILL_PRVOPC; break; } break; @@ -250,28 +196,19 @@ void cpu_loop(CPUPPCState *env) env->error_code); break; } - info._sifields._sigfault._addr = env->nip; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(si_signo, si_code, env->nip); break; case POWERPC_EXCP_FPU: /* Floating-point unavailable exception */ - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_COPROC; - info._sifields._sigfault._addr = env->nip; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + case POWERPC_EXCP_APU: /* Auxiliary processor unavailable */ + case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavail. */ + case POWERPC_EXCP_VPU: /* Vector unavailable exception */ + force_sig_fault(TARGET_SIGILL, TARGET_ILL_COPROC, env->nip); break; case POWERPC_EXCP_SYSCALL: /* System call exception */ case POWERPC_EXCP_SYSCALL_VECTORED: cpu_abort(cs, "Syscall exception while in user mode. " "Aborting\n"); break; - case POWERPC_EXCP_APU: /* Auxiliary processor unavailable */ - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_COPROC; - info._sifields._sigfault._addr = env->nip; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; case POWERPC_EXCP_DECR: /* Decrementer exception */ cpu_abort(cs, "Decrementer interrupt while in user mode. " "Aborting\n"); @@ -292,13 +229,6 @@ void cpu_loop(CPUPPCState *env) cpu_abort(cs, "Instruction TLB exception while in user mode. " "Aborting\n"); break; - case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavail. */ - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_COPROC; - info._sifields._sigfault._addr = env->nip; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; case POWERPC_EXCP_EFPDI: /* Embedded floating-point data IRQ */ cpu_abort(cs, "Embedded floating-point data IRQ not handled\n"); break; @@ -355,13 +285,6 @@ void cpu_loop(CPUPPCState *env) cpu_abort(cs, "Hypervisor instruction segment exception " "while in user mode. Aborting\n"); break; - case POWERPC_EXCP_VPU: /* Vector unavailable exception */ - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_COPROC; - info._sifields._sigfault._addr = env->nip; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - break; case POWERPC_EXCP_PIT: /* Programmable interval timer IRQ */ cpu_abort(cs, "Programmable interval timer interrupt " "while in user mode. Aborting\n"); @@ -444,10 +367,7 @@ void cpu_loop(CPUPPCState *env) env->gpr[3] = ret; break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->nip); break; case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ From patchwork Mon Dec 20 21:05:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526088 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4458734imb; Mon, 20 Dec 2021 13:19:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJxNtqKfNiPOE6Pujyd0sTg3z4KYHEFD4Xi+bGprqkuu/YhyB3buIosxfZhA53N/CgU3Tc7o X-Received: by 2002:a05:6638:164b:: with SMTP id a11mr64363jat.30.1640035148545; Mon, 20 Dec 2021 13:19:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035148; cv=none; d=google.com; s=arc-20160816; b=brr795Ul5jDe2UDquyjA8DVXxL41T/fgBxdY+NsJ7sJqwlpvW9AsTx9kpT2JQnMBk1 n7wKE0nPM2gBH4IfxuLpQKPVt45Fra9mtErxFYLwa/5TCBP893ewnlMbcCER+azMWVLU g8qLyPR4aGHiK7fL3v6cvh+H63qq25WU55irGtk4pKrGenLhatPFdTuCEi+O8m232RWb qos0l/9yYhyn9+H0DhNshEX1Pgp+NpXcS00qp0qbpf1NijGAWCNnak9vgRDR2P9H0OU5 K3U1aOxCRMxkV7Nu/mNyrEEEgWXT+Usx1rsJR3nU+tjpsxxEiCS+0D0Gn6nJxqef7MQL MrNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=zc3+Ihp6y4hHFXMKLdPsirKMIyUJ0yRqgI5dfqy9/NI=; b=d2ZX5C5qJEir4c5agWEB+sCiOBlNfLEGOS28DZIs81fKYP2DTWpE8nY1FYC9eTQQVo dkbUxILeDQvDphXfIi70Bt/TYZD45BKRUbRMie/gVhPnxEv3K70jUGxVkGv0vkV4ay/8 yyYm83olv22PiKQB7F7PbYcfRfonlnPFdbAcfHF+2oJ15LkzrVNONEGuPnzmEzMZhG9b 15J3tKe6AYkH5/hzXR/Cu4oxJb34tCVUMJR9PWfRDp3h0Ti/5pYfrpLjFYSPBT8Kvv7o Xua1HaLcfPYVCDi9GRWz9mep+9aNJRhppgRptNctTmQrV1xTAZEtBsz1cOc8iHiv/sYv H8ZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=zAvnhJQH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id k10si14034715ilv.35.2021.12.20.13.19.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:19:08 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=zAvnhJQH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:39384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ3o-00042s-2c for patch@linaro.org; Mon, 20 Dec 2021 16:19:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52938) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr2-0000ot-Cq for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:57 -0500 Received: from [2607:f8b0:4864:20::52d] (port=40597 helo=mail-pg1-x52d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0005wU-3q for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:56 -0500 Received: by mail-pg1-x52d.google.com with SMTP id l10so10431495pgm.7 for ; Mon, 20 Dec 2021 13:05:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zc3+Ihp6y4hHFXMKLdPsirKMIyUJ0yRqgI5dfqy9/NI=; b=zAvnhJQHvV/h7cy2gml4QM7cAnU9Pp403vqvAdvoCIrcXnxUmU8oQZd7VVDInFM1CX +eZs34ICSaZty5iPPQ7iTV+98w+KSQvbRG5MGq5cdOLOTZs0F6WAJsZBG6m9jVcwlleA z3rEdsncfCCvnR0BUVk//EghMv9EUbBWl6JiHrfWk+krr4ggkWGTVd4eQRx7r8IziR+G byb3jC9q8dRAJWuB9yyVYHWbeqaORdYNfdoicgkEC7yoh8wnRk6BSioOftMrtgJGwfzP kdBTVGMvToNah4asFLgzy9nBHh0iiBDGy9GFAEYOCBL3nV1TZF2WB0wICRLoYlHEd0eh LmBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zc3+Ihp6y4hHFXMKLdPsirKMIyUJ0yRqgI5dfqy9/NI=; b=EjwVkT4w259OTEbE5CbpG2rfEf9oCslZMwGYaQS7XJ7se65EPWqzTrHC+4ZtdONyOS FxbIyohUM/JfSrupdfJnUhx69k/59e39qz9vwKSIOYfEblCq0F73ph8sxQull491mZdf rMGWtK2vajaI0oDkFCfaRIgUh8acHmWbUskajuk7yV3/emWLihXPjudApRkf/BxouQww 3CexbPyOAV2emYNROOeVRKHqfjVNS6Edfwv3wqa3/XsxOCVo5LgCcj6eV+sDUSAfzc59 xufipQeCtcHVAndkAadgRwLr9Hjj3o98uwCy9ZsHyyITG0VobqJgZTP96YTszJxlu/UH dJUg== X-Gm-Message-State: AOAM530UmS5K+2AAXlNEwx7ZCzDpseDy5l5/P4Aq9HHybnzYpjRH6Z5l zAAYFlMu3JDmpmf0/526IKGnaoqtBttOEA== X-Received: by 2002:a05:6a00:2151:b0:4a2:5c9a:f0a9 with SMTP id o17-20020a056a00215100b004a25c9af0a9mr18652450pfk.39.1640034347347; Mon, 20 Dec 2021 13:05:47 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:47 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 20/24] linux-user/riscv: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:24 -0800 Message-Id: <20211220210529.150423-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::52d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fix missing PC from EXCP_DEBUG by merging the case with EXCP_BREAKPOINT. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/riscv/cpu_loop.c | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/linux-user/riscv/cpu_loop.c b/linux-user/riscv/cpu_loop.c index b301dac802..92a5a113f6 100644 --- a/linux-user/riscv/cpu_loop.c +++ b/linux-user/riscv/cpu_loop.c @@ -30,8 +30,7 @@ void cpu_loop(CPURISCVState *env) { CPUState *cs = env_cpu(env); - int trapnr, signum, sigcode; - target_ulong sigaddr; + int trapnr; target_ulong ret; for (;;) { @@ -40,10 +39,6 @@ void cpu_loop(CPURISCVState *env) cpu_exec_end(cs); process_queued_cpu_work(cs); - signum = 0; - sigcode = 0; - sigaddr = 0; - switch (trapnr) { case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ @@ -79,39 +74,23 @@ void cpu_loop(CPURISCVState *env) } break; case RISCV_EXCP_ILLEGAL_INST: - signum = TARGET_SIGILL; - sigcode = TARGET_ILL_ILLOPC; + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); break; case RISCV_EXCP_BREAKPOINT: - signum = TARGET_SIGTRAP; - sigcode = TARGET_TRAP_BRKPT; - sigaddr = env->pc; + case EXCP_DEBUG: + gdbstep: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case RISCV_EXCP_SEMIHOST: env->gpr[xA0] = do_common_semihosting(cs); env->pc += 4; break; - case EXCP_DEBUG: - gdbstep: - signum = TARGET_SIGTRAP; - sigcode = TARGET_TRAP_BRKPT; - break; default: EXCP_DUMP(env, "\nqemu: unhandled CPU exception %#x - aborting\n", trapnr); exit(EXIT_FAILURE); } - if (signum) { - target_siginfo_t info = { - .si_signo = signum, - .si_errno = 0, - .si_code = sigcode, - ._sifields._sigfault._addr = sigaddr - }; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - } - process_pending_signals(env); } } From patchwork Mon Dec 20 21:05:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526078 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4453112imb; Mon, 20 Dec 2021 13:11:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJwzadI6t8oPjZ/wPMaiwrF3X3/Mvw2xBpclJbX9oBW16B8vHG+X7hS88p+2HQnFV5uJzA1R X-Received: by 2002:a92:c248:: with SMTP id k8mr9363668ilo.297.1640034694871; Mon, 20 Dec 2021 13:11:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640034694; cv=none; d=google.com; s=arc-20160816; b=knQ1yweZp/Sf+qX6wRlhtrmfoth4Ehh8LOX+XNNDjq/6vkQ8xopqC4uKH7K867HK4k /+/QwP4ZD1Xa3QXlqIfzOYn34ed91NcWiLGJVEcimu9NGwGDlKqk3Aw/nM+Jb5Gprbz6 8flXaDxmetndm+lBJwSeWybHJ/ZztLBwZEL6UPmT+6KfqzlyR2jgkkCsrka7BJSO3CEb sJa6kRJ9mwt9CYxyXPLCC4EVME+uDZPZxGEwVVf70GHbnyMAFohKJYoulgSRyERJEx1W Awg5MKUvP6tkpmXgbgKlLY7qg12/jO0ov1kJVI2Jl/Skp+RRs4CA+hWcLauJjC9n6w+V ITig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=laLwdCpLZDBORzW+YMoP8+ykSJDKmPsijwGqiemMxIQ=; b=NNUnxvVRapgYctx7o77tIfhyMYuifTqQtMk9gytH7zIHfGKyiE5I7aDMDVmAwJNOaR 3IFuSrdFcNM3QGxpgKxYaxcuzjdopa3zNibK8gX6WaJAM6xmDLScDOmBkVXJEAQJXgwQ joBmvkNeqj5aBg9nAg8wr0Y+UIzRW3MEaNv7/WDtLP6h+BqN+S1XHXjcOW5oa8gzZhD2 Q4rpdbBJ8/PTtjAzvrpQNslcgkew0Xsl/aUJ0cx+0L3FAX6F3O0lV0f7+LiEbVXEGL/e fGGjhGNm9M2QlSAnP/BBT9KeZlgnvUNO5qgL8jKvRri6g/uspwkk9E0QbWUh1jx4691w ZL9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Hrg73iNv; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id p15si16290302ilo.174.2021.12.20.13.11.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:11:34 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Hrg73iNv; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:42132 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzPwU-0003mj-CQ for patch@linaro.org; Mon, 20 Dec 2021 16:11:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52940) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr2-0000ou-Co for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:57 -0500 Received: from [2607:f8b0:4864:20::636] (port=36641 helo=mail-pl1-x636.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0005wa-3h for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:56 -0500 Received: by mail-pl1-x636.google.com with SMTP id p14so2584047plf.3 for ; Mon, 20 Dec 2021 13:05:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=laLwdCpLZDBORzW+YMoP8+ykSJDKmPsijwGqiemMxIQ=; b=Hrg73iNvS6slcYASqJUNMC//++kw2RCZTWcCeGRHMQ2Nl8tZr2k+E7B9NnGcpDSXyI loR8iDMHppOvzjuXyp07JCmgvgfYOEU4magTb1se3XIRu6k/b52SNAhoIxm2PhdBCATj oF/LKdEDqKO2WUL97Ji1m9h1fE/Ju+5QuOotNmazF9c6SfTytJMprl6uqE8AXPGJqnN/ TPM9in5D8G4L34fTlLGnupb1DUITYTYKiOhFHiMsdNmSCp80K93zw9hG3JhN4dAtsXIz 7ARLwuPFh0+bkRpkmLV2cROJDa2VJTJY4vPqXjYc4j2WNmQYUi7drjX86LKRZWCeps1/ PDoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=laLwdCpLZDBORzW+YMoP8+ykSJDKmPsijwGqiemMxIQ=; b=auSIFq87pzmjbMsB6XOnvtBcwHczZ1h8DEujTRnx1hoNf1JErIBtpTEgUWRApA5egV JMuNSBUH9YowsBfvUsiGv/9tTtK0RXwfNGCAKy3FJ5p7zdIH86oDHqOQHFd3EDDycYQ9 VEDImB/XbjTF9uuF258Z0y2DQROv8ZSiIRVXnjm7u81lAeb+c/dz2jK3RcQoL4ub9gIA OwdxxY5hWrX4F7qh4P7qiRklB41RC9RcpNW5WZDcunwev2g1s78Jr+6ou+CbYemolCmn 0bxAGk6JJs5pHotdOSMi9yaQVxlPyAmudPTpe2Xh0U8HTlahelG6EXnL9C1DWM5qEg4g muFQ== X-Gm-Message-State: AOAM530NPDq04q3a06ZUVl2hWsk0cyrFHqskaRkTMSXohXW7rXJiXlLm YIgtsrV1a19ftstwKIbghvdtrouc/jR/Ug== X-Received: by 2002:a17:90a:8049:: with SMTP id e9mr7713pjw.23.1640034348086; Mon, 20 Dec 2021 13:05:48 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:47 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 21/24] linux-user/s390x: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:25 -0800 Message-Id: <20211220210529.150423-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::636 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/s390x/cpu_loop.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/linux-user/s390x/cpu_loop.c b/linux-user/s390x/cpu_loop.c index d089c8417e..0965d3abca 100644 --- a/linux-user/s390x/cpu_loop.c +++ b/linux-user/s390x/cpu_loop.c @@ -58,7 +58,6 @@ void cpu_loop(CPUS390XState *env) { CPUState *cs = env_cpu(env); int trapnr, n, sig; - target_siginfo_t info; target_ulong addr; abi_long ret; @@ -158,11 +157,7 @@ void cpu_loop(CPUS390XState *env) */ env->psw.addr += env->int_pgm_ilen; do_signal: - info.si_signo = sig; - info.si_errno = 0; - info.si_code = n; - info._sifields._sigfault._addr = addr; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(sig, n, addr); break; case EXCP_ATOMIC: From patchwork Mon Dec 20 21:05:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526085 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4457638imb; Mon, 20 Dec 2021 13:17:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJxG5tFNH2euf2GFbtpkqmfocCvrwSBH4y8/HkPX556acXxqHOhSgH1s2rwjP1buGkd6m1bS X-Received: by 2002:a05:6e02:b45:: with SMTP id f5mr1370770ilu.200.1640035058821; Mon, 20 Dec 2021 13:17:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035058; cv=none; d=google.com; s=arc-20160816; b=U0qrtun2xR84ouwCrG9aSXF/CnM0MKBT8t+o60WxJrvuUE84isAOvR0hJRJV0lPlcX o3oGrKULbWuJCuvRN5b4bxSRBtvYHccQMrYRf4Q7azXeKj+nRkGSIKyC/cDe97wnuZs3 Te4xwsV7O4NKmm7TGXrRwUpZPiSyg1W4AwM6YQV6c5PwtrvRYs3w+pettK3xdGoYuVam noHGDzdgokK4riuWjj4DPW2hDWus5sgz6loaHxIbV/ToE7MQiQdii2r3+OBhDO7A/3Pl b7u9o12fJVVqxtiX9pu6Hm6Rjy/g8kAtejFNoNPIMeu/SbyH6ntb7tykReV1g8qjb7n/ ffpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=0l8DFIUjHslvq6ryn61Vjm8Wn0lLyOzSxVFdscdlWzg=; b=rEkFjufEUuZGJg56sli37m7D1TBDprT+HfmlHmg2nt/0EfWh5bqQB30DtK7I/C8oty dG5HaK+tDSxo4VPuCpx3DYEcMRuGeD9huvXg8ZiSgxL5V9cc+CrRCwOPgSLMspULjviu D8d5NrWGErLYsXTVqh4u4ks07XxU76MQr7Kg5X5TvOJ+uSwG5rKhj3xAj4KBbgcR66dO eXK0XaOytL4QSYWbVs/jLiRb/f/EKV35sVWOQ+6GIJLphARkxF+Uopc2rPXsi6LCiFmj up8XiJ3kuh7DDbYDFJO18ENkhsgkqqzcaw3xruLj5O5RzPLM6n8vYg/qaZGUbzlFJTNZ vTAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=tUeXpeOF; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id f8si4500020ilu.171.2021.12.20.13.17.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:17:38 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=tUeXpeOF; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:59322 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ2M-0006wZ-Aj for patch@linaro.org; Mon, 20 Dec 2021 16:17:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr2-0000pB-Lw for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:57 -0500 Received: from [2607:f8b0:4864:20::102e] (port=42650 helo=mail-pj1-x102e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPr0-0005wg-Ll for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:56 -0500 Received: by mail-pj1-x102e.google.com with SMTP id lr15-20020a17090b4b8f00b001b19671cbebso1120711pjb.1 for ; Mon, 20 Dec 2021 13:05:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0l8DFIUjHslvq6ryn61Vjm8Wn0lLyOzSxVFdscdlWzg=; b=tUeXpeOFAX7mh1d2k8kZB2L2BMEWekTPjlNt4jC7Rh7vMBiHEtoRBbuK+ClAp7MxiA FVoaKjvdekI/7T+ye71zmYnqdMWWq+v/2pQpxeNIc7kY7nnOEaODVfq7Z3t29jbW7ca2 FzOJ7KE5gZc9oWkcs5LSYTOk8BxdqECmK3C65T/VbA4oegnRSmJC4jhvMH01UC8H7VLW +EZId13xMEyVM0voCHV2JyzonJWjHdzpoqNd3ZKgRS9V/OivGXhnrPButv2CUT5NBRcG lyPELNwndGUi4LfWMHIJgO/sre76TqbXRNK3o9XDH4QnyzK+m6MWaNr65Biv/bTMq24t KBHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0l8DFIUjHslvq6ryn61Vjm8Wn0lLyOzSxVFdscdlWzg=; b=CpoRWnmSqg0l7LctRcjgoCBcRY4LG7Z6FgFwLLRy5pGBqLdr6AQv7/vfI0+Ed+haso s1eJnYyGAs3M5J9WZ3Z0xMUxH1CtD+HvZAnPAp4Deeam5ntS0mHXVFhH+WVqsGcKq0hd lhFh+5uhR9BicwECjSujLYNU1Y3Gx3n3kvzZpiqR34U/Tkga4/5NFVBZmcLl3CJefqPo D863du1NPVr0no5o/Y5aiaDZ/Pq9xwpErb+Um16YF5rGLeG0Xq99v0exsuX3M++6oTUj NjGAjx4QMI2TKGoZUEqVv/cWC1U9n+0VqdU341QAQVbkghAhfL54RGVUX1CPEG5zMJSl ztAQ== X-Gm-Message-State: AOAM530PUykvFpGxzb/vH7eruHeifYcQI5Fl+4aJqk7hQMCAwiJatn58 tzwJ3sucPPyIRLfnZD0L+aSjU8pifpEgQw== X-Received: by 2002:a17:90b:1e45:: with SMTP id pi5mr38738pjb.64.1640034348905; Mon, 20 Dec 2021 13:05:48 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:48 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 22/24] linux-user/sh4: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:26 -0800 Message-Id: <20211220210529.150423-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102e (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/sh4/cpu_loop.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/linux-user/sh4/cpu_loop.c b/linux-user/sh4/cpu_loop.c index ac9b01840c..fb561f1113 100644 --- a/linux-user/sh4/cpu_loop.c +++ b/linux-user/sh4/cpu_loop.c @@ -28,7 +28,6 @@ void cpu_loop(CPUSH4State *env) { CPUState *cs = env_cpu(env); int trapnr, ret; - target_siginfo_t info; while (1) { bool arch_interrupt = true; @@ -60,10 +59,7 @@ void cpu_loop(CPUSH4State *env) /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526086 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4457661imb; Mon, 20 Dec 2021 13:17:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJyjU2lFd8jnvJihRtKMv2jRDvKHSvadUiPSnUS52UKjVQzTMfNIyJWD4ydwE/jInflPHlpm X-Received: by 2002:a05:6e02:1d1b:: with SMTP id i27mr9901789ila.248.1640035060152; Mon, 20 Dec 2021 13:17:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035060; cv=none; d=google.com; s=arc-20160816; b=KZFaFk02iMvdx6NMaizUfbvxF+DbXmFZItFjRuqNOppFrWYQu8JklKRTiumDeH2wVx n71C2wXvC2dHRqXE1SbzJuKqeiSvG+VQaZj4Ml3ZOACkgBQAjab8b6qJuGcIUd2xzCtE 4V2/aD37OE/y8P3E+y9h21aZCmQTmXM5vyeuR1w5RzFRa9ldzWdIrlBCcCN3Bc8OPap3 x7KHNlfdKZENMMUCWrLslVDTrbn7e0Fg6/iuRqwvvwHHjafEgRPs7S6jg7uP+seippff OQ7rJ3In5Yu3lRnyuRCBOoZau2MgzJaLXH38uh8w/oWeQJi0xy0Y423/pMeTKXz5C1GM 8J5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=aSGoNpLJmGSYi5bNrETBfs3C1lY0kiG6L8JLO5qLPZk=; b=oU3bckq2ROWtGsNoDzzjp/e2pHoCqxI963aM5cixARlJhDsZDaErCY4bon96ACBLUe vRGIKMoXi8kRXjnAAy65ys1zm2hJA3fx8wU1X66wCWLJs2ILbhloWIURcJKBDpYrltCj I7Nyxwd0YAx2Ps83qz3v30fHuRxIkKoGYeTiaipWWcR1AD0BBLDkkSR4DvxEYEODUKvy RwWvtmv+EOz8rLHe2hMuS7FqFKm5FbkguwW0D/w+MndrjQtCHEZ5KT0j14PY/EjTNSsC R5n6GPM3lN55vRgFC5WorA/gNJzfKZB/2D804ZgfyQcNRlpij5uiHTnVkVTerOhow0ZL o+dw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="n7wLEY/7"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d5si17405750iow.84.2021.12.20.13.17.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:17:40 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="n7wLEY/7"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:59518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQ2N-00075T-L7 for patch@linaro.org; Mon, 20 Dec 2021 16:17:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52942) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr2-0000ow-DM for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:57 -0500 Received: from [2607:f8b0:4864:20::632] (port=39782 helo=mail-pl1-x632.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPr0-0005wn-LP for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:56 -0500 Received: by mail-pl1-x632.google.com with SMTP id z6so9030138plk.6 for ; Mon, 20 Dec 2021 13:05:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aSGoNpLJmGSYi5bNrETBfs3C1lY0kiG6L8JLO5qLPZk=; b=n7wLEY/73s568cM9RrtDPQwjHMyuIZZptCK0zOFXh/gPxMoUkYArncRg6HEfOsuqIa QxJITT1TIAzMwIFNR9cXZ7IHycLoDlTzyvSAinn7XmCj7ObXDTobCQrzooKZrRffa7Sn d8hdH6uqg/XaUbqr3/OFBvFND/WLuqbvKtC/P7iHWRkKtJtz72dLGVgekIqqn8QG5G8j YKHRXqxoVEAIDNdpfSGtQ1fRifBgVHxV5fb4/O2qLUf8kg04IPqKZ0va5zldP29PpfcE vbInF+4YsVx0UmfBUDR4btGWZMM5CSeI/qVgA3Cgj2+s/bxIYaG+xaVHw1e/NHygZL8t F4aA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aSGoNpLJmGSYi5bNrETBfs3C1lY0kiG6L8JLO5qLPZk=; b=4TFryICj5xQxvuCbMx1PkQo6kXjdKdZaGJSO1jVfpSCZPZcY4GYORBZbtTdUfsH7iT a27izFX3wwFUa86OWCmzse/9LhTkKeCSnSva+Iu7xbHgYfWFqtIqfWTc8c/vnxf9AinB 5KoxTytYnHj0AwzMs00so/u22UwgACRZRhIC4f66PHo2SJSxc51dbUHCPk6JUuaR9Y2T d59T9jpDGOODzet8ePlZ6aiJYQhc6IlP6odzmD+jLH2ZXKgoE8v/5Kh5wxrCQp+LfgJ4 XvZN91Qc9154WHjK6G3M/JrtSUVk/LM7L3xfdWNZJyZVf1GU7Ak6R+Xbx2oMTbO+gCz/ hboA== X-Gm-Message-State: AOAM533q+wq86J9ciDxK86LtGDDqRITOUVIxqREkthvbeNRLGh3b5E/r kOsF/cKJ6W1UKsQFd0tmAOVnTnWEvcocHQ== X-Received: by 2002:a17:90b:4a81:: with SMTP id lp1mr7161pjb.19.1640034349826; Mon, 20 Dec 2021 13:05:49 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:49 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 23/24] linux-user/sparc: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:27 -0800 Message-Id: <20211220210529.150423-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::632 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/sparc/cpu_loop.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/linux-user/sparc/cpu_loop.c b/linux-user/sparc/cpu_loop.c index 0ba65e431c..b3e44bc1aa 100644 --- a/linux-user/sparc/cpu_loop.c +++ b/linux-user/sparc/cpu_loop.c @@ -155,7 +155,6 @@ void cpu_loop (CPUSPARCState *env) CPUState *cs = env_cpu(env); int trapnr; abi_long ret; - target_siginfo_t info; while (1) { cpu_exec_start(cs); @@ -241,19 +240,10 @@ void cpu_loop (CPUSPARCState *env) /* just indicate that signals should be handled asap */ break; case TT_ILL_INSN: - { - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = TARGET_ILL_ILLOPC; - info._sifields._sigfault._addr = env->pc; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - } + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->pc); break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); From patchwork Mon Dec 20 21:05:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 526092 Delivered-To: patch@linaro.org Received: by 2002:a05:6e04:2287:0:0:0:0 with SMTP id bl7csp4464377imb; Mon, 20 Dec 2021 13:27:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwo4PRwFD103hUIsngeRmDgJpR5wE9l+C8SeHfTLPm1nz4QFmXdLCZX3m929oQEF4Mx5aAj X-Received: by 2002:a05:6e02:1585:: with SMTP id m5mr9903020ilu.34.1640035646546; Mon, 20 Dec 2021 13:27:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640035646; cv=none; d=google.com; s=arc-20160816; b=SSTbxVN4UnNikYV6Y20xY/YtlY1s9A0vyDcRqSm6EMtMW+HePh8WhUVv84OPYoE65Z jxxgM++hYO8KuX7ChpaUoWvCB4ZrTiSENPgD5C/6ebXRukYH7SDgmW/WzkbJSMLCm7q6 wOkREWrHaaH7+vN073mI/EMTwmak6u1rNqPKnVxgWfizdNbkpc2DSbT1znsl7Iem9Jy/ DrUGRxiOwFcUgzkepUk8q+Cuy2CNXr/g7sHCX9Iu+wo6+/ukz1/Nezu5nVm7yCE3c/r9 LgTN7LSwPAS+famt5NhzePRDdkVVPG/i0gOxOxMbm8JQusYiot/TBrbSQy+sIdL7XFS3 dltw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=5xSDql4+/4hjZ41MoR3OqxD/rR+Fa1of3CAUT/0rGzk=; b=PyylSCJZ2ENXToQ7fQ+Z6jkzEzH1MHKkN0yLxShyCDA/QrFv17Gxr2XQ5Z3D39L3zX nuKq4jQcoz7eytJ8g8jqEMMzXIFYV47/Exfv5D8dOJhycZUU7A71YWlEe5LSH65EcJmY rNqlq+xkzYc+unmHGCqEZjidHObCONTJloCdqp6qfCsjNnHzKU/j3kj0teqeSzievaUa X0tU0Uz9iVGG/nRad5z1d6P0/0q4ees5CN4O5Uk1kK+JiWzrYP/msvPhKTqF4OUAA0YH NxtWlqDEG8NsIUyWYwv/qH7pFLHsl2MEI1PTl0alcuZ5FZ/zMH0wrWPc6jh7dipzqPad 6qwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=RDza8hKH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y4si6154935jan.30.2021.12.20.13.27.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Dec 2021 13:27:26 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=RDza8hKH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:34722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzQBq-0003Lp-3h for patch@linaro.org; Mon, 20 Dec 2021 16:27:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52936) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzPr2-0000or-5f for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:57 -0500 Received: from [2607:f8b0:4864:20::62f] (port=33358 helo=mail-pl1-x62f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzPqz-0005ws-3c for qemu-devel@nongnu.org; Mon, 20 Dec 2021 16:05:55 -0500 Received: by mail-pl1-x62f.google.com with SMTP id y7so9074124plp.0 for ; Mon, 20 Dec 2021 13:05:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5xSDql4+/4hjZ41MoR3OqxD/rR+Fa1of3CAUT/0rGzk=; b=RDza8hKH2rUkLktsOcgLyCz0wKAiiyLMsdlbWnbAQjXUx+R0JrpJNK7C2F+fqU5/g5 +/OAucW17UGxL3SeEfXVz8smAclF0Cv5ls3LY8Bg8odiHPjIV68/c8W5QU+d341kK8LE hVd05sQ5GcwQqs9IP0JYXdiwHsUk3XXcexBijFMlADYR8PtAzDqRZaqTln0j+1Daw24t dwFXQRYfqjxZv25f53Xn+vaiueANGLKn6TxxjIP7BzR7VVJS7JqLuQxDbRIYwAexPH5O toygY74h+QH/pe2BfiiTZJSIgYEeqCZHnvN5Q7wrFLtZpZjXbvuPYgDHAsaCP0xmf0V9 /5Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5xSDql4+/4hjZ41MoR3OqxD/rR+Fa1of3CAUT/0rGzk=; b=NMDawuFn+Qt7Ydm+16g6msAJXyuPy2tiFbMqjK94Xb2Wc9E0/mMO1u99zyMz20Xyrv EKXkTG4+yalXr3vloP3V1Jgo5NOBhj+4Aii+N1kYyNaUREAkJTnUkIQfRJK/Ps95/2Ye s3O9a8giiISiEkxPQ9pFTgZtCZuWrrZn8kSx9qqXFd20XJA+CSiLiTNL5lZhzA/aAJFS DJJR3WKbFz7et+Wlk/2FEUj86gI0wkucYCWIXB8isl75r1iYRTglu3RwXzUoF4+4jFNU ggTw/w/DJGmfSsOVJg2z4IkmGvImeiLvmbTMX5ayA6qKCZbYLNomneCl+A5FOFFtqA4w EfoQ== X-Gm-Message-State: AOAM533ypsJ9xQQx4yiYv5FcsQszc88LNJK/Y3bu+sUku/tA2+kjcA59 eL1UNbTsa0peqgeJ21MYCKY0Yee/d9z8nQ== X-Received: by 2002:a17:902:b716:b0:141:d36c:78fc with SMTP id d22-20020a170902b71600b00141d36c78fcmr18392948pls.59.1640034350629; Mon, 20 Dec 2021 13:05:50 -0800 (PST) Received: from localhost.localdomain ([156.19.246.20]) by smtp.gmail.com with ESMTPSA id d13sm20091021pfu.213.2021.12.20.13.05.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Dec 2021 13:05:50 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 24/24] linux-user/xtensa: Use force_sig_fault Date: Mon, 20 Dec 2021 13:05:28 -0800 Message-Id: <20211220210529.150423-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211220210529.150423-1-richard.henderson@linaro.org> References: <20211220210529.150423-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62f (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Use the new function instead of setting up a target_siginfo_t and calling queue_signal. Fill in the missing PC for SIGTRAP. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/xtensa/cpu_loop.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/linux-user/xtensa/cpu_loop.c b/linux-user/xtensa/cpu_loop.c index a83490ab35..34775feb7c 100644 --- a/linux-user/xtensa/cpu_loop.c +++ b/linux-user/xtensa/cpu_loop.c @@ -126,7 +126,6 @@ static void xtensa_underflow12(CPUXtensaState *env) void cpu_loop(CPUXtensaState *env) { CPUState *cs = env_cpu(env); - target_siginfo_t info; abi_ulong ret; int trapnr; @@ -163,14 +162,12 @@ void cpu_loop(CPUXtensaState *env) case EXC_USER: switch (env->sregs[EXCCAUSE]) { case ILLEGAL_INSTRUCTION_CAUSE: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->sregs[EPC1]); + break; case PRIVILEGED_CAUSE: - info.si_signo = TARGET_SIGILL; - info.si_errno = 0; - info.si_code = - env->sregs[EXCCAUSE] == ILLEGAL_INSTRUCTION_CAUSE ? - TARGET_ILL_ILLOPC : TARGET_ILL_PRVOPC; - info._sifields._sigfault._addr = env->sregs[EPC1]; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGILL, TARGET_ILL_PRVOPC, + env->sregs[EPC1]); break; case SYSCALL_CAUSE: @@ -219,11 +216,8 @@ void cpu_loop(CPUXtensaState *env) break; case INTEGER_DIVIDE_BY_ZERO_CAUSE: - info.si_signo = TARGET_SIGFPE; - info.si_errno = 0; - info.si_code = TARGET_FPE_INTDIV; - info._sifields._sigfault._addr = env->sregs[EPC1]; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, + env->sregs[EPC1]); break; default: @@ -232,10 +226,8 @@ void cpu_loop(CPUXtensaState *env) } break; case EXCP_DEBUG: - info.si_signo = TARGET_SIGTRAP; - info.si_errno = 0; - info.si_code = TARGET_TRAP_BRKPT; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, + env->sregs[EPC1]); break; case EXC_DEBUG: default: