From patchwork Wed Nov 3 14:08: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: 516739 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp695846iml; Wed, 3 Nov 2021 07:10:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxolyupieLSXp4rxcIvIdgE8FqHdECqlvq4xm31Mj2LEs3TVJhI+lYFOnsxKgxs/zCfc/AR X-Received: by 2002:a05:6830:1244:: with SMTP id s4mr32096063otp.161.1635948600260; Wed, 03 Nov 2021 07:10:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948600; cv=none; d=google.com; s=arc-20160816; b=mkt9n7FmQ1VEhY6lY+JDcZO23ut0XXhi0lDtsW/9aY7oc/BFkAzaGKiw+xIYhhkBHj F320uwxvWJ70o5fT0DsHCqPDtQCBCtuzhctSHlA1anz3mb8MDjpzKOO35uoap9o0JXhH y49tWHIqNlTyFnjRlgVF/siCBrHm7wY9yFIgEpnNZb3977aXLSjNg15Ryr2/dmrX34Lm LBnUtV1V/xRnv0d2NFMGCCsbLLo2MV24sdSEPCx3GZsKAzL9CAd99lmQUES25N+kQP4u Kb2QUrFOuJw3dlhWK4n4hgqFQ3O14/nCGQq5rxuMDqQl4xnmYE+3V5ngc5XAQrbX6iLg /TKQ== 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=J2ekQZgUHFBwZ3Oz3uiVU6aBNOJi28RxLl6uhXrVgUY=; b=IgHhq/GIaTDbM7JZIgvMAQWnSx10/xypaP6iWFTDMGd2q2/8z350RX0o3CivFho1uA 23iAFboVJA69c0kjdJSvKNSVPN7A+39oC20fnmrFftmK0K21Nxc84/8rwJaChMOXT6BA obyg1xgey8+9TGJki9Zt9QqwuK2GeylLq/pfhw+G1A2SugCBiNcNqMsgchGo1yfAdx9H ln4liH/01fbwhFiOxoXcg0UCTgn4KJHGgrpZszwMu45/1jSIvLSDjszqsnDZvvPr4B2w Gg+9d0QVCmCkySE7w55dvWQKhS8UyyrX2k/YrbEl3qybDxn45k42sCVyAyX9Q6K0EmGu CO8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=zJoZTnLP; 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 m7si3385202otk.21.2021.11.03.07.10.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:10:00 -0700 (PDT) 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=zJoZTnLP; 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]:34212 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miGxj-00028F-Kw for patch@linaro.org; Wed, 03 Nov 2021 10:09:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47538) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwf-00025k-65 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:53 -0400 Received: from mail-qv1-xf2e.google.com ([2607:f8b0:4864:20::f2e]:40616) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwc-0004um-TE for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:52 -0400 Received: by mail-qv1-xf2e.google.com with SMTP id b11so3032799qvm.7 for ; Wed, 03 Nov 2021 07:08:49 -0700 (PDT) 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=J2ekQZgUHFBwZ3Oz3uiVU6aBNOJi28RxLl6uhXrVgUY=; b=zJoZTnLPOBIuC6dwuFd5eQBMRhyNbYljs/S+k+EV3iT/ujQqq9KTP5EpLVFwZTHpRL CWSJDbjDjipP3AILc6KfDJS0B63XZm1proJAy79q4DX2FbufPhlZlX+4l/I00OqbSLTJ m5F5Gy3uLKaV6qYpo9vek0o+99wyLFDxZBvhXFDsRxeDhjOkzcosY3kuVRRCiERuM4f2 14ZwzoFrDX69rN6XiDul6rikLp3j2XjdJi2xhECCMHNUyIXk3jcQb5JJy8zr3T4xJgD5 q32/cfOjT0bKEiFT8WboQmo/a8b9Ee9Nzf7zE2uW+waRv7W2kfaFdXHbM6udJEV8YTpX g7cg== 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=J2ekQZgUHFBwZ3Oz3uiVU6aBNOJi28RxLl6uhXrVgUY=; b=f1eQ2iTPVjF5z3MipHi4ELq5MQ73vZ+WDtp0zLFGpQvhs7bGGrEib1MWQ6DLFFYrJO hflIye7NjTtEtCm99DO5wIFHwG5gKECsBqdj3ICxYAP5luew/mmlZFAHH3myNKobWeQr RaJwO6efGme9/cw/xjKi1DU5dL9Hjbl+q16pmVmermyauhsow8QliD+OeRUbZ/CFHzAF SRcjkDkAl3Pz2ho8BktGJwpQNAp0lQnzBE0Ce2Ijr4PLL/zk89FWBdeASEdvwwCbeOYM qWn1d5EO0Ltp4nl8rP3L1bRmQeLPm93yCIJhNuJg7pi7hdBiXQ4U5tUst9Mozz5oN8J3 aubQ== X-Gm-Message-State: AOAM532ufdffRZKDE9BetKgAt5IaRd0wiUqbIvB+QFVciPooIRZs3oJ1 V6Gm9QvtqLVPcbl2Wx++mMVQ2ojC1rg5lQ== X-Received: by 2002:a05:6214:27c7:: with SMTP id ge7mr32075882qvb.44.1635948529446; Wed, 03 Nov 2021 07:08:49 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 01/23] linux-user/alpha: Set TRAP_UNK for bugchk and unknown gentrap Date: Wed, 3 Nov 2021 10:08:25 -0400 Message-Id: <20211103140847.454070-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::f2e; envelope-from=richard.henderson@linaro.org; helo=mail-qv1-xf2e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index a5ce487dcc..55ccc6ae03 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 Wed Nov 3 14:08: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: 516744 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp698977iml; Wed, 3 Nov 2021 07:12:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKUUuRKLO4UfgfiiCe/M9nosagIVlBaq42pgSvLm487/XxM8zT4JqoO4q5baJehaNFiqA4 X-Received: by 2002:a05:6808:ec8:: with SMTP id q8mr10907177oiv.96.1635948763528; Wed, 03 Nov 2021 07:12:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948763; cv=none; d=google.com; s=arc-20160816; b=REiDYrxcoZ7KGLwqZCXwKjqb1Qm/iD02e0Gh9ahJFE84UzDKI+OWGLIjXcmC64K7kR CLZ5Z3n2cPgkBoh++5lxxKRx21u4TnXUhh+1/cHNLLwHcO044vaZdQxLwOl5lvB+y20Q sC7NHLGwbWoQGx6j0C50CZAQ1gNa79494TfYw4TjKTbtUUB/nxDTpgfQEd4J3D3Uu8/l gLT8Qk7LFiYHkVq6JF/jgWfvf2523nGoBVp8+qC571TzfBRWDSVLMvthFD5fFS+EttzY DdyXmq3wMaaZ7ZmebO5omccCKOGa2JeOcjy75a2UCB/ZX7UiPjakVYMHFEnBD5KsHzJJ lBQg== 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=ojI4X3wuz4NFbtyv++PmKh/Zd+4jPia403xh63z1ciuzobbBaqExyerebhLdxpOpAx 2tBuF/WC/TIKud6mwnTdjGKVUHrgzqEDcjYcF+KYfarq1xhJJ7QtKzLZOZFKyS8OvtDh pNFTsr0qyuNGVqUvkhf+Jetcbu9ih5X2hAl9WxMc393d3reRJkcQaPageTfeM9RYGPR7 WIi/8J/up2hc2kmPb3zhsTQMlu4Ba/lZiMz3bq6wk06vbMiJL7Er0iEwp2BEVAp87kVC xqOs2/tDfMxGaBdkinlpUp1ZRFv6iErnNBrl8hN8w6KoRNt1zfP7BElBMGRpXK4f3LK9 NBWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Dr5Woc4J; 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 l65si2884514ooc.79.2021.11.03.07.12.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:12:43 -0700 (PDT) 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=Dr5Woc4J; 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]:42538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH0M-0007sF-Sc for patch@linaro.org; Wed, 03 Nov 2021 10:12:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47584) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwg-000262-CY for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:54 -0400 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]:40619) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwd-0004ur-9h for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:54 -0400 Received: by mail-qt1-x82d.google.com with SMTP id l12so415045qtx.7 for ; Wed, 03 Nov 2021 07:08:50 -0700 (PDT) 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=Dr5Woc4Jop+dRmFy5mBMeyansUnLV+/FsJS4uB39qyYwWLTHGQpgLLVAPDtt0juxeb MKmPkvzG6icckvrxTFI40cEBDFpQ4A8kzYNbro2rhvsbyQ2M9QYwg5cDD3pd1AXQd2s6 OYzyY28DHM9ukEO0+dLR5iPqbhER0/24j3VYaARWLhzMR012z3RdxhhVKGK/A7brxqF9 Wat0zJy/kYrMvz7K7YJrXGz35SItjpm89jteJV81JcTjRG5R7JIdb3lTZx6I1HetN3JN kRu6vs+h6c+or8SCAomxTGWQiKQrKOodGfryO/3PTvHeiwGkInv4IIAM78z4Mc0aXx+l bfqQ== 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=q5EWyB1WcLKkllbtrtFgsQ55edKK7NXdWJilbxBPyExThmqP5l5cVjL+avFqvCFDIm Gu5vmOCq/UZJ/a4mMXu3nktlg0V3HST7qkltezFrFF+FPFgWFh7zIzN9WVRGw7wIe3mQ 5jakauahmDHhtetAdQtfYXHHuphvUE2qKB0v+ZNHg1imtqTiXNLe0FGPog4QBt5LyWFN CPkpdUC3WX/se7ew1Ifd2YTygrgkxAUi6v/lAzUunj910XquTjhAnlV0BFMHTeWbq8NR /UDyxDSklk8GKTKvqr8KxDh7I5xjKePpdlcNnbWCYwU4ajO49Hj5TMCDKqayYRw9uChB loqw== X-Gm-Message-State: AOAM533LfhIL3SiL4Wx2tkjIuzBE0npeDWcCd7p0aORF82uBAFeVj6i+ r3WCWXSBx/h1QsMe2QxnSmJhJtf/U5q35g== X-Received: by 2002:ac8:5dc6:: with SMTP id e6mr46128401qtx.174.1635948530051; Wed, 03 Nov 2021 07:08:50 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 02/23] linux-user/alpha: Set FPE_FLTUNK for gentrap ROPRAND Date: Wed, 3 Nov 2021 10:08:26 -0400 Message-Id: <20211103140847.454070-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::82d; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x82d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08: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: 516743 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp698968iml; Wed, 3 Nov 2021 07:12:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzg5yTdrQX4KTmz/DhwJhUJ6R6dkoOfwWU8g5pcNwwYcCOXp8dLw9LWOV36U9DX6PILFjUO X-Received: by 2002:a05:6808:1143:: with SMTP id u3mr10937454oiu.172.1635948763171; Wed, 03 Nov 2021 07:12:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948763; cv=none; d=google.com; s=arc-20160816; b=OsHZLZG7DgD2gfq0zzGenLulYjT/jzJhkkl57NHjvjuYyzxDwRbgfj4xtRzw2msuJO BBC/GIDHDrPUpP7G2NsZTMvqdtCzKx6H/kT/3rPqn5m2xTUnUA7ZpaxgD6BTNIcwTaCe WAjbwI0MLajqjlNks48tNJxNehS0bUiLAXkU0lFzIFvI1ShtLbfz0HYsFpXVIJjE+Tui Dggas7x/adaYKDlML6H4EkTOkZ1nWyhLY/ftTy3irxa71CfXcdbk6UgIlkozaCsT/FVG 2WFOkho2dZtPAFaFkEOi+YndkyqKi5m4cBIUjPgzDOid7mOrRtW6f77uCZldTlckqCpe 2rxA== 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=PlOC6gXvvPMzBHMP5kEeeH4Bh8+C+ZGH/sg3BmQ50J6qNoYN9Uu1f0AJOcTYWCMQ+k 5kLrHCmLErazk3mlaXXeR2a6k+pc5eGWgS6U3K8Rj4sIwfw4PrcGNubmAza98TAJvBzz Rb8FLb9xbijSCDNZdP0co/aA5XX8UAsaNTS74GnaraOj2yeObrqQexj4RcuFKCsh0yx7 JOxVBjdj9AdTOkG8BSvqHqqBARMe4MLNh7jdK2xeHGUReCK8CL+ABvzdOyb8BOrFZ1pL OH4HwxYkmKi7a1NHInmcRqEBMwizKmK6DfKHPnE1aUE2do8I2HmXYAdC1z4ocUtcVS60 J3fA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=tZU21ZQn; 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 o2si3665461oiv.170.2021.11.03.07.12.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:12:43 -0700 (PDT) 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=tZU21ZQn; 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]:42746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH0M-000807-GD for patch@linaro.org; Wed, 03 Nov 2021 10:12:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47602) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwh-000276-32 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:55 -0400 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]:39560) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwd-0004uv-KC for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:54 -0400 Received: by mail-qt1-x829.google.com with SMTP id x10so486610qta.6 for ; Wed, 03 Nov 2021 07:08:51 -0700 (PDT) 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=tZU21ZQnsjZXfbrkB1zSLY15kI+7bvdm3arZHT6VGz6Oopke9M4O/ILS9OVBOzReal tQecHsJiMDf2z+vHowZXBJoAQ/EwStJzFQzt2ki1Zgs0+5r6PPTXeUNQbor996x/nJqD Z9F+IQ0TLgzr5TCBUGzZfxOqdzyVChJfL+bjg2TmBKFIyM/6pHhDOwTRTQS4+om+ettV uvK0f4Z6bVOGCWFKK3JrliBHt6dnRKbVseBIb21dlRSc0CKiLVRsjqDc0BpFxTissjwm 61wfChd+5XX3l7FEXvEYFc5I/xIDScDO0hQ7W+WYdOpad7FcpRyWggiBaonVc3mO3qZy Hp2Q== 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=PGRfW/I6Ua4QCYTFgoC2dvtj9Not9fMK+RlbIEbPDu4VWylHaGI+xUgHPHR61GC0ru O2yU+aKnVYCr0GoZm+aMk3ncnDYtNeFAtJ+n2QvnTHrqek4tIU62rjrbm09Xd5xxKnK0 jkzTNpfxAntm4qdC46OFnq21+uHKKvNiMdS1TYJPNIwPf+Gb0K7ARmGFwlArs8T4tgcv ztJYxOrjmYj0WsuNK2MREzDcJ/GVTmAqQhVO4hopKwlvQyjznsqSTmEwq6Qi5AiI7aOG 8nUk0ySWhEiGaqjz2lzE+ohR8sAICtvk4dM7HvG95jHSKWBCzUo8q6b0eg5AXdeychQw XDOg== X-Gm-Message-State: AOAM533QMW+KO+c40WusOHMLoUmEROjMsHMbZpGloEHtq8wS5M7VlVjE BfnmM8+nxdmyZ9+TbnlX6i0J7ODAkf236Q== X-Received: by 2002:ac8:4e49:: with SMTP id e9mr47154668qtw.137.1635948530727; Wed, 03 Nov 2021 07:08:50 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 03/23] linux-user/alpha: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:27 -0400 Message-Id: <20211103140847.454070-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::829; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x829.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08: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: 516740 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp695844iml; Wed, 3 Nov 2021 07:10:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyC/iRlBJIE2pdXfewPMeHOMdTAOtoitcHtxJJdBzginG96/KPySZrCclha9r0JFLYvp6uJ X-Received: by 2002:a05:6830:1e95:: with SMTP id n21mr33096311otr.141.1635948600153; Wed, 03 Nov 2021 07:10:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948600; cv=none; d=google.com; s=arc-20160816; b=OXa7ENnkltMDSbu4HKUUEFh7QvSbaKSh7zgzvwmPQoKCDPywiOMPyCFeNOOzEUqM5J amvYZj1vz+Bwm8adjRhMqkLGvjNsqMgAFf0k+wlmlJaLgvr8uYd67hdppUP4WjZbREpb deuzlQGLmcTf64XMv1Od3T4Kk8E72iwTRMLTLthhEJOwMAbrMKXuMSm9sKHuBI5UAcyj 6LQmfUTI0V6G7HGhsLjcQhzU1GuhSvqiRlAlfMmZi6vOB/CJUkBNI7Tfg69tCHZwntgU 8kC3zrDujlwTDg8FNmlDxGmoOi6oObj22avCdqg8rKvnpoKmPCpLYmKuO4Y9BiZA/HwD Vk9A== 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=mBJTIIlRVOY4BDbn1e9n8WW4M4BRpmiObvCBKeIdOm3dBxqmaL27f+r+6VDsidlEmm 8Wgiv98tL6RekUMewGcFl2MfwPI0DgRc5LP3EaDKucD3DP2TWzK7SBXa0LVumZ1moEMB Y37yHl5G0okE9huF3TfUpGzArznDO25yvUj6+R7mfr+iylhhzMouqB4U6/bLs6mv9cll 2h1Y0akpwQbNak99OSy8SyS7vtpUanrjVk3RHXZEUGRfYpVFftOqUUeeC7JNsQVrobeA Lp7lGgqtMTzF5QKiGPyMuZ8Jez3vBg8Gsb1RDZ7/EJ+pwm5dWwDMnzCkUjdUoMxD3aAR isjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=VqR6SFi0; 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 w207si2575722oif.180.2021.11.03.07.10.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:10:00 -0700 (PDT) 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=VqR6SFi0; 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]:34266 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miGxj-00029n-ID for patch@linaro.org; Wed, 03 Nov 2021 10:09:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwg-00026t-UX for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:54 -0400 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]:34548) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwe-0004v0-Gm for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:54 -0400 Received: by mail-qt1-x836.google.com with SMTP id u7so944663qtc.1 for ; Wed, 03 Nov 2021 07:08:52 -0700 (PDT) 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=VqR6SFi0nhsxTuhz0+n1nr2SepKsLpYzuXp8SeI50nmxAN2UMjoq5brxyRMqeupayX Y2Kih3G5rP/Qk+r6H7nsRTCvd8LRhT53URwpTZmjUNoHWp9zEwxeuVo4B2K5/pYW2wXk 5El2k4QKlhZKOGvEP97ITGpcCEOCTIVrpD5V5yKFyOdgB0kdAOtjBrP2SFdPanYm11KY PbwK647h7Wbn4xwwgcDFyhWaRwu7h4bqF8BmUGkaJ6ebB0NkwtGZp8mKwBFU7CEQjxFJ rFN3DYnzH5XwfXuTxFZT999kIMQzmROI5dRUS6cTgWAlHIOOhKQpKydVrUc7rc0lytiX zW4A== 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=xpLivcPh+Lq4uIisXkkPBIsfnUAmWGvLrrC+QgirSQOqcZqoflyB8OZjJJo3NFxK0z fv6yhNhOEOZN4+Wi3m14V+0i7o/V9APp3H0gu/CUQAa1mE25ZGI5UyZsd4B0E7eDJkAD ZRQSmJaLtEVIZ7wSkflf/Cd4VqZkahAgUWQRkn+egFXduuqkzc7Eu5p298TY9y1R6WJC wtVmDDyqUKMcAMFDMWDI3BlLrzC+UndmFLQSBxAuS8Zjroj74PIRYyAr/wQ6PVg9hh/B LXwEYcLRdU3OgaS8NwdQlnz0OIBI2vPmKvXMKJSPZfZIYXOKDHc+t6Vy4IgrijcKaGXY 1MOQ== X-Gm-Message-State: AOAM531ezLYf+LAf4jyXxopUT33z4jzaqrK1OaMpYmp0IQAcmGgwbzOT 3U9EJl4GmJrfaOFs1PjUh9/5rG7R5xxt7Q== X-Received: by 2002:a05:622a:d5:: with SMTP id p21mr30872854qtw.44.1635948531365; Wed, 03 Nov 2021 07:08:51 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 04/23] linux-user/cris: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:28 -0400 Message-Id: <20211103140847.454070-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::836; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x836.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516742 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp698950iml; Wed, 3 Nov 2021 07:12:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz031G0QIqObj/3ZPJJINmoVEJ224jbzytHBS60z3hXhm0LX+H23Z+acxXg3HC0FL440MzW X-Received: by 2002:a05:6830:2444:: with SMTP id x4mr21003477otr.18.1635948762237; Wed, 03 Nov 2021 07:12:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948762; cv=none; d=google.com; s=arc-20160816; b=dnIl3bhJUDmfyB67GoSvdcHYfCEJYLZ3H9VPTnvbRr5nL9l0Sb0Hf6Wmif3PvRx83Z v8SIiaopoBD34EAlIIeYxG48phqmLDjSwe9hPb7WChETKijk5t73uH4FeJYUgOcmJGFP y/tinPkiQaZJfSy9qjDVgiNUX8QTOZ/m0ZL3QGDDAp2Xt2iHafbgRXhk8Ixoaov5jQJF M/Inv+zEYnAtu6es6iR+X756BHidh1YmsUfFkujLujykm75lBwxHMnsvCiK1szifbsKi 8I2pyZ/ZbCb2YCr70kM5F0i8lK6SskDlF99dolzKKdXJJ27rnc4yEZoaaOZU8bDzQdCY YhFA== 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=DnmLqCMB4iG29mR9BpRu98qVvqtA2P9vG15AIUB3sb+vD+yYCY7ime6tKUJEQqWEV6 Tt2qG93UtNmjyDkwApVVbvJWr8J4K9Ck7eJ34kPbOjyRotSUslp4vKUdmASUEGl1SkYi P/elpPxwiy0uTD4E8cI9yuLbU9Un6uRDftK928U5O8RQBGFzgwiGAU6YV+s0ZoCaxEbP nftac63mdky01P8TNoL1CuR7UyjNZo9luf9X7wdbUic4OfQwVcQjUMIEW5R5eT2fFsEL Jax5V9mIHkKGjHNS/q8oYwmvH5bffoxQ/xDy0vzINYL0hlQqKakE6U6qF1oSZUl6N6e9 Wn6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=z8omwNMr; 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 d15si2993692otq.302.2021.11.03.07.12.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:12:42 -0700 (PDT) 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=z8omwNMr; 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]:42478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH0K-0007pw-TJ for patch@linaro.org; Wed, 03 Nov 2021 10:12:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47642) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwi-00029J-E5 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]:39648) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwe-0004wu-VH for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: by mail-qk1-x730.google.com with SMTP id bk22so2365720qkb.6 for ; Wed, 03 Nov 2021 07:08:52 -0700 (PDT) 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=z8omwNMrodohDHkiauqS99L0gCILRKBYvNtDCqiAhsW04VpfxAv/MCLZ5wp4+lVCxI M/SzkwQm7u4dGJlA/mxcJT8NKUkcITv/CjVVpqElsrDS1zuEfOSOpROtQ+lnaB+eGQjh E0LDbXYUMhx3fFblsZfdHqGpF2YZmpTSm/bgCww00xpt8ecv4dM6X/pFXyg0B++yLdxi 4TMkkTzIogXplsPW8fsQcE+aH+VM/SkGqBG421YHpDMGUtecjrC19REVF6aMo0kImgdx qDF0+dnJSV1HPqhITOyhN2Jy70GTudJYJ+ICFOD0GYs1myT7OOZ74SS7CWiZ8cVKKDjP OhZQ== 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=cATx1wct0vbO45KARZ7jDKKYIFbPZ+8jd8Irr2P8sfb+vlOAsZ8CXUMYRY12XEEcaW hfpR4lhMZMHszGqXdIYbDTLDinWEFIafrOFbskbyLbAJeCsYYmOGb2hVYXH+Tl7JnVu0 eQ0OrzG5/dblU0mrYu4AdjdEXbSdHfYqlc2RqbxPTORfxq1qA+RgH9Rili1E82cWrJ4H YZIjiLMkzd1uUS+dJ9dKXgWmUiAl9Lp9Bo2Kl+jZJzoghDaUnQxsMgWoqvyor/J4+bKn fx3oFFEAx+M7ubjHTGkeAYctTwFlVYPY/0v0ZY5kdVyDjo6KdiSFeczo/fx/cex4JPBj /q5A== X-Gm-Message-State: AOAM533O8hOvwiF1ExDXX+Khn/l8RN9FknlyErffE3SFIlvoni5krCLT gzth1WALtXWFkNPf+eR2G6EjTpAWKaUtBQ== X-Received: by 2002:a37:614:: with SMTP id 20mr2213299qkg.403.1635948532025; Wed, 03 Nov 2021 07:08:52 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 05/23] linux-user/hppa: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:29 -0400 Message-Id: <20211103140847.454070-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::730; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x730.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516746 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp702630iml; Wed, 3 Nov 2021 07:15:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhOuZniAEkeJDGRaKN7TpBKksPJXer7PKAuGLV/29Zok2dPdBn9poYWKGNsoF2Oxb8xm+h X-Received: by 2002:a9d:f61:: with SMTP id 88mr32003121ott.330.1635948951828; Wed, 03 Nov 2021 07:15:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948951; cv=none; d=google.com; s=arc-20160816; b=qlUh4iH70vKLRCXSqfU0aMd1wSwEpOI4h/1BUgV1FpREVoXCl92FAl4Dz5uwe69/ik WiiGhc0hjphUfbEfMnSJp1VFzkb2dR7y1eFVK8Op3ZPEO3WRU/QZP4AuMwjwZTKnVJuu pn1/XE04TNjUpPD8w/XPu5Tl36btG6Qf0pJf0vQI29R1fJhgRAHT/4zkDYFPAxIfLYWb 4P+KJepIBeErWmETytpZ8ONfQEb3eXFYw+JZ5oW0B7OQXkMHiSCjw7iXFdA4otFHA+89 /EO5rnxAR06Gn8a9O18arRexTQDeHx4Bpp8/WMAXhi3PYd93X7i5FlqOzCxiooEN7zIl 0Dxw== 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=Y5j5Zs9ABYS970ugv750tEdrgmIxiStzorZxqwI/UngLncJU09StLm+xuY4i2a8zMc jVGsTZsEFRPt77/c5ZcguPKSqloi0sPRw0KmFpHT70H4/SR4WGWa2UgZ9zcS4rGiXCEI EcwEM/UsrnNuq7zWEQYom88mCCvtcg0atPQkeQOOAfs+YSKgy7LeSgEnXcXmVq9yblwy ffjaDfYXaeHirNXetyYY+/YBS9J06rWl0WmHxBwQZ25x8UTirdVBNTLdmy14E/lxzCvr EzFuUSJMUfAlwmMT46OScNve7lJzridwioVly/sUlMt/qPza71xip2Y/zJj/1D0M5eFx z3zQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=D1cQeN7g; 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 c12si4026456otu.304.2021.11.03.07.15.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:15:51 -0700 (PDT) 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=D1cQeN7g; 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]:51080 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH3P-0005Db-8s for patch@linaro.org; Wed, 03 Nov 2021 10:15:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwi-00029Q-ET for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: from mail-qk1-x729.google.com ([2607:f8b0:4864:20::729]:42533) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwf-0004yG-M8 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: by mail-qk1-x729.google.com with SMTP id bm28so2356327qkb.9 for ; Wed, 03 Nov 2021 07:08:53 -0700 (PDT) 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=D1cQeN7ga/4wQ/QM8+2uB0FcUGKrUgcL9/oRKc6ejSJKDVodak1d4I3vTk6NCqWNCT P09p1P7KTlaHpCszO2h212qDoqPk/O60+PfgPTFzPvilFLjvCdUWQ4f2VRlVAsGOLESt mdiN5JesBD9LiYfPLNNXdndLygBXU6rDA7U5gyzKPhvR1x6wLG/rjiaSuK2ogNrV5+Ye NzScQNZLv3TvXOT+NTGAEEIjRb85ulTv6CcuPLhcC/6t+hYHp5vsj89f9Dnhaib0AuoX W4qClPbs/J7hIDkasYbeMwYAmYGJa7iEc2URZXT8DIrCpzsgHYXN9gEAGQbl4AqF5uTO J2mw== 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=q/XrTOHz0QNO26ZaqrpxUtcqltqokZkjdSuuFLcwt3wKarqKMxWoCP0JYLkCh3ifiw i7e90K2r6WP+6VHCuU2nU7CvdLOcvppAjG9RquQ7E/OLOQ72b1iM7HtRexC/h6RQwE6T Yt7SA9L7rNdlNkxrJ2WydqFj20dIhJAlcG98xGQyeq2d9kduP7ByLHMte+agGA6u1ozR 6b58ThEyrVqy/M0f5oeujFnXsvtEEz+ZhgzMvHb52aPt5E5hI7CTpCn9iavPVTUjp7oe 82viQSdpu5lEmp4ZVwPM2KqhxwNS5jSKxYGvU1EMonItKGY/buKV7r9bFNxxqEy/px5w sxfA== X-Gm-Message-State: AOAM533cGJrVYRRinbbNTlvCYB6ub3PuW736b8dzkg4deor8TZOyoOnu ehbew0DP4+5HQB3QkB9ADV7Mf5UWJHyvTA== X-Received: by 2002:a37:9b83:: with SMTP id d125mr34331678qke.374.1635948532811; Wed, 03 Nov 2021 07:08:52 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 06/23] linux-user/hppa: Use the proper si_code for PRIV_OPR, PRIV_REG, OVERFLOW Date: Wed, 3 Nov 2021 10:08:30 -0400 Message-Id: <20211103140847.454070-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::729; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x729.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516745 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp702599iml; Wed, 3 Nov 2021 07:15:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDEWAd9lh5b44WpJxP7QUqO4p184q1tTyEvl1xE76HGROR+V9xLSrN4sNraIEIR1Fmi+DA X-Received: by 2002:aca:5b07:: with SMTP id p7mr10322375oib.14.1635948950201; Wed, 03 Nov 2021 07:15:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948950; cv=none; d=google.com; s=arc-20160816; b=gu3xu6KACrtkzXCjJj4174laBgUFsvHhFv/BhBWj5sMC6IJCN0xdUfGzsR6WOB9G38 iMpinrJZY9QDXn6M3aFtiPpgs3hPPqtmv4f8yAP+KFTX0Cs/xCJ5aa3tn0NRfkD4ofnl 2klIkRieM7Z2oggV5AGFKyatE7qqiFZ12pXxHsWD86qwn+dt3VmxdaPJIYRwnrpVvsHg XqyhHP/T+A0pzdCWphh9VGtcUmVhQfDLAdLoC2sETxSbIP6fj4YbAGr5p6nUfUersxWG C8arqheJMFJK0Jf/m2E78oIRwOmpbCTN/fMdg8SRHKPnbLWoLPLPMZJrWPCJGiIlqgtz /Q1A== 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=1o19N/gk+PXUbK6jyFXquvR0OhRPiuwQnhC8c4hu1vw=; b=x2/Dtvtkj27SfNwOUQvPYNicwCxSc0wNyM0BdXv9u8uMJfilYFNyKlwZRuoAsocpL1 OUNvZDsKoHakc6T4+FFlmrciDzoqaBmo5Bt7ZHP0jmwa0Z3WfgVcPItS9PbxZKP8T6hq wxoyqD18xfWuqPE4ZvGynXEb3aT5Lkl9TQQshjiSNJDb/88Q4YFANjo0bvTC7NAq4JEk //xKoHwRB1rK0eLdFwRtO9KLB4U3QYUBwBDrGNL8igqDOKHB5xqhgt+JiGmviP6vVp2e UOecsLA8p3r/WOk09xY9Ezp7z7kMaXVGq6N+wR0UEHOxaZsZUkGNsPqJwgrf3Ri7/sPx DH7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=JJUr5FC7; 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 l16si548104otd.107.2021.11.03.07.15.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:15:50 -0700 (PDT) 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=JJUr5FC7; 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]:51108 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH3N-0005Fu-Hl for patch@linaro.org; Wed, 03 Nov 2021 10:15:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47656) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwi-0002A3-LD for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]:45845) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwg-0004yL-BH for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:56 -0400 Received: by mail-qk1-x72e.google.com with SMTP id n15so2335781qkp.12 for ; Wed, 03 Nov 2021 07:08:53 -0700 (PDT) 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=1o19N/gk+PXUbK6jyFXquvR0OhRPiuwQnhC8c4hu1vw=; b=JJUr5FC7hZ7DKtjnSHUU5Qb8R0OxgQKQHQfD2L8og3/u7HMv5merNjuxDIOVwA7umt IlTsoOibsgilWhDohCLkytIrgsmka1+hPKtuihpT1YUD0Bo06uHEe4/3tOcopbIEtEIp SqpjivER7KL+K/GDl7tzGLhprxEP1k1flYkdJQtSqTBO5lcDkyJ3ic82sPy1OEbB0eZb VN+nXcESRlbc5mWlu2lB4qp1ptuyPUsAO4CHptJIKqUSsmH3LChriWU4avD05CCnqJ8g wIyjlmUffZSYYfuGhHahxvt7CP/LQtx4rN0yCWO2og4AgQ77MCsuY4kgOJcTKhY4kd32 jxPA== 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=1o19N/gk+PXUbK6jyFXquvR0OhRPiuwQnhC8c4hu1vw=; b=4M8GmR5QZZ0ZhZ9PI6ftj6bOcnNiauUSY4vDit8CNz6Z7vhrwRkFt9J2wS8x/sktmW 3Hh/vhthKvJiiju2dm3ql91WSRB6pZvTQbiat0TXEUdXvW1hriv7sDsIJZC6spXzUt4C xQc2ns4TjLjaFeOUtmpfiUE/otZlDvRNnUNc1qmH7gT9g41+6gUJ+YGkGDV89SfepKUu MUpOGq5DvkP0jj0pQvJA6JdlPWIBFRPHHg7wUrVHO3yA+JPyMdJ4yUoHeVY4h99hgiwc Hezu2NIA4VnpSYfuNfzKBWrz6CaOLJ2N4ux0MLoJRZVPxjb4itv71zssFZH3lxrkKrmh S4lQ== X-Gm-Message-State: AOAM531/1GjY+xOa/PJwSnsAop4vwQJtB/VI9CZqOFDc8djaSEwm2825 n/+HYkfUKUPhtFB+RGL4sWZmWNx2DNjHOw== X-Received: by 2002:a05:620a:448e:: with SMTP id x14mr34639705qkp.406.1635948533408; Wed, 03 Nov 2021 07:08:53 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 07/23] linux-user/hppa: Set FPE_CONDTRAP for COND Date: Wed, 3 Nov 2021 10:08:31 -0400 Message-Id: <20211103140847.454070-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72e; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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 --- linux-user/syscall_defs.h | 1 + linux-user/hppa/cpu_loop.c | 2 ++ 2 files changed, 3 insertions(+) -- 2.25.1 diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 55ccc6ae03..f9efbffe0c 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 */ #define TARGET_NSIGFPE 15 /* 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 Wed Nov 3 14:08:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516751 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp708285iml; Wed, 3 Nov 2021 07:21:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweJFciRlQ4hcVLXEeppD8Bz+EGlZI+UeeyBuQoFeGmsLNAndyE/ka4kOdhwa4KjNm3bACt X-Received: by 2002:a05:6808:23d4:: with SMTP id bq20mr11567808oib.112.1635949275852; Wed, 03 Nov 2021 07:21:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949275; cv=none; d=google.com; s=arc-20160816; b=PxPQAyX5ULfkWmQJvaRnodYlWBCytQD9rgTHTv+bhHKVTCCWcSGlcOAGrCXgOkZbnF mXA+a5FLUK8/zNHTMx5ISBwbInsdVvOTd0Z45ebP9RWOjsKhgjMzZFNbHtvkn09yAU59 P7kGQkeRiNEGctkVA8OvpARNzLw79ZMeaI7RyraorOLCPxEIi5HlZQarU3PJ7v+mvhbw J6A6zbsLaJcPnBa7CZHQxpObawIlKKF65+tjmxKF0qQn27Ij3twnYvH47Us0h3bJ+CC1 +JzJCh0my4zGtzK/TFwHocBZxDV4N5X7qP/MRv5AoSvkMHNnAmDawhgvcmXDJsG4e6l4 lbOQ== 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=ImT/j4dmHqb4JZHF0ClpGnUV8XxzM7wAnWpBnIt4EEFoyVE9S1NGF7P7KHkvc4wOG2 /0SlYdosnXo0k5UsHr3xwPdthscBbRZS/FVCFMEa7AuvvEQkxazWUAyBcf64c7/WALId MutfRIK+S+me7QyvchuHTZxL21g/jQLe+i2mcy9K5ekV/DYM0jzoL8FHNRiomJLigsS0 ++PGjw1pqrJFpTqgO9X/1GOVbbDVUwX4lRapx+la4P3K4OwZdr/gepU3PCwdNbc3zOm7 Aj9XcTS0vRStdFXXI5m1ZGgvlUu2iFpwTzUuI4RdTL+xhyRBUwM/7jM2ewlaRkK/utGn oKLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Yq8iQ5in; 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 h64si2674989oia.94.2021.11.03.07.21.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:21:15 -0700 (PDT) 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=Yq8iQ5in; 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]:34124 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH8d-0004Rj-6y for patch@linaro.org; Wed, 03 Nov 2021 10:21:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47698) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwk-0002GK-5p for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:58 -0400 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]:38590) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwh-00053w-VU for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:57 -0400 Received: by mail-qt1-x833.google.com with SMTP id h4so928292qth.5 for ; Wed, 03 Nov 2021 07:08:55 -0700 (PDT) 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=Yq8iQ5in0C1NgWCyi9rfpzWeJSg4FUhC4iIHgo3iRskj1bG87UemKVpqCt6S1AbUWO D/80g1PjaMLY50gA76/8kEmuIR58LWQfdkIzSLb+mWvXAO7s/Q6QJZFGFogY3TCmTZjo GySzlng4kxDrbY8d7D1z65a5UIGFE9fJIW2kWo3aYwKdif2LZiYaplwPAArw+ccNkPfb kFXjb47xkghTzv+/Zc0sw+ojO/RBG5tOpWzSM73t6Pe3aId4gK0xKw1eZjIi9X4CtmIQ NxLZ9T1Yo6fco3weYs0RQXlNgyNV6GMOIhXwzRN48XWHc9joRqiy/H1rRjULfIuRo3/y e53w== 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=11ZsbUOmrKRQtb4/MTIGjJEFnRL2l78NuRPWaAmEjV3vZ8Yxa1nsHAyp+xSJGW5Qkk Md3k1i05hQWQrg+oV80AaqKg/hRiGA8rPU2waqBNQHD+39TYSGB9ty5SUgBYmlkweAS0 ZDMtmFPpXPO6UU6/5JAc0OSvqKYlYGYilDIkcQS3tgvMXXkL3o02BWb/tHok6rO88RzA DLUFP80gBh2tdi+xrC128iS0mGm1LbPh5uoWwLLEy0pKUeJTj8L6NvIgytxtn000T4ls gCp+G89BOgIHJKXrwfru0at/jPYuO/fhd/ouyOOZOOIuJd1LFEKfgzqhWEMsbquPAIor yXtg== X-Gm-Message-State: AOAM5309q54ZIhhaw7vlgQlb76jLiDFMQdGrKm6gSjxiAu32JzCST3EN zAYm7aPzAQLgysM8x/5okv8xwnnV8qJ3yg== X-Received: by 2002:ac8:5bd3:: with SMTP id b19mr27869626qtb.153.1635948534028; Wed, 03 Nov 2021 07:08:54 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 08/23] linux-user/i386: Split out maybe_handle_vm86_trap Date: Wed, 3 Nov 2021 10:08:32 -0400 Message-Id: <20211103140847.454070-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::833; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x833.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516747 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp702646iml; Wed, 3 Nov 2021 07:15:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEJHn5PMbaLHZNsQ/eRtld7bTbkzjRuAUpfGWDZDSV3OtMZLFzuphXxreg2OJzIQjQar0b X-Received: by 2002:a9d:774c:: with SMTP id t12mr26159838otl.282.1635948952664; Wed, 03 Nov 2021 07:15:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948952; cv=none; d=google.com; s=arc-20160816; b=ZD3Y9kI1zxdggYPB+jOgu2loAc6m32Enn6p8fcJJRdoqtFNh4pT1SixFCI1tZlup3g BbquDS4omjU2JQVcHSOIJln2HMb++nW/PZEya3sKvSSfcCiBHMPV2MDteWr/lbyz6ThG EIE6W02Y6oMfDoL01dbjPgJnmHYVndYccWtEcqJImSOnkYWNuLX0yk8Wqicchnjg8Kkv XrWkyXoCXLpZciho3Hu1y3NYF8Uuk4vI0GBs6Ht0fV0Et0pXtGBqiJB4sO++B6HL/SzA q0FFFFwDm2ufheBAGgu0pxqViSP7buZi3hM7YUlI2atdMZ9LTGHSaa7eEtI49yV2je3w eWwg== 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=ZwwneC4dthhD9dReJLMtnkkmQkNwYKYPc3BBPk0GvfUq38B1RQVcLEn6tQzBONtGC5 XqkELVu8YFRWFRrhCGEGzEN2aCBRpfvZEcZwnoVMDsAbhyA1kRuz/At4BNpvQRtd/KeL rf4pkG5iUJagSvrkm5kRfNuwUWu7GzyH3NvTc2ubgmelpOE7W7hhmfAoA8ZhHw1hgk8R LAU2Iy3qFdlEkdsyGcBnqbnzz2d1xg7eDP1G4JvFlI5vNwyfv080yDIYmi97svSXmVbB HrdONfY5np6LPgQMsJt3bWKHHGKFwBjoPnHY4vu3s9wjh8CQynk7kPg/KXvlFGiuGVw7 7Y4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ungcFu6d; 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 l18si5226182otu.312.2021.11.03.07.15.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:15:52 -0700 (PDT) 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=ungcFu6d; 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]:51132 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH3P-0005Gh-SR for patch@linaro.org; Wed, 03 Nov 2021 10:15:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47688) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwj-0002EF-Hz for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:57 -0400 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]:38744) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwh-00052J-HM for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:57 -0400 Received: by mail-qk1-x72a.google.com with SMTP id bi29so2378272qkb.5 for ; Wed, 03 Nov 2021 07:08:55 -0700 (PDT) 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=ungcFu6dQhfohOTevkP7C98yW1WFl7MWaBtyB7uoVL8/tha02x9JJqIPU1xaXTiK6z dMn6TXV45AFwl0DdDRvmxc6fA60LrqzrtyPJHdgtSGHyIhUeq6x0rs8a6RBkdZ1fi2xi GjyZdiXlHJ6yA7pnb9rMmV7S58VPueP6alnYoW/dTpRc+KgsDW5pvdrhoI7Yd8WtBaFE PLIQ4hAICQtAufsEzX+seIjCZg69vCkrTsTw5CccXM22P9/cxfpYjMbYz3oZ8epGSs1I /w06ovvYP5SIcBMtOGJV8qx3boHy/waoUh6OhG+Rfw3k4/JXCWB8OSjv9VhqekmF1iNE YLVw== 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=6uvQUu3QM5YV9LuVUV4CKVkDzDGuemDA7uIr5z2AeD3sRAzukbwkN1KVAEh8tev9Rt L4CRkLqUWz99eyROc6cuPyITHn2fKUqjqMbHPY3VcX0KyFXgmNAwcEgMox/pzd1lXUJa qLlAIF++LNtns9pr6vTexRa2+6Sri6umghSBSDcNuQkVSbmrJYxky4zKL5DYXPkutM6u W5GEaCyFxxcMlPc9iW5AlUZppHOISRekgKZeeXwyLvd5IPphaxiNpaD8PaHBsOnU29n9 J1ZlQmtVsfwhEThud5+A1rXFkj51Gb/Dn1bczQvqdj/RfQopfTdBoeymNaIj9i2vbvna jYnA== X-Gm-Message-State: AOAM530aX6t9OckK0cx6MZmQQ1S+lBFZImoElvu5KRooG/3OwsY4ozwr mZAvFjc4GioUKLIwfZjeTtC8jB29zNTh7Q== X-Received: by 2002:a37:b0c6:: with SMTP id z189mr35320453qke.344.1635948534751; Wed, 03 Nov 2021 07:08:54 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 09/23] linux-user/i386: Use force_sig, force_sig_fault Date: Wed, 3 Nov 2021 10:08:33 -0400 Message-Id: <20211103140847.454070-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72a; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516754 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp710255iml; Wed, 3 Nov 2021 07:23:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZsk7wXlZUia1gX77zIHyA7gVPdOeFXtAKvmV6/kq3tefizy7iKf9kRRlOdp5CoXk2HzqR X-Received: by 2002:aca:5bd6:: with SMTP id p205mr10589800oib.35.1635949393832; Wed, 03 Nov 2021 07:23:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949393; cv=none; d=google.com; s=arc-20160816; b=SxfkLv1xIW1vrDDJzsxEWxa8R8DL75kGkKV/L2b4Udxhw8fRXRx/OlxbOl6YrpQe5h s0Yd42GNl2QN09leGe4NY3nyiGFGBKqwz1Q1fmHLwlmVwuHjXZZy6O+22RxpJ9IAs6nv BOKTyBbukZe8EWyBUdasG3zNgqnlUlXSTdj6jamgknwiQCbyy7A38ym09us2aD2Q9sFm TswhKh8ihKrqJchDTiUHnO9K60+fuwsk6MrbfYSSQuod6ChpRGXKXthzWgAGexdQH9T7 5iUfGcOFPw3/HbsZY0Gxz9WOtAMYO3VTq/Yoyi4wfFZ6W09hNnI3UmQHPb/NL8tMLk2V NwJw== 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=WAlOrKldjPgWBEPfoDmQyCG3ApMTUb3gVQza4R/7nv0eplBiWwFs5wWVNK4Y97B4MB CECUsvVLxgO4cJrB3aaDEBA+B7+VwV+weKLJRkfMeADafrNtnC4QQ+26Gt+SlbSM7thq X/5DJT631iRzKkmTzXF9P8lBSmiXjc3YHHJ7ze1oQxKXATW7f0adqJiXEKLj6idyFS/o k6zBVr11Vry18CH2K76ugMun6rZOanjAInwkIOtW/yz4zgDF+k518l/k94bGHgywrRZv 3kKKwzFLYFbkTdds4TvqAbp5h4e5GjlpsMh6m17XYqY9+QhhWYMfl6s2L+WoLp5AmEcE GpJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=nJbU4XvD; 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 o12si4122831oik.305.2021.11.03.07.23.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:23:13 -0700 (PDT) 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=nJbU4XvD; 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]:41068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHAW-0000uT-UD for patch@linaro.org; Wed, 03 Nov 2021 10:23:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwk-0002HD-D3 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:58 -0400 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]:35397) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwi-00054N-CC for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:58 -0400 Received: by mail-qk1-x72f.google.com with SMTP id az8so2382041qkb.2 for ; Wed, 03 Nov 2021 07:08:55 -0700 (PDT) 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=nJbU4XvDizlijKMngLwH31ra32Qd4idbp5DY4Jw6GtfXCIbyFJ8biQ2bP4e9bfZcPy QU33Y//wRpFmw2QWSTBhiI/btimEJ8w3IHMSrBwY2bCW9sYJNpFBuQzKCzFhHNAWaOSe XM3NqIwci3qcHoIz2pbg82Tds6k5VWSC2h9yl2EbMkps3GqdnHahSPNko38md0w41Dx1 9zmeEHyHuzN9Pqqko+fAHfho72ZQFq5mmMp//jg8zvdY+78F3k88gcIKBLeHdzEIk4yN jJcn8eL0IhMQmJtcaUG3vm7tGMeWeiiUlll/2BSBNWPdw+HzyOosgZ8eaAtt8kHtgKQj OapA== 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=lUmU1KYkp/Fhsl2g5M0oRuloTr36+Yu0w42l9xKDjAiDvcc98On+1XKr+pwn3kcvA2 70uBdGNDwjLSokPSFINfQ0J/LTowYz9LGbmrQCAaEEU0a23SR1RLft+Ft8OPwzCUuqGZ kS2Ho5jTfqtcr5keWqP4PRFca25S0daiTyEFVl9OX6kX+bjgA0aIgCX0Qop4nNWdWAXy le9I4hJQxACSEaKhbST7EnaAkomxWLhbMmDAWNiFZIBHrWRLHKvW48undXQKsMmV++U+ rCsqtcLCKquG7RMR4fK3heUQLZZEerfx4Bd+3hUDJLfuy/E9w0aHSTkamcgXM9uQRUQH 616A== X-Gm-Message-State: AOAM530Cn93gcMfJdc5hf6SVl4km8JWkYlxTVoxTpwYbErEHdjxyvbcr xe92PCIkAvbayEDG7HApLGXDyLRYZ+Yonw== X-Received: by 2002:a37:54d:: with SMTP id 74mr5789043qkf.209.1635948535428; Wed, 03 Nov 2021 07:08:55 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 10/23] linux-user/m68k: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:34 -0400 Message-Id: <20211103140847.454070-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72f; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516756 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp711920iml; Wed, 3 Nov 2021 07:24:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz8Omz3kQxJIvVCzoslOhbbA0ibkler497NJu1IhogGhO2mFc3jK/3U+O/EqlErDiAL+ZmR X-Received: by 2002:a4a:d244:: with SMTP id e4mr7454864oos.51.1635949488759; Wed, 03 Nov 2021 07:24:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949488; cv=none; d=google.com; s=arc-20160816; b=yRXxPitl3EHwDwTp3Bh2d6I9QCyOXTyFVo7AWJh4v+GHjU4MJXPfZld3pZ61vVJiRo tm+Kar0OSGxWuPxIjaoqKq+TOxo6DHGfJjaUVo+jjJ7Adacyu+D5+zyTHwyMEDIiZIlw k53B+AUcEulAhJL41kKjVvXzhowDkPvWLkWr6bKyCV5SdTzAZ6GgLObCrOff30KUWGnT 5yDGDFfI+mYlNpg8XftA3lB++nmMCGDYGjQmC3n4n1xleyBfa0181VvpvbqHq34BtK9N uW1PQfBqoaihFfux7IDFzqvXV5WrWWaio9gXrE3l1Ji/eSaUA97b2edzuNI4aP6VhmCb C9oA== 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=C1tjlrr7C+k5CKrwkwZV2l/LZYah1PosCUCes2yBV0Jp8aZ1pKr4Zf3+GIrFYw6NHM K5jcIsAv/+BWIsBuUuGcJz4fqV6+0dgLDgHqFXqNoOoT/U6KKoqN2HzFzOigAwqbHJKR 1fJUyDwBBfQC5+kjt6720iIebSfYGh5CCIV9xPagrq9ptoHuo+jIhPZ9KN4fkFA+65ed F5l55H5aOaNjJqVAlSUhvVVeGz5iDlELBknG4DGvsVn/N+Hi4EE5mjVg22MO6zPJAhJr eT4OZEP78+7sA6QawTfoRFnv6M7g+nEtt2Vm5OND5NFfgi4E2PFC7tjOScdOO8epLhID ounQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ioUvExLc; 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 s15si3996011otv.298.2021.11.03.07.24.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:24:48 -0700 (PDT) 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=ioUvExLc; 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]:47044 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHC4-00051B-4F for patch@linaro.org; Wed, 03 Nov 2021 10:24:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47730) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwl-0002JW-0D for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:59 -0400 Received: from mail-qt1-x82a.google.com ([2607:f8b0:4864:20::82a]:34538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwj-00054i-1c for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:08:58 -0400 Received: by mail-qt1-x82a.google.com with SMTP id u7so944902qtc.1 for ; Wed, 03 Nov 2021 07:08:56 -0700 (PDT) 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=ioUvExLcJdcJ8BXkJH2ISa4o3F9qaE690mucceUqVokG/ITAprIe+LDHVmEaFIQ2Hd BFuSNVJ7Ep2G1uNBSozXzzdZzOP0cyYbxdjqxDeKiZKVd40pMClmd6RR/u/mwGUXMXo2 wUYoGBoezJWRdrbhSnQpPPzhe+1TLtvhNPVlejTiCrx508HQ+UzLbRV6kMxtk5ucL6+U oz6lBG/tE4jRs3l/kJZKX0+q6q9IoVCrzLtdWya+CZiCXh76Dvd6hbA8j8K3OUsKeq0q WImV+gY+vCQIEUbUiBR8yCpUugYTT6+N3j5sAmP/DyOj80nQ7MtnIE3j6R0Oe/aEzhMm extA== 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=tm8akv4vhXNCrdN2JJt4BOxijsY5W1tipYHEJTdP6UNgeGgv66BpuMAWNYDIOVYswR QykrUKd9dkeIXcsorc3nHcbYXZ9yZmBrUW5gmiAGrL0eFkKd4mvHQNmuw8HCVpziEbsM W+Ca6mzSVJkfmb+iS98Ddyn7rdb3zy7wN11puyJMP+tNHq95Tp6kRlhu5/ATzBIM6797 h73TypRqO9iMO9IGu/HfVi53kJ6N9RFOXcvcKNoH6W3XUD7VSmY+vvcTK7MbHwF67T+R t5qNUC1EcLPjPKxBFAjLHrckiwNKE+ezCMMlUoducrEGa2wNYLGrtjNDxbbM0EpY2erc af8g== X-Gm-Message-State: AOAM530E/axXRcZK6EIfXFKenxNpGoXigfEgieCPUN0qP56zGSgIQogw zKirX0NkUdVisQBdWGdw3CeXJuRiVj6Vug== X-Received: by 2002:a05:622a:1a1e:: with SMTP id f30mr3063718qtb.292.1635948536148; Wed, 03 Nov 2021 07:08:56 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 11/23] linux-user/microblaze: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:35 -0400 Message-Id: <20211103140847.454070-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::82a; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x82a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516749 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp705964iml; Wed, 3 Nov 2021 07:19:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxg3pLxYL3uDQsBvz6LTtYBwxv0fik0ic4L/bIKGjqMszcUZFhOhhyUqOixw05RQcjrAsUD X-Received: by 2002:a05:6830:2647:: with SMTP id f7mr14698410otu.385.1635949145757; Wed, 03 Nov 2021 07:19:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949145; cv=none; d=google.com; s=arc-20160816; b=PY8hVuUM0dgNP3YLckaJnuupbWnecQG6TX4K9lM5dzYPPhsENmT6wldB69JwpjW9hp nsh3sd/8oLPVoPJMq+hfX698o3Na+ISbsnG7O8etIVF2ySRK2VKvehFjvc/iKQ4kSLzq Kg42ijRZSz6VuByxt+cIw2l7fX8Yc1rVliD6g7dO0ZPf9XIETo6kpQVgvGPWeenlcMVm MyW9kNV2GQrLNDLfLgjMIqr00x4XAz25+x8czB+LH3A2Mya3lxL4VN0S2drASaEXKU9J +P3h/+5Qv6dtavlnlrKcrFZ2XkwEZl7W4K1GsyDmDEjsLXXKJDA/k+5XhPKN0bS77DB+ Z+jQ== 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=N+VG63tzTCZ3c7fuoYfnNGIh292M1VDS/r0UAMWv+DkmIuA8OokKZtwsHaSpbSMmBS D5+1S1z+LI8xW92EAc28MOGIjCdTcndd+/QdLBwqSh9pOQ6LB6vRHGhGRZ9lCSPRDa4k 7mGign20+y5AnmRU7iWxGKggIi2PMuVxrW11ORobiqQl7Qwn16RmulGYGJvkd0szWB4c YtiI6f/rWqf2fN83RTWtKMfkxLsnc6OiBUjvG1TS98pCg1B/lB17D0l3IkRolKWZiEMZ 6QjTfxePYW906Vx0lZwRmvGpv+3woITMbLFLFEmT27IG123cdp9kj/ub6URQVnQm0V7x KblQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ezRZnNXG; 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 w184si2839548oig.65.2021.11.03.07.19.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:19:05 -0700 (PDT) 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=ezRZnNXG; 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]:59448 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH6X-0002Rs-3C for patch@linaro.org; Wed, 03 Nov 2021 10:19:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwm-0002Mx-BW for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:00 -0400 Received: from mail-qt1-x835.google.com ([2607:f8b0:4864:20::835]:46943) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwk-000552-5Q for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:00 -0400 Received: by mail-qt1-x835.google.com with SMTP id s1so884639qta.13 for ; Wed, 03 Nov 2021 07:08:57 -0700 (PDT) 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=ezRZnNXGQD9chZo/0QDTYGe+ZSgaxdt5jwZ2b3uwqbnPlSLSxm7gWchIGieVhjXiud BHqFjEMpGXP8Ws16zss3KxESk3agJnmZCKE6uGniItxzxoLcF3gw0sP9kUNW7bRAe+CI a8MLsQWpgMUXHENUisn9Zceo/ua4NX1lVVHXcIobC5JkM4Z8iOxdGXnwNWr9J/fDA6sZ nDgLS5FE5Z6k7JzXmD6xVXvZ5SysH2sqItK0U1pdrUdDpfqwYUtV74hTFSZdWKS9UoJ5 FNtBl9li8YXgADA5hay1Etki51H3iogZEcjvwJntv8UAHqTjUcTTzncb/zjHzeodoeLR SV2Q== 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=SEAmPkNelRm3qFU/QlSwCWhpFv/nYmXhlgESlNuKnelt6pm0zRQFgL/Q0bOWb6PVai zhkOZJo6tkbdBWhWrAu+CtZ5hNKoSqH/TtzyBhyD6X2Ri67K4K1XkrLDTepFKqvqg/Ma Sd1xrYTS/Ul57sBOvV0DSkwz8jMJIi0YuxKs+uXI24JFqm8pbO6P0Mdt9J2WVqM+h7H7 0IVj/GiGeKyMhBp7o0EFoGRP433pCHuvO/coJxoD3TdRIdAAkq9kZ3nVWHdi/1G9i4fu B2gekUGew8ybmlCRLrfRihFVN7Zeni/DVw6C02KiqXrGhl/pZWRyNW0gQnsiRP7F0cCw b5nA== X-Gm-Message-State: AOAM533ni2E2Zs0ooJIfdaIRN+ltHeN1nxBaMTRIHHJYCjHyVR7kIvs7 I0V/HsdLfFfuuC4mEr8kgZ0OUgfriVr28g== X-Received: by 2002:ac8:203:: with SMTP id k3mr46408053qtg.384.1635948537137; Wed, 03 Nov 2021 07:08:57 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 12/23] linux-user/microblaze: Fix SIGFPE si_codes Date: Wed, 3 Nov 2021 10:08:36 -0400 Message-Id: <20211103140847.454070-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::835; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x835.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516741 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp696068iml; Wed, 3 Nov 2021 07:10:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzerUOCZeG64K4D9fK42E9HqLuTj0foSmL0JSgRr54k4cauzXyf600Sq9y+FUadV+RG9JBw X-Received: by 2002:a4a:ea54:: with SMTP id j20mr30023340ooe.22.1635948611393; Wed, 03 Nov 2021 07:10:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635948611; cv=none; d=google.com; s=arc-20160816; b=D3y6cdoAx53A/8n9IyBZ6Sjt5mWHFFBovIwOs1m1SD1pqoiFczTa48iva8Pai9VqK+ THtmSGOFN0prZlhb33FVUV2Y0ANw3yKjkOJjnH8FimlLv5QHGdhBvQj//R6Bxy29Ugku lt4KAvlPCxcfRngGtyWlHiAHEY+3dhkMGx4B97HeSA4Mnl+iXG93le7vcae0y4MdHF5C fSu61R9JwE2kpNL6GRzhxxflxmj4ZYMIDYNaY/RLHePR34Yl0jh6QVLo5T37+CL+2/EW e+zB+RbrxJjAIdLOX3/Bev2N8JV1BwGALl53sAw6/1EwPeiqZBK48bh9ipF+QF8WBnLg tj3Q== 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=E6Qw3MCReSFefarGFFk5M3LvyuBvQ2ekQK7AhQJMEQmPxKX9X18Wdgpndi72Ezn7mp JvLfpMlfiOejckgG2J3kRkEvrVMWM93vPiPH7B78YwXUYtLiCAE1fpLa4Dt1UmRNlYeD emye5nisaFFMZZ+Rfj8WL3a6vdFjD9dKyxE/V3zAFDMGlu+UCRGNKp2Sn8pN80eQCl/J TS2EUW997OmFQZlfJxkLdBnUUJGsj9+m+dTXk8p2EWlni9C29N66XykdQP+xgYHLu4FZ 7g/6ybbyscKsskTaeedH9CI4CDSWorEIo4+A8S4CG073R+uTuqAHmdZnX6gYa2ouRTiY WbTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=AdQIIOTg; 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 q2si4206927otg.148.2021.11.03.07.10.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:10:11 -0700 (PDT) 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=AdQIIOTg; 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]:34920 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miGxu-0002bw-NP for patch@linaro.org; Wed, 03 Nov 2021 10:10:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwn-0002SD-R5 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:01 -0400 Received: from mail-qv1-xf2b.google.com ([2607:f8b0:4864:20::f2b]:40614) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwk-00055I-LC for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:01 -0400 Received: by mail-qv1-xf2b.google.com with SMTP id b11so3033129qvm.7 for ; Wed, 03 Nov 2021 07:08:58 -0700 (PDT) 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=AdQIIOTgJ0iiEYecUpn/1TCMf6xHUtKaqEKumxWNbrsOJwQOlq45zhLaf4mLUNaP98 3+Frh4j2DfuYuWj7A75g8G9s/Dd+2kfIIabhgKO7khIk7/gyJRqz6BFpUIUcS6aDJpdM UYv6AR6RbOW0meKg6qcA+BpSLEdLUPKO214PGgZ3T+ga8xs451Z6nPSrYiSCLaVl95Oq HRV0jHf/igyCxTIpbiHg1XuEPc4uN9w10ZTFA4SA20ZxzLfJx7r0gfXnF5G3RmuF1rL4 QR9/O3+cJrATEBaq4drfrljfAiNIj5NQOEh8xZHYVuvPMW13ZMbasjsMgSIdjBrIgHJh Qokg== 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=NHbe7Vu+f0/ux2+hRBvf3n/6FAglqy5l3MERoWt8FOtEBu1SciZlynO1uZo2ISOPjO RtR4FlIr3Dk1m9ORV8tCq5q6/FbVFnjjwKn/sg3TnfFrp10lX56AESWctQOMV2cUKAV4 w1aGP6/Fp3nxpVQRnA+olPyCkfglQh6/8FUGUALdU54HO0DI5m5UDivRek7HvSTljs8M oRPDd3mNEDx3iitieCwsgnQUnuKpmFprtjcdPSH69GdRWKTaE13eOK6h0dEv4Cy22rlH uDAGwO/yAR7JQooi2/Ti0XNFOxl62qvCbq8eeY8HFN8Y3Klwkfxqip7030afQtuoBf8u zFxA== X-Gm-Message-State: AOAM532ZHSeW662S5qdXUPb8qzOP63cHZ5aoU8wNHvArUGoH7jIMi4VO 3AOHDndIQHDGpMAYQDtn3F4fflpjDbxUgw== X-Received: by 2002:ad4:5f88:: with SMTP id jp8mr39896296qvb.57.1635948537836; Wed, 03 Nov 2021 07:08:57 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 13/23] linux-user/mips: Improve do_break Date: Wed, 3 Nov 2021 10:08:37 -0400 Message-Id: <20211103140847.454070-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::f2b; envelope-from=richard.henderson@linaro.org; helo=mail-qv1-xf2b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, laurent@vivier.eu, =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-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(-) -- 2.25.1 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 Wed Nov 3 14:08:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516757 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp713990iml; Wed, 3 Nov 2021 07:26:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/Hz3lxZ6tNcTHi+kGe9/aWL8T/rQ2fQ6iv7/v3gPxuVphIqobEj8snnZBC3Te1F1h9vFp X-Received: by 2002:a05:6830:3484:: with SMTP id c4mr16221894otu.254.1635949611809; Wed, 03 Nov 2021 07:26:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949611; cv=none; d=google.com; s=arc-20160816; b=zPsvPJ6DT1FN27z4eeNcDQrwDNfwhJQlJzHY0Q4KPM+CE0mm4Z5yjJc6Q+FsUDuV8T FZFSzhLay9LiQR19sBkhcjv1wuye1r0R8TCULuSrsFaqmHgpWXmq8rrd7wsh4Sf+Ldn8 eCUpcsQQ0AR+FmwLiNp0ArtbGJsZ/LHNz/tPC8syCX6013M8MfhJ6kWDWRrRg4azsPA7 HITrfom5CztlyWVniQRd2OzaFpDw9hIdz5fB75m5SpWb/YoyGnYKC7A2nx/fflqwizOy ZDZZml3y7jLIje4qh0cuiGVTEh758e9CB6oWe39cJhlqHXOpJTOw5tYsSlDtQEJpMjyR bI6Q== 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=ALMtkBai+1X/s57OC3qXwfy+HnJjBN6LoecXXtjgKsVKXI8xc2XUBy9eRORrbLpC3Y 15CQg3+/6vJupD24Pq0I8u4hznEVeayZ2X7kJhvY1M/5JwomWC9Qru6VZq5h422D1wg6 tmT21BKh+Wii46lDnct5KPzW2TGj8VGrzuKiBdPdUjFfiY/a6Cr7Eg7HeHnH8xfhKZ56 rLUdroViEnUJGJYC9kiMfRng8OuJFE2ZVLgLWqcg05pbl5tGbpIY3vJCVQaYB1dtX3li imdzmPxD+9HYLFxcOyHCzGBU8gl4ZuJQcOzHL7aQDGrGRTbCMWsOP1R3cNA7qMFDVmYO MeBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=OxeTtimA; 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 bk40si4428047oib.163.2021.11.03.07.26.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:26:51 -0700 (PDT) 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=OxeTtimA; 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]:51250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHE3-00080g-7I for patch@linaro.org; Wed, 03 Nov 2021 10:26:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47794) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwn-0002Qk-Cq for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:01 -0400 Received: from mail-qt1-x830.google.com ([2607:f8b0:4864:20::830]:44027) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwl-00055T-9q for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:01 -0400 Received: by mail-qt1-x830.google.com with SMTP id 8so903323qty.10 for ; Wed, 03 Nov 2021 07:08:58 -0700 (PDT) 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=OxeTtimAvRbEY5x5nVTZeQcshfaXUGeMM1uV7e3uohIn9pMTXYFD9I5J173kx2cKak X+jnOfGm0YPuZ0DNmFBMOJvMkrPVihK0BTemnihktfOxuJ5LbuF1j4359zxyowsSHS9E 60aUS4ZH2Gq9KKWPS4AI7a06VYAsXnV2FU3Iz3ibLe4alGk3T7O3PvKYzmOq3R7eLxzT MrH6Kis7dEYjb6DoBa3pwMT3JSDWO/uBflYxn7aZ1K6qBDQljCHdb+IuE+OGurzOoV1K yospk1O1zK6ErY2Lxju+WRQ1RvL9svV93jJghwYAjLW45j3uQ7uCpn6PnvmHOFJfUja0 mZfw== 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=ZJJ8RqslKRQQSbQsXJQ0oSs0lOZvQY8GNa7ZJMWGQmIIwxGgi6RuJQe2TwghDhYkC3 hboDIY4CDqEhket/ashdqJBFdTFLBrs/fkAVSqmnHf+3O5tBR7fxXWDepGrXaFqf02G6 Iu8Q5pryDqmK7OHhYU8Rro6CdR/UhPj/BnxrEKOPUX81omXM+mcVpoZjXpllYFNHKCQh QoB3zAr3UpYLl7HJ1BtDp1T2GbyzdccTgfCTSAcufYAGsADttkAK1uSGQTKhPgA2uu4d xf478N+VmQQsAAwiaNPRXPyVGr8oXvMlfLlxeOoiW8g/6uRjgKwSamAR5NdSR965vGwZ C7vg== X-Gm-Message-State: AOAM531qGbCjl0KDRBwrU4b5vrfhS0B1DVMdr94ZYSQeZJkfSpTuxl1i MH0qTWg/MiNFNewPtcp7nh8JkQZ8zXvb0A== X-Received: by 2002:a05:622a:1010:: with SMTP id d16mr47949927qte.70.1635948538425; Wed, 03 Nov 2021 07:08:58 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 14/23] linux-user/mips: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:38 -0400 Message-Id: <20211103140847.454070-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::830; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x830.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516752 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp709448iml; Wed, 3 Nov 2021 07:22:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzP8ExmsOLm5SJxLTVItQsZv3Yp+XY26VANwvU/cHnIL38HpMvzo4UwE498t6TfFYvmWaqi X-Received: by 2002:a4a:ea54:: with SMTP id j20mr30077000ooe.22.1635949345985; Wed, 03 Nov 2021 07:22:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949345; cv=none; d=google.com; s=arc-20160816; b=Ngmob5RcbLDCn4xW4t/CONS+Inur4Y3ki+dDurGjz0AAlSBJvK6Ssj3tZE0gwfKKhE 1FglxQ2uPCmvmXzSgHp6ccDqGc/kCbqAv5YPVJ3NraFWcCG9Y0knUm9gmAJR4pPU4bY6 aiKc5aU+TXh5P6cVoxg6jOTBl7g2iA/jpAhbl/IKIewegK5wu91P3ik+CUAd5iSuVNu/ vt49qbF+JuaTGFwN/fjtcG+jMoaI7Zax7HJw3UwYi/4RmHUw807RePiLaru1hEFrEPea HH9nWfWDwrNKLoA3YonsJnG0fu6IDYy0bjJJCEk61NsUM4SR2DM1o9c+dmBSzF6HNMM8 aWXQ== 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=ZFpeoDrdt+3ART61xwj3YrRUH5IdU+zLoLX56R9IMco=; b=xnhiJKTWYmEVNkx0Ss4o7FeOimAfK1+aKJqi7JthGvFH9iP3r1GJs2qiMOIC8uNxSJ MJMoZ7OFXpogXdL7S0BwhlxoV0ZT4L1OsPfEywcZi0a5+EbLn/DkK3jR4Df8xxA4Ym2M tUDmj9oRjuIaiWAPuJCHN34BnUZwH3xkn/si+2bKOT+wunXcDDoMhJ2p/Ht3A8YhdYzL Ai+WzrQtAZ0fw/QN0U6AvoEKqGXXjiH42yoL92zD9miUd7hZqHE2K/TXtnerUdT+0JSo NZX31gLb7yJhMzL6HYu0zqcc1HY8dwKiMWw9wCg0AOB57b+rb3huBiADESvK1cYmyHYw xkFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=usih3XKJ; 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 m19si3585257otn.150.2021.11.03.07.22.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:22:25 -0700 (PDT) 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=usih3XKJ; 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]:38894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH9l-0007qa-Al for patch@linaro.org; Wed, 03 Nov 2021 10:22:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwo-0002UA-D7 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:02 -0400 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]:39561) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwl-00055k-Pz for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:02 -0400 Received: by mail-qt1-x829.google.com with SMTP id x10so487037qta.6 for ; Wed, 03 Nov 2021 07:08:59 -0700 (PDT) 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=ZFpeoDrdt+3ART61xwj3YrRUH5IdU+zLoLX56R9IMco=; b=usih3XKJ52KaA+UiJKhSLrUcjLU0fpjF8zUif88z0LGBniOcCa+Ua1ZC7hJsvDlyGY Udwf88vFxaUeHJbGEWsX0u0phavUmZO6kEb04sla+vl8DVtOJFPKq94yE9GiXo/vvPSK 5+ycBa1qbKEEE4Tju0mJdxXFHgx2qf3SAwMzeVzPkASGQD8T2HQ7zoCzr/3vqyhNrwP2 D+axS12rvFXSl3Q65eChATtA1jmk9xJjUD2lLOChJ8nJjdyeqMyDWQlCAGSh4JjMSd/y ghzyl9gye+Ly9NRSrpnQBlh4mwJ+YxHKy7Jzv6SG9qGdUYhVYx5WspLBdYQQ9T2p8ie4 xmlg== 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=ZFpeoDrdt+3ART61xwj3YrRUH5IdU+zLoLX56R9IMco=; b=vnqYPJtB6PfSb8mjvISQX+5/QDAUtfsKYsEModZ1UGHb0NCCWlMUIpNdhPsgMYsSuz aAT4t2R2tGxEQm74VgMQJRnamw/ut4RfQ72cC7L6ZgajlVw1surt/rjCR42jvJ6tdzci JhR8rnK2PRDZH3Pt8VnbYoN7hdeHGWVtu9vYOybvxAoq5YR5g7moJ1clAVly67c3EgUv 4nlrGyq8qudBZaZ9+462TQ7HOdNuz5GMUATNEPHlQa2o4RRg6c6meTfGkD3Bz74QOEi6 0BY/kdB8cpkpcXDFvTKSgyEtJu+PCnYBvO2897WBEAmQfLndwhcYIGuF3JdaffkbpX51 cv4g== X-Gm-Message-State: AOAM531Qnv0yTWoFOTaVut7ZzYMjOz2X2eIuJMFDMAyTHU7+1MIXHDQt kjZvuHqg/nP/MZZrHnC9R9aVQKzJrI/QVw== X-Received: by 2002:a05:622a:1208:: with SMTP id y8mr36762922qtx.214.1635948539006; Wed, 03 Nov 2021 07:08:59 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 15/23] target/mips: Extract break code into env->error_code Date: Wed, 3 Nov 2021 10:08:39 -0400 Message-Id: <20211103140847.454070-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::829; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x829.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, laurent@vivier.eu 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. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- 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(-) -- 2.25.1 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 Wed Nov 3 14:08:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516750 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp706015iml; Wed, 3 Nov 2021 07:19:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFEypudY1gX+E59z3FiIFAMxKAQ8OD2q97v4AwJMGmIlJhxxapSv7v40INZs/zG2cyeayv X-Received: by 2002:aca:df04:: with SMTP id w4mr5348179oig.95.1635949147763; Wed, 03 Nov 2021 07:19:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949147; cv=none; d=google.com; s=arc-20160816; b=y04tjNxLwZyKmk1hHKL55WSNs9Nd73fi8R47luG5/R9GubnsXVVCveXx329lEW3c64 /XZ9FNYs21jIhWkhqdtiVMCpR61I94zJKTMzfDuAbPR0qMbwCXfCerGRKcQgJ3h8+6IP JTlApvEx/SEsS9idOjy2JzS91omvSSccb8tP+V+IIE2PyowiA4oMdNr4KSOCzg5GLwNZ 5Kub3eHOdst9C6vaATzaB7zbWKZsvX6FUF8CQ+Ss3ehngVSGIgH2Varx6rLz8yFMx3EC KzjccjK29mjvWTZ3bsfLVYiMQz5tNLClZAij1SVEjG5xbbmmjr5K+hqtxVdnEKo2Trdx d7lw== 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=QZLeLhINJ1okRa8nBmn25FRlqUkKrhOM2xV7yiUsz0k=; b=kG3UE4WOl1/Uhg0xANpUP687eN78tHCRFRjwBRd2fHX2eNg+48j9sA+yZwsZej59Ls yNj38xtQaitQDsyezN/r4pgqaWF/uFzhFZvT0TWnNcaKxF028w+KiDwlp+ccj5NCk/J0 PcmcTP2oJRP4SA+8880tv0hwoznAHMaNQ1U/oTDS61PhuEgPAK+Zbs50p7Bf4cSQQMTA vtaDwdKKU9YfB3BxQslqCZ3FCYHiauYZW893D96YnKO5uJ7jvq4cbHKS0eff0tbmKKed KfmqFzCb7ugPZkjlgc4+msAI/LzaUv6DVrbWTbYGn0KF43GR7/6iohJV81DwKCNMZKse n0ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=wA+tJ4vv; 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 j12si3411095otu.343.2021.11.03.07.19.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:19:07 -0700 (PDT) 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=wA+tJ4vv; 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]:59664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH6Z-0002aX-3v for patch@linaro.org; Wed, 03 Nov 2021 10:19:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47856) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwp-0002XG-Bg for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:03 -0400 Received: from mail-qv1-xf36.google.com ([2607:f8b0:4864:20::f36]:36369) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwm-00055w-Kv for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:03 -0400 Received: by mail-qv1-xf36.google.com with SMTP id d6so3056272qvb.3 for ; Wed, 03 Nov 2021 07:09:00 -0700 (PDT) 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=QZLeLhINJ1okRa8nBmn25FRlqUkKrhOM2xV7yiUsz0k=; b=wA+tJ4vvv1zwnZPhT06UoVEJDA3sPeEogV3q+bxr4iySR18D6t87tK9pUI22oIV5l5 mPnNzTE01fW6qCBDfCl4EDhCt0ZYEkMKTm2+dMHguI5DmxRt+FL9myhDYr0Pl2EL7Sgv yc0kKf8mUfB1CXoHCwd+FUASB0f3QHriZdZGd3OBtsTsH/FJz7PoiI5yWX9hrJoKjboA /1zfw+eJcDP5++pKaGIxT7PIrivDoNsGS8radeYJ5M7I95nbHpG+svY5py/ZUhP26geS Omcwx3XNG/XSH22ee5oH1CsS2M5qXHPCm/J7Z9QoLlwQLFuDNKEd2vQle1YApHNb4GRG Y3fA== 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=QZLeLhINJ1okRa8nBmn25FRlqUkKrhOM2xV7yiUsz0k=; b=v/DU6aoXtyPxQboJdLMY8Uhz4l7aDJMIiRVRjN+YLqLxOIzUDdOSRoLJvTLZ7JxYJN xw1MIlW9EUOlCJAZQhaiL4lGEAvHduLxFeB8xHArKx1CW2KUwjy8CMqymtANngbXbIID 21SQUNGlCZ85drQvvyfxxVL2rhVYKaBHCUFKXJyhxKAg97VtEjtwMnuK8YvS+5F+aOjE eIvsFvY1t7qW6MPvqfUZXXpjMF7HQfYhgy59aRTrHTmllYa0DzwBpBNNfFT2vssLtxVI gvwiyJ81eCZhucp8feT0WJw6+/m4VfsL/ETpBrQIetj9NrP81r3IDtXEO9u4p/fBx/P9 Ka+A== X-Gm-Message-State: AOAM531shSJxBDjxQXBQcn9EF4Fhhc2EZFhsqWN5nBBqizHRaJZhmYEo 921gBevcGzWL1laBFKtGyK4KZKpclwFSSA== X-Received: by 2002:a05:6214:1c41:: with SMTP id if1mr6927502qvb.0.1635948539737; Wed, 03 Nov 2021 07:08:59 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:08:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 16/23] target/mips: Extract trap code into env->error_code Date: Wed, 3 Nov 2021 10:08:40 -0400 Message-Id: <20211103140847.454070-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::f36; envelope-from=richard.henderson@linaro.org; helo=mail-qv1-xf36.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Simplify cpu_loop by doing all of the decode in translate. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- 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(-) -- 2.25.1 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 Wed Nov 3 14:08:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516755 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp711080iml; Wed, 3 Nov 2021 07:24:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqxFnZghNDLgR/HuBJOhG6ywjUcT9Vir5Hwlwz6xZjA6HevAgxQfzKMOO9+n3/Qn0X7y86 X-Received: by 2002:a05:6808:1996:: with SMTP id bj22mr10791947oib.69.1635949442418; Wed, 03 Nov 2021 07:24:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949442; cv=none; d=google.com; s=arc-20160816; b=cFgcjj5l9FaREbhDuLwuU/Lt/gxNwA06HuNcB3MjBYuIaEEvxBAeO70dL6DK5Cdu3W XRk1Zbs4dOpM+KeAq4XUV/Pk8hTgS/BHDd0f5rDFnrn02GQcEhzOaAa4ytGo+uAnLPsJ vscfo0uGEED3qEKlvqJXAUe3STObRLL0+H2heh75yTWDKeANdl/5cFQwt+OjpjPaQcwe MxDShiH1XaWpSbdByBA918LeM4YaRFOpPWoi7PtrCl8K9APsJYZ/w31IzkOwNtiUvPsi fA5NESmOkQkS8NjqypjF/rrkN5YgRxWN1+53aTzKrxHyxrqkgZWYMeZbV/jgXGjvmXF9 qV+w== 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=g1qaOZHLXK14ZfaZ8YTeXXSLRoUxo2kF1DzkBRJBkhg=; b=xarm2Erg8e9iLjIznoEea/0jgUvrs/o3HhkKqxdDeTv+GhmfytcqmqvbK5q8lMMZAg Ix/RRLDpSwJwkMQR1Ctdwjsbxcky5f9uDHEZdSfsAYALctdIj23Q5zfPAmwm7IkKCYr5 varUbT6ZRBNsq6kE8w4RU1h/+XVLQZWV+zkz70nN0+lFIEnTI2kzFfs9FpGjjqhjZ5WQ DbBxYNR4qVHOBEUki2H3G/EjDntGD63VOpjAdjzfzNcTUMN20PVGv44iUJqt9psvQGCZ Z9mmIxnc1QPAztVIOBKhijxo6+F+5KLxVNVyTNO37pVlaAekIi/g8gucYWiNxKzLaUzd s2Mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=FVC018KH; 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 g26si3542189otn.321.2021.11.03.07.24.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:24:02 -0700 (PDT) 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=FVC018KH; 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]:45154 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHBJ-0003i2-O8 for patch@linaro.org; Wed, 03 Nov 2021 10:24:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47862) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwp-0002Xk-Fq for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:03 -0400 Received: from mail-qt1-x834.google.com ([2607:f8b0:4864:20::834]:45598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwn-00056u-Cn for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:03 -0400 Received: by mail-qt1-x834.google.com with SMTP id g13so488577qtk.12 for ; Wed, 03 Nov 2021 07:09:00 -0700 (PDT) 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=g1qaOZHLXK14ZfaZ8YTeXXSLRoUxo2kF1DzkBRJBkhg=; b=FVC018KH8EOYDysCdqIUaDCV/C0bjH4xCKo5gFEoPFqxRJYPlYGEygPNkDbmqair26 9Umj0mrbV77J3mFR4R+TdfNJVYUX5vzFLLqNieazieOB2w6n6dBEXoSNvinn0Sb34FIm m+BYYqaFwEAMyKTAgVtZs7FbsNcNbWotcu13wVct6TVMfVNYOK4pvrcKz0rwvewkHTyG 39ZLMIxECVvB+3pp9Ce8UeBw7N4/gnQDdF8haljtUhVLTZzKTWJnIld8Da+HwITBAsg0 fTobW2tfWJWyz8nqHelpH6N7mTcgVTvVPtfy9xObMer56LybBki8eKjbO9f1HZUmVa07 HLOw== 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=g1qaOZHLXK14ZfaZ8YTeXXSLRoUxo2kF1DzkBRJBkhg=; b=smg+sQLK++9PZ1FBcj1wRBpTJkXyak+b1mEFgZZwfgzgsGNcdvm60L0fHeeekTSX/z 8nvlveda+EfSF9m6jQZEW8iK2dWiuFddGKWsxjUSNMu03fGpes+24pnW6EHYFGr+k28z q4zftUHovemy+u81c/UOWy9NVNseN7A/djM8lJcJo4sLQuCLz0O824S+AxTqCzvB8yfI Sn/rlvjXiEIVLuOk4pjSqtv1ziNJ7aFvu1BIu10UAobVf/uvQ0GAKFX+r4tjntjL76+s OA2qtUx/HyP4XOrhGJBDYgPEa0bvbwswvKHvpWtpLXuRcyr2mMq5Ats9KjzZkcudYtcS V4pw== X-Gm-Message-State: AOAM530CjrRBdrTp+h78tc6XDP1k1JuzNqWTCotCStBn0yHzM3ZcPQJs BwQDCmPvTbHo+MygHVr9v8FEGYMUcDUabg== X-Received: by 2002:ac8:4e94:: with SMTP id 20mr30320059qtp.150.1635948540411; Wed, 03 Nov 2021 07:09:00 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.08.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 17/23] linux-user/openrisc: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:41 -0400 Message-Id: <20211103140847.454070-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::834; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x834.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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. Signed-off-by: Richard Henderson Reviewed-by: Stafford Horne --- linux-user/openrisc/cpu_loop.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) -- 2.25.1 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 Wed Nov 3 14:08:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516758 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp716208iml; Wed, 3 Nov 2021 07:28:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTZDgShFoUyqfAu1u8aizYu0L6jxJTTkI+nmcpbFAWA1a+luAJLcweheUq7XF3oU8R1aPu X-Received: by 2002:a05:6808:1408:: with SMTP id w8mr10908214oiv.128.1635949731217; Wed, 03 Nov 2021 07:28:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949731; cv=none; d=google.com; s=arc-20160816; b=R7jgw7X3jcXOPvRGTNdO0fa/9vXQzRuJzZp7vnKGWj+K6PCwE7Vuy8b/U4AMdw5rmN CTDwX/0vOVZiRolmQ7UXDHl6Xljp72uVl2JifJNnh+lQB9N/OZtiAbsMvQMzRHS9R4R2 P4FHNPmAPNClC7Wrunlegth0CtxMvLrO8RyaNJb6xM1OFh+yzgzXLTfdNtyjt9zPQulA gqkyRXcz8VPh5VblJ1NVctB64bOu3l4o74MP60PD24UuerjFUcbZ4l8XmP14gBISAWwk qmXhmfDXWJO58NZe+XmfIhXtz6g3Ly6J86iEpzaRbKnLaf9xbCFt81+1f1IcHtFyWwcC BgGA== 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=zrEfwiN6s/E7fj29RUUE/BJnu7kAR+jnddV8YggWCRV02WuytE9C8nicS9exasMidP dZAdZ+SBq0tBODCGvspljLbvNn3N/SPeAYv6N5zh8VfIA5G7Hm/twiiRO8CLBAnPdoDB 4/n6wZ/3eO4iAFVIZLj7AyGAGOCJU2u/DCphr3quF4f0+d8AR3IXaiSJRS6Pd1fLMR4D URX3tUka1D+FDWb71CP7Xt+w+vVq2qGcJkrzDufvZwmd+fDqVdADLhjx5gXs2Hd3lYMg +FQ1vq4fBH9f15X+jQO4kEx590T409KPOqvo3cuv+ZlULBc/4DCpoexNFLIrgmtvkI3E 9GTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=kcXAnroo; 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 l13si3450340otd.9.2021.11.03.07.28.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:28:50 -0700 (PDT) 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=kcXAnroo; 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]:54492 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHFx-0001sC-I5 for patch@linaro.org; Wed, 03 Nov 2021 10:28:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwq-0002bg-FE for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:04 -0400 Received: from mail-qt1-x835.google.com ([2607:f8b0:4864:20::835]:34549) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwo-0005AY-0R for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:04 -0400 Received: by mail-qt1-x835.google.com with SMTP id u7so945193qtc.1 for ; Wed, 03 Nov 2021 07:09:01 -0700 (PDT) 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=kcXAnrooEQjyqfcr9EKSHoTtAz8c09Jzb8Q+/E+zmwSa62s0JxLQGHgIssaHZSvQOq q0uWITiRaqtFSqF+VwodKm4uw19oQPFSGVfMe2qpbGo7CQndEkwqgSJlSqwo9mTxJyd1 iQBNIrnOX9bQt4NNtLRc8dI4gK5n8CFinLj0AHT2r3z015AXmEMNcLadybxV01E9sYEE 6R3C6unRhUR5dmJsQs0YOiebtW0va/kSs+M4/beLUD4VMnKz+CiC+cWgPOXYR4fi2GWY dY9Ikx62lk/x/wAB+zCaPfNJTqbfoJAdLgz5QeyxBieXtzLMWz742WF/VnomNP8AxVvZ HXRA== 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=r5RY3iJw9FK0DC1vJLYsnOtkJAhrG4NBlk644fGKVHZepEXmp4DvE44yDseeM60vcR FR4wdHNxasapVgnK1nNIirzAT9CfvRJgIXBn1/sL/+ZLmB4w+YLG9bqB2EgDF/8ZPaze 3RY7B4WMM5dKEVrf4/OQIrNIcZxJwz2dLBNeaID6eyNG21iYqhMfUQ9SEYs9X/gACzmw y1ZlGnYDIewMnWYzYxPEDutnR3hJ0nMt89emv2gwkZ1+VLHjKcfFs4irogFXZc+QiWtK iwccYPD/xjopOHkRjEZmf6Ph1RLBxUaWnl2u5B5Rt+SUHJYQiwQhEljceu64Lh8wMF8p tc5w== X-Gm-Message-State: AOAM533IhYbHqbC545pA8VqhvjnaEUEKt03gtdgqh2ZSgW/McpBexOgg tV0yiLo5gtnH/LbgnEMvuJHGQe3u4S9CXw== X-Received: by 2002:a05:622a:1450:: with SMTP id v16mr35957117qtx.25.1635948541007; Wed, 03 Nov 2021 07:09:01 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 18/23] linux-user/ppc: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:42 -0400 Message-Id: <20211103140847.454070-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::835; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x835.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516760 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp720622iml; Wed, 3 Nov 2021 07:32:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwI5JpoE3oZW0H2ruUd2uYm85ozTnaK7wcxhWQGC0tfTg7L4Pe7+PCUA/QmeOzJZubjOQhn X-Received: by 2002:a05:6830:2aa7:: with SMTP id s39mr8965498otu.67.1635949953148; Wed, 03 Nov 2021 07:32:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949953; cv=none; d=google.com; s=arc-20160816; b=LPVbbfB2wVuINdmzVQ7IKjdMCdUvPGSlEpFjwcvg0mcoDLVt6dwcDcC284b8xnnsQ/ kWbyaiL1XYH0FKm9wkdOEafMPCALwHczBKCFpak8u0NwVHz7DXz4EVgdRClys1iPbvyJ ZhAdigazw/9tMTJnEHW3fS07JVl+vvsXxA4ew2vLKhz+6j+lQheoBlpm6mR4hhKXMYYM j9BiO5IzQ4ULwZSjJ6QgbjWqQruSvmz7tgTF0jt1wl9uoEPUC4mjqmX2sZIWLltB4uRk PO3IoLooZOjnABV00uuhu3tjbLYKMtkaJAvs16EBBFEsvYNKMHYwcTEiEVjf/Ssk5Tbb jjrw== 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=U/fTzLTJz0t66/Zcud8MVo4qI5S2bhm4JFZVO+GOVTnuOc3e3bLsdh3gD1BT6z/7rI ytlORY48DVzl/BI74SbW7M0MNAFqnJWzdvudd+3ljxeY8Q7zQclYsJZx5j5Wdl7/ESwv YztzNn/P+ULkBgV8+mC+gsnFX3S34WPYU2ze6ae980mmaOiErGCnjjn92VNPQhWmoRx5 OcVzvKeULlj5Ub5ClqqYfosPA6XshR63X0O36gCFjivm+iwYa5MpCd4MKHGbRTnkRRdZ FtVvS4+V8o5v5r1Wt6vygwsOK5SX6o24E84iuYfUxvUmeL9oLkXZkUdErJ0y11Zk2+y3 BVig== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=mzwo7YNn; 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 bi3si4704608oib.19.2021.11.03.07.32.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:32:33 -0700 (PDT) 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=mzwo7YNn; 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]:35010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHJY-00081W-Ia for patch@linaro.org; Wed, 03 Nov 2021 10:32:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47894) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwr-0002ck-3Y for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:05 -0400 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]:42540) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwo-0005B7-DZ for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:04 -0400 Received: by mail-qk1-x72e.google.com with SMTP id bm28so2356857qkb.9 for ; Wed, 03 Nov 2021 07:09:02 -0700 (PDT) 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=mzwo7YNn3gkJbpoQ+rAYrt+gfyXGMQzfTw9+y9zCgrW+9g6hht6Z6Js5ZIEI8QZTQZ mjeBysO+Xa+wTk1zermTIz7axCbyHyFB4mI6yrY4gl+MrZQ1Z/CpedAnmIYoPQJNxahH x7RIfzcuXIRl6vaOLpvdODvqZ8WcO5Izh5pO7GP2fmM/TtN8NJWgERsQo3s+UR5xV7lE rShpNzmqENSIuDVOykKbPzyCY/126e7YYJzrYSpqG/VGp/jeQFEoErCOHkOInbDryvUS 0OghU+YEbH7AVoaIjsSw1gcicXCkjmUZLbZ+3UGUelFeWbtrw1W5rMvtAlde8ab+cSkw 7rnQ== 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=XDarFyQPMxlH7bapb3LHwXlRBAi8aiQKdhJsrLBBtXMadUjAIIQabOd31UhBl8S66O FwGeYmMRB2Zh4aDr3nquPV0OsbUQ15Xf6xV8J6OWYiavdo8fledx5o9qn/wdWZ5AVkZs 7ebiwFjQ6ohKY8fT8wFA073mlyGI+85dpJXtc2LxDWECHYmF5QR1qPNI1dms07l5DDdZ /S4oM9lYr1S5nbhvzRRSNdW27znZlO2jHGFcX85iW6CXC1uEYd/xRjCN6R8OFS+syps5 UW0v5CbDThQa5Iy8TXXGjZxCLFSDJlFhvNm7RN+Pyp/FVqm9yu2MDPQMwi8m+nyALnKw 7iWQ== X-Gm-Message-State: AOAM531+m2CfhjO+c+VY7/gN7cxbTkjmuJrvAtQfuAJjDQZh7hvxKGIb vha7zBx5IEF9MgAU/Vlb2l+bR57pQA19cA== X-Received: by 2002:a05:620a:424b:: with SMTP id w11mr34440688qko.179.1635948541588; Wed, 03 Nov 2021 07:09:01 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 19/23] linux-user/riscv: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:43 -0400 Message-Id: <20211103140847.454070-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72e; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516759 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp718892iml; Wed, 3 Nov 2021 07:31:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxMcpkIhi4d3ALIJ2S2A8j3PRBD/AR7MNJJnKjAmU+Vt2dagDSfgOh9pNLqFCN7TmJXr92m X-Received: by 2002:a05:6830:10d6:: with SMTP id z22mr32496952oto.312.1635949865941; Wed, 03 Nov 2021 07:31:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949865; cv=none; d=google.com; s=arc-20160816; b=vqjhi0CD2jfWzqYyp8NGMX3ybMiAQ3lrRcUPP2KwBKtd7A9nZcc8rmVocuzTeDmiE8 8zxsduvnZt6SF1fo3/WGS6SXl0ShNgnyThta4LfwRUXqfIOi+bqmMv7Qtk92UdxMnIT2 urlT/LOZ9JfBBxAc5/88BYmBVQRgDKGvX8QkwR5UJpj07fMW6l71tq6UCuWRkBU5XnOR DJLqZo1mAuJ71AIO0agjWSiUdfKVyEZhQIB/Z6C0oja77DwNYBBiUmemE4ZwisFZRp+Z OcFtcNZbieCoBip6vRb00eB87MziuMk8mPDEOH0J58K37B13dg9fbl3YPUkfqdi2Izjx 9J3w== 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=hbAyXq/gIYELrZhb2puIXN+LTcODNl+pwIE38N4zVGKKdGvTSykfIG5Px+rOVKOKpa 5j/Ax/eHEGLRGzn6HdMCxpullgpe7PAou77BIBp+bbls4vt/w2IO5JnVyMdVwFOvrmBY dE9p2YFi/ApoiScm8AB/JAYqAfYfjagOFtcieoK7ahoJ925QVnUKTLZDNMGKKcknhF3W 0LxYHFiq+A5eu5q3hXbYyKjdzN1wL8KUyovjGJGebe968/WwaF4laSD1mej1g08zvpG2 WifBTapJJ9Vc8yoDRLgbYJQZKzKZZCiqKCsaDVxVuk+/GhGiUsE/77eHqCfveDdOyKPW S4pA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="ErQ0u8/F"; 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 v39si4029340ott.5.2021.11.03.07.31.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:31:05 -0700 (PDT) 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="ErQ0u8/F"; 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]:57692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHI8-000489-MO for patch@linaro.org; Wed, 03 Nov 2021 10:31:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47898) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwq-0002d8-Vl for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:04 -0400 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]:45843) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwp-0005BN-3P for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:04 -0400 Received: by mail-qk1-x72a.google.com with SMTP id n15so2336323qkp.12 for ; Wed, 03 Nov 2021 07:09:02 -0700 (PDT) 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=ErQ0u8/FfAVcKxQObxp+mJ4RCQNSt9pyfJdS0sZt6znN/q6HPJejrh1wZ0FGRQXakx sILxPMBqv3uPXXRxUzSzzQNVsNINQmN4U9apzpXEfi8O/Vkavt5kwps35Ss4MEsNOoul rCnqb5g8j/GFjrFBxl1ESg0Hum7PZAjvtxGXLSRjeIptVR4WGHg5G94VqGYuXVe6Cp7F egIxPBZJpitD+h7xn+DTTkx0ObXBA1FqBFfaJhuof2GaD+MhKM70h9RL4ksBH0sGh9hi V7q1ZZH0a0sYx8jZxK2fevDWdFsNZB6sb+Z7+gjmUUo68h7vg+LZR5yKNNtpaN3xhXIz WQ5A== 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=ah79ujONxAzTASI988x47DMwzn4/Y4LbUQRQgkvb5uwaTCpjRN32FtARp3tjBjAcdD nSMLo76OuGS9yVxOZZWu7SQMFM/vR25we1Kp6Fu2Ee6iBkU1CxyqeObkboXPXS4Oqvgn 3Ll612Jqy8RlPEC8/gB1yS4XAaDcwFEMtrRKdwt/hny9W8KjRGmWvmc52qmfxiFlKf2U QwdvTYXu6M45hS1aKlcOjGkhHCpuxeu2QQg4y9nolzz5WR3qbWKNGacKaRyfL7Jt88H9 U+uYNckN9+8BAJt5EsrTSgkzOW/M3nQvAO/wKcYiojH4mMTK/W1f5NYBO1hLPC6XminO Vofw== X-Gm-Message-State: AOAM5327TWhyc4PBLJjnupQtvQr8uIZjTYh46HssOsK4tBQHXOAz2voi JCaTJW0P6A+Hn5Yx46J5/a08XWnXD/sMJQ== X-Received: by 2002:a05:620a:178b:: with SMTP id ay11mr36326218qkb.287.1635948542226; Wed, 03 Nov 2021 07:09:02 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 20/23] linux-user/s390x: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:44 -0400 Message-Id: <20211103140847.454070-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72a; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516748 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp703630iml; Wed, 3 Nov 2021 07:16:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQIa6JMScjVH/IXI5n9J5d6YDOXt8MXK9scMb6rjuwJh9gtV4QladNOx6GQa8dnsNKUWoK X-Received: by 2002:a9d:220c:: with SMTP id o12mr33147991ota.250.1635949008809; Wed, 03 Nov 2021 07:16:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949008; cv=none; d=google.com; s=arc-20160816; b=VvALphSGrEpP9tw1HVKTMNedVtTPfCc+2rybMlKFAdWX+TEU5h+r87730/P72WqXXe wV+eGKRjjRuwd78cMdGYEeo2d7tl8rcllgj00sqtaDafnKRjZgTxnV//iljjj/1Si4fB 5V/ulaXAP1umKv/nL3bdjm0nZAiUGbnBRi9aa4G3ppMeStDhQ0e8n2U0tpfbeHSTlfRf 3MasznbYAluzUmp9Qf/An3fNwU+DAJNYULkB53VYOmSITrSZ4Y6KXmMsjqG9JuFals/k VuJBP2PMe1BQSyoFUYkeqTfQq5OR0mVGsFihaBadGd2mSvO/s9bJA+tO6b01S66fJULx 3Ajg== 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=U3RaIxPb9zx+/dBk77lRlq+42rQrEP2Jsuoke9y6v2h0dx+czL05366w6Sg+j93U36 uFZ+UNU3oqvYRKBo8KhJAPFMXLXT2dzzzTf5W0Cc7+GP9P4qxxzuXCs0HacRKRnYHKwB FDigMhxp8Fe2BUVauU/uXEhPAHiTOvdIMzFp9FixgyafeEi7Ssi/P/NCqneDNSOqjzbg fMjQjSQLGY9gupLulDdMzzdHNYt0H2NpleZ8WPkRKvAMZeWRm5YtYRC6TeaffMA47TU3 X4tSN+2s/9Q6D6O/UralCzsVI4NJZbKw0xZq2hYlGWiCdo3+3/vVnFNVN/tZ6dVQMiQx 3CKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=GGhBjrst; 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 u11si2891223ooh.1.2021.11.03.07.16.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:16:48 -0700 (PDT) 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=GGhBjrst; 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]:54512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miH4J-0007XV-SG for patch@linaro.org; Wed, 03 Nov 2021 10:16:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwr-0002fu-JF for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:05 -0400 Received: from mail-qk1-x731.google.com ([2607:f8b0:4864:20::731]:42543) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwp-0005BV-N4 for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:05 -0400 Received: by mail-qk1-x731.google.com with SMTP id bm28so2356927qkb.9 for ; Wed, 03 Nov 2021 07:09:03 -0700 (PDT) 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=GGhBjrst84xggomt+4RSvPPkY08LeWG99fXCaVYnnS9u/uAhRkuc51cQpFWphvJ9su I5v3Hg/5KfnWbIGbwjRWaMAFUe9HFuvXdX3zI0BCSPzVKit+SJi6boytITSsX83LUXzI y544x95LhkYtI/diSgknHKZ6pTKqxD4Z9GnICg01beOMBkGNt+P4uwQguQ03laVSTrVh /ejUFyspTCjX3xFLcc6dTS9yYM4rQh6LQY1HSyBOyKgZATbiqu3vDJDo6iuk9LNneBQD RRCH8RSnUH9DbFchVY8/1VuZYwuXFHM+3ygwSE9Ich0BYFyBKNYfu0tlxGBys5gOELvR +Xxg== 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=Y2lPDvXmD2kxK2btHICsdb3BU08jAaS9u/pUXy8spGJKp/SvbhJXaVZRq4NXTqHJ0M T8dWFyq0JECZFpuJFtVrbK/ms7LvuTdhAx+vfgtZA3OaITFr/vCzQAw50V3jAz6SA9fM mnqUTLjVVwHBmX520THPb/nuK9+Ycnw5wKIysHwUEQ+rTGGw1tIkmLI2cgMlT3Fk9jlw rk2IR2OoUtroz1b6uqiVAaw245zKXkMt0Z8P+WC3+2Nrv2Zt0X8Vnory+WMN85WJ8Naj +nW9stFrgNhMu4JIvRJyTyoPgToUS2vqsPkBNXnrAPP6rH7lgZJhRu1OUZ4NUF00KWgn 1jJQ== X-Gm-Message-State: AOAM533bKYAmQo0k8xShaXLyoFUCIILLPdgrAybjOh4FrU2F98sAo7Hp gmtXQZyuf0x5oSQc7gPZBDifGPw5NhcxDg== X-Received: by 2002:a37:9b83:: with SMTP id d125mr34332726qke.374.1635948542800; Wed, 03 Nov 2021 07:09:02 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 21/23] linux-user/sh4: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:45 -0400 Message-Id: <20211103140847.454070-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::731; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x731.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516753 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp709664iml; Wed, 3 Nov 2021 07:22:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwiq+Cn/qyKIFgXdO3Qms0a4Dg53VIJJqxgvrV2Elva5uuvlwj57Mc2WZFeKYdHzx+oKJWK X-Received: by 2002:a9d:2247:: with SMTP id o65mr33221828ota.265.1635949356067; Wed, 03 Nov 2021 07:22:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635949356; cv=none; d=google.com; s=arc-20160816; b=MGO4en2diyjWGLOPQTfRujNvETfHTnDd24lqZwcsOVTryxnihRkJo80zUJVLbIuADx XPGFVus4p34cc5I9CLkxNiWw0hgOCwxg6bKEwGJHufDnLeessA1tD1NE2/uy0wJ8nihY aOP7JyeQNi7wLcHxj/fDp8nUunJEGLUIh4/RK9ZEI5MAfSEMalhFBoZ17tEvidKfdXZl qAKn43KeALLsfEsegAci+j8h+R6EHbMIFPbtSZ+Z3FgfyV2hjPM4XsUNdvllccsD1NnW EzS/wVVh0qGnyy/D7AdFq0VVbbOUlFH9zGApJEaIkjBEKFbwMyt7yh0eSRpH1rRYFeGp rZMA== 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=iWaf/hTEOaE+FcWR/0UYD6LtsFkbYU+QC3bnYVqhNsSXRLG1OaDliczB/9gaRb8yFt Mb/cVjGi0n8BNE17bgjYzto0pmfegIwvr9ROFwh1Kc/pVhfjTVwm1ppgqEDMHs7kVQQP 4MD3YyIQuVq1a41LCYvAxWYbcfnilzXQXIfLhMia7ao6hg3xJddgNuebolecGYjoLLmx H2mGLOZPuXQYaUQUnYB7k3S0C37ybYZhBVijjyf0MClpnlVaPz5U5Vq/tYb2lAhrCStd kL2JFLxcOYCymNLDpv8HGwKx+45sFonOnsVg57vMYv5oshyqYPhxu37eAYIkVzRVGm/n Wsgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Wqd4CS5X; 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 o14si4324011oik.119.2021.11.03.07.22.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:22:36 -0700 (PDT) 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=Wqd4CS5X; 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 1miH9v-0008BZ-Fu for patch@linaro.org; Wed, 03 Nov 2021 10:22:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGx4-0003NG-4b for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:18 -0400 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]:43961) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGx1-0005Lb-Ug for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:17 -0400 Received: by mail-qk1-x72b.google.com with SMTP id bp7so2345046qkb.10 for ; Wed, 03 Nov 2021 07:09:14 -0700 (PDT) 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=Wqd4CS5XGxU3NVIgsYd88Auk4RqpxUhlmGbeuszjR7kGKz0IxEdCJIWTmeGGDx832m MO6qpxCnRpEGcok0+FYdIh0UnPHkH47VOJmFXlrukDxTCT1lUdHmWVTkctU16rSSFdw6 YFK/mrhjUxkHsymHSY9N0pI5e8GvER65+PmVHY62pT3d4qYwTs/B5I8Wb4jhfLbHFCS1 a/mXXnYwUXdmH39oRiZzUWJJOnTluxInY7hR8TRY8+3OndH6nKhRfVy7bVu65OxE1mPg OwE/KVc4qr/fKU2sAGYtho6mlKucnFOj0oXgH9p/JDZBiP0dlM9g3uIcannMbv5Wth9O P3Fw== 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=BesMvOFz7dVw4WClpaqtPR+CdPNG1an7kLLGUNIor9hteCX0VQH6JoKbqvGS2+5Eew 8Ux+3AWA5KaIW/OotbxcW1RJcoSY/YNn8gh/lWBLscJa7LGnvZeWnUJgrbbI66O/u50t AWzEnhinDI9TZ2/RROrAIbpq223kBL4HzKjS3B/9I+3jAmv6Yp8DE/IZi+B8Et+Z1SM9 V8RTue0eYvqDS0iShBGsHJQeS5Lo7FJPTN9wBj6NfV0hdrska9Mw7YEX0kqy0AL4x72e kmXYy6resurDupmNLSeNf0gtu/w8Onn+x8NA7PaLr3+pdaEF5Zl4DDRvZjMsz6joV1lN CLKQ== X-Gm-Message-State: AOAM533nZk941TSolZzNfowDD2yIlXhOgCkoMrpxqlgN3T9DPHTDMFOW lFbQF0QVUrk0/hQvvv7vfvyNWjmnpRN1Iw== X-Received: by 2002:a05:620a:4588:: with SMTP id bp8mr28073316qkb.292.1635948543552; Wed, 03 Nov 2021 07:09:03 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 22/23] linux-user/sparc: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:46 -0400 Message-Id: <20211103140847.454070-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72b; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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 Wed Nov 3 14:08:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 516761 Delivered-To: patch@linaro.org Received: by 2002:ad5:5208:0:0:0:0:0 with SMTP id p8csp722202iml; Wed, 3 Nov 2021 07:33:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw9JtRkM9vj2AgvPUW+4Jmzjv5y5itqLYRMuSVX0rNSVK9h+XOc6d1eulpAdeYJfyEYtPLZ X-Received: by 2002:a05:6808:11c6:: with SMTP id p6mr11010303oiv.158.1635950036979; Wed, 03 Nov 2021 07:33:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635950036; cv=none; d=google.com; s=arc-20160816; b=uyq2QZ5ZtkuZEVy79wC5crz7gTb17e9s8Wmu2LsivqW+DZMEegtuXtETgdcTmY3a9e pfHiYWIlKhRuY2s1oWeUa4W/8YNS2Xtm5V90QJl4n5gb7a0W4Jzc50FefFcLFs3mowUh RJYhYSmaYzZVaaEqDTtheon075golhLdhD6dXmdaOrjHXU5mBh0v8XcFpJ494TxQxw6E bQNorASF+mLulMP2bGersdAd1/WY2E6cxOuuJYTI6k4RyOPWc/OAO3gcCtHWXmPkEBjf lykDyN372NmJ6QaPrinML6Q1XuZ1kf1lIPT7GX/vy8qX3iXGzfouURoBJW/7c3a+Wa3h RMHg== 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=CB+nXTQRKEf83ty6yoqDIjhETRrXYZV6DZGCYkmczV8+zlL9f3mdxI7ZZZRWAC8yrI FHeEnq6yBknppCtfoe3NQucoekj5LhH0BGdrRdPSWNhPjzD4PD9Jfi0MdzobrWKjBB5c OjtoOMB/cQNL3jWsUUdbydpIqrdph3x/BvqAQfZ6MMoXIrQsUoeNVM5O+LPgpSEN29ky kGHnzUDdHV0lU1xfzEWwTrz8d7mJgjo4+2Nyv317S0lXIjq6aqbwdGcDWNCy5A15kIOf pxkH/JnOiJQrAb9HoCE1mbvPsTV7v1rhYBKCt2K1Gli4tBdaTfChRil1zAupSu/4/v9O N+mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ZmcsrWbP; 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 y17si4236840oiv.80.2021.11.03.07.33.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Nov 2021 07:33:56 -0700 (PDT) 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=ZmcsrWbP; 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]:37628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1miHKu-0001Lt-Fo for patch@linaro.org; Wed, 03 Nov 2021 10:33:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47926) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1miGwt-0002lg-0n for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:07 -0400 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]:38746) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1miGwr-0005C7-3D for qemu-devel@nongnu.org; Wed, 03 Nov 2021 10:09:06 -0400 Received: by mail-qk1-x72a.google.com with SMTP id bi29so2378800qkb.5 for ; Wed, 03 Nov 2021 07:09:04 -0700 (PDT) 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=ZmcsrWbP7rplnj2v6AVnty7fuCBFNtjO15O0UBMlVYSSsNKAEagpedvfBJ6vSun1Lm 3w/PzKKqnuItwwu4Tl6WTCSIXV0c4OXWu42Jq4XqUhpTP0pmwEMCE00ya8AoDTu3DEXU 47HMWAYKhURplzA4mclZVKy1G59S9/mRhLvRTpeUpcviuCsXl/JmyD628Dd0jWOzq0KG qmZ8VrdDPHF0vl6ZD3AgiZRNyEM/rjDalFXjIXPfp9XT1Rudpl/K4ungby8KAF4NdsxU 9JnAnjpoUQdnPPiOv4HN2V+DF+yf/lDXvYI0x8sI0pvwdNloTO/V/NHN9fu9bUJGXhV6 gr3A== 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=QZ2YNaJonz0eoBwCGoMjiZG6/14VBcr2RBxogJO8fx2CGPF1mSIsMhbrB1tpqk5frj i49A16t12OHRgBF+IlwEyzwfgiSv2QrhUKOkYpQVRgn47hhl1Et3ChEcsvFEXzG2GxK6 9aFXZRBE9hxBz5O5H+Zmm9hjF9olnlu2dGEDD7kTx5z+rGclLADMXiCoQvlIYAnJ2UhS Xee9o7QLPVLheR9xjelO+zgLKTPM2yjfGKcQraThwtQDNDucJ9LpuWaj1g+j8pafSMxR Gb2IgbK4SBkVtRKJuYs/RXl59pSoeKYQNuJ923u/wj45m1ESkdC5VGyzfIriqZXGBwU/ MW0A== X-Gm-Message-State: AOAM532fTVtPmUQLQX0C0Bvc49/6T+SO90eF2/f1XdxU2S8AHeYtfcBV jiVSx5gbnd7C3xmyuKSCQLSW0gN1HKV4IQ== X-Received: by 2002:a37:b0c6:: with SMTP id z189mr35321418qke.344.1635948544136; Wed, 03 Nov 2021 07:09:04 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z5sm1669377qtw.71.2021.11.03.07.09.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 07:09:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 23/23] linux-user/xtensa: Use force_sig_fault Date: Wed, 3 Nov 2021 10:08:47 -0400 Message-Id: <20211103140847.454070-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211103140847.454070-1-richard.henderson@linaro.org> References: <20211103140847.454070-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::72a; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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@linaro.org, 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(-) -- 2.25.1 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: