From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341327; cv=none; d=zohomail.com; s=zohoarc; b=QcPiGtLbwkQ1h/ZTniggwNoEedarcCqE+1Ttk5jy2Vs6J13rPA7kO/RnLgXtD0SpzoxzZ8+m9+iHXtTp7eXmH6jIrj0MgNif4xYNtaVsHGhitV19wCE7pzkLJjS5WB/5VFqEhxHtgg48ZCnnXYGjI/wh2VBWqcruuwQppCbd9bc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341327; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=TyFmWgQcOY2oN6btgcJCHOhAC5qPXPjmBx9010yo87glF4M/NIcb77y1Q9pWU9o0Hn0VR8ioXFsb+QPH0vVr3Uq/qfOWJjlSqLn4bXOtIEOhxmZQnBeUYN4YKfRe4GgfR6h0SlXJHFvUEOXd5qAzoWm8etFsAj1dXMOJDVxJ7Cw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341327874555.9205388772441; Sat, 30 Apr 2022 10:55:27 -0700 (PDT) Received: from localhost ([::1]:37348 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrJW-00076w-Oa for importer@patchew.org; Sat, 30 Apr 2022 13:55:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33220) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHv-0004Sy-Ev for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:47 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]:36810) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHt-00080p-Rm for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:47 -0400 Received: by mail-pg1-x52e.google.com with SMTP id g3so8815340pgg.3 for ; Sat, 30 Apr 2022 10:53:45 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:44 -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=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=NVnL/mWE6QEmcPQDULe7H0h4Ra4GIcs10ieZtq1UQIg9Z7lcSeo2y0wGgvW3QRUBTn x0/Ni42kmkg5NOg708YivN2Y8SO4KFAzTje/5QqgcbvRKw9pbqSBA5PLhN2bvN+0GbYL drBolSCnPlc9TJx83X+BBq0UUijfB2Jq5upy2bJOu2kyByIGZkhqQDI57k9irkH8q3eY aGNS7oAmp3CInl6zYdzRWaxn6eF17eQst3mZIoaFMn2QIrDtDlGTh43XMWych7dCztE/ fxHbnr2Y2cp8Lw97X4O0/YROTd8kNzdZtYD6LM2XHA6HhU1nYNWSoNL4mwPH5kOYPsAB Kzmw== 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=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=otOh9sdz1c64VKsKFgHWQ7j2jKRYypGQkPSXZY0Ipgu66iwXE3FrpVVXPHHWCwAgeS E63kCtc6gY4pnmPfbF1K93iKnzj44ToN2kR9Q02sM2j2zGaZJ6pcw++0rYu8lDKPmS6t vNQWp/YttKdjOoKPGokrouf2xTi5NUi2dAmExcp8MfvHXxCqFa5Ol0n54omu0oykHvm+ WJHApJbjNXfU3IEW5V2syhgYcgbvUdw6ax+G5rW/kAo0b5n8OnLGQw9WCRxG047L/tlB 0toxvycvkYZ9H5/Kbb4wGYdwbeLs7DIXIyvZPTV64xD1osYAlcq86suUUjL+B7NdYezY gwrw== X-Gm-Message-State: AOAM5324wTT2R7yKelCJM1IpjkurvRwuL20M9t7FXcNpkgo0ks7L4YoD jXbiJZXQ6cj4/MpBohtX8XHWFfJvzJre7w== X-Google-Smtp-Source: ABdhPJwmKGaDw5tEMQegacWa7f9O8Pc0FsZzNsjUQl1J0uo1wl3I/mZfmksJFd//xrz7iwwXpM9ANQ== X-Received: by 2002:a05:6a00:1411:b0:4fd:e594:fac0 with SMTP id l17-20020a056a00141100b004fde594fac0mr4474679pfu.79.1651341224414; Sat, 30 Apr 2022 10:53:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 01/17] target/m68k: Raise the TRAPn exception with the correct pc Date: Sat, 30 Apr 2022 10:53:26 -0700 Message-Id: <20220430175342.370628-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341329288100001 Content-Type: text/plain; charset="utf-8" Rather than adjust the PC in all of the consumers, raise the exception with the correct PC in the first place. Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 1 - target/m68k/op_helper.c | 9 --------- target/m68k/translate.c | 2 +- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index d1bf8548b7..56417f7401 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -56,7 +56,6 @@ void cpu_loop(CPUM68KState *env) { abi_long ret; n =3D env->dregs[0]; - env->pc +=3D 2; ret =3D do_syscall(env, n, env->dregs[1], diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 8decc61240..d30f988ae0 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -217,11 +217,6 @@ static void cf_interrupt_all(CPUM68KState *env, int is= _hw) cpu_loop_exit(cs); return; } - if (cs->exception_index >=3D EXCP_TRAP0 - && cs->exception_index <=3D EXCP_TRAP15) { - /* Move the PC after the trap instruction. */ - retaddr +=3D 2; - } } =20 vector =3D cs->exception_index << 2; @@ -304,10 +299,6 @@ static void m68k_interrupt_all(CPUM68KState *env, int = is_hw) /* Return from an exception. */ m68k_rte(env); return; - case EXCP_TRAP0 ... EXCP_TRAP15: - /* Move the PC after the trap instruction. */ - retaddr +=3D 2; - break; } } =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 4026572ed8..6d6d026e3c 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4860,7 +4860,7 @@ DISAS_INSN(wdebug) =20 DISAS_INSN(trap) { - gen_exception(s, s->base.pc_next, EXCP_TRAP0 + (insn & 0xf)); + gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } =20 static void gen_load_fcr(DisasContext *s, TCGv res, int reg) --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341569; cv=none; d=zohomail.com; s=zohoarc; b=LnYjqpHncLF4dCR8C+79FUuba0sjIuxLge0xEYlLh47egvkpeO6w/gl06ZAqvN+y8LirI3vjrHGWKxTUf64ICfaunxCyTtce8bS8foq3FtLA7Hs5VNNEILSLIOh2KlwuIxv4Gc+atbajtZ3KNAxcRJ/Jbm2dr0RPj2f/0bP4bYQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341569; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=PdlJLzBT/Csje55C9jJrqbuXdqJxNZKBqJnJBEuz+BQm+uhVTOU+QIgndATyKD2OckXsNUQxTZiTfuq98efYHT5ZK9FVbQJJB+6EnfAPjQfBYpKXtJ3A8D+2YJ/gtMlaVAkVy0toOMeRDTSHsRkPbk6VjQmPh4zhMb71G2lWwrA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165134156972613.70923174733798; Sat, 30 Apr 2022 10:59:29 -0700 (PDT) Received: from localhost ([::1]:45938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrNQ-0004Ub-9H for importer@patchew.org; Sat, 30 Apr 2022 13:59:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33248) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHw-0004Tg-GS for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:48 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:45849) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHu-00080v-J9 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:48 -0400 Received: by mail-pl1-x631.google.com with SMTP id h12so9582950plf.12 for ; Sat, 30 Apr 2022 10:53:46 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:44 -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=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=ASrKMOiCcOOGZHYVxSEYwh/UelcQGy4DA5jf1jZHTJd2eIK+GEjuRtkQUMqb6fIPlH CL6jCH/5ah1Vx+N6QVSPx7CUgOYt83OqY9e0xYl9E/vfLWUAAwGbAk3UvltBRbK+YdKd 7QPKdeqXsiakPPRLco7XHO/a2F4XKZ7IR0BzX04m5MuSwT2ofZNY7teKlMy3gWUR5R6I 3vNWBvgXqcnowluz7ZvKcYlfm4k78A+ky2ltFhd3/jz69qDAZSsWRclyrXVyY++tt6OJ 0zBC+DlVHR8KGpHZ6oH4Xt4dsICABDS/TxoLCSeORLFO3blnn+VjMz87g5YDf43WfvLI 4iQQ== 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=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=3PWeXQnhhl4B4b9mox87DZj5UpZhnyMnGosWRLE4pY0Aum4d/CDxoBdA9o3f6s04eD +EyE1+EMDBCRP/g8fFelIpd5qyLCOhtB0zmI+7+uE/XB24RVHmqZ/jtskPPVgXgVC5oz jXdm7HmSV9YqW7z0Q+axM+w/USsG8tP8yWYYXSS0DSGkLnwGdmoKop52wN4D+WPQoxxC 64RIS59lCgrCf4GJIQBXsxxgy3X2b2mcuq0Sjm2c9Bzsdvns63BkDukWJw/9prJWR9l8 VnMqw9OJ6hvgm86PEyIWvGTmu7zwOgLCixCnJxluLF72SIzcBQ3AveN9ok1T2j19dl4v Zlwg== X-Gm-Message-State: AOAM53074qGgM78sRJM/sUFOU9vIBB09/47KOuAEqFMJ0Ac6Qe3ahI/H mfVJlWyqaAnW4baqwlGb4cqStkZYiBElLA== X-Google-Smtp-Source: ABdhPJyqhseRfYJ7aBiGeNvBkHnq/42QJ7HSIrMPh/j/l5cqxOc2zemn+3QWiDVK5/FjLrlJdOoyQw== X-Received: by 2002:a17:902:ce11:b0:15b:4232:e5e7 with SMTP id k17-20020a170902ce1100b0015b4232e5e7mr4441349plg.39.1651341225171; Sat, 30 Apr 2022 10:53:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 02/17] target/m68k: Switch over exception type in m68k_interrupt_all Date: Sat, 30 Apr 2022 10:53:27 -0700 Message-Id: <20220430175342.370628-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341570222100001 Replace an if ladder with a switch for clarity. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/m68k/op_helper.c | 49 +++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index d30f988ae0..2b94a6ec84 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -333,7 +333,8 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) sp &=3D ~1; } =20 - if (cs->exception_index =3D=3D EXCP_ACCESS) { + switch (cs->exception_index) { + case EXCP_ACCESS: if (env->mmu.fault) { cpu_abort(cs, "DOUBLE MMU FAULT\n"); } @@ -391,29 +392,39 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) "ssw: %08x ea: %08x sfc: %d dfc: %d\n", env->mmu.ssw, env->mmu.ar, env->sfc, env->dfc); } - } else if (cs->exception_index =3D=3D EXCP_ADDRESS) { + break; + + case EXCP_ADDRESS: do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); - } else if (cs->exception_index =3D=3D EXCP_ILLEGAL || - cs->exception_index =3D=3D EXCP_DIV0 || - cs->exception_index =3D=3D EXCP_CHK || - cs->exception_index =3D=3D EXCP_TRAPCC || - cs->exception_index =3D=3D EXCP_TRACE) { + break; + + case EXCP_ILLEGAL: + case EXCP_DIV0: + case EXCP_CHK: + case EXCP_TRAPCC: + case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, retaddr); - } else if (is_hw && oldsr & SR_M && - cs->exception_index >=3D EXCP_SPURIOUS && - cs->exception_index <=3D EXCP_INT_LEVEL_7) { - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); - oldsr =3D sr; - env->aregs[7] =3D sp; - cpu_m68k_set_sr(env, sr &=3D ~SR_M); - sp =3D env->aregs[7]; - if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { - sp &=3D ~1; + break; + + case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: + if (is_hw && oldsr & SR_M) { + do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + oldsr =3D sr; + env->aregs[7] =3D sp; + cpu_m68k_set_sr(env, sr &=3D ~SR_M); + sp =3D env->aregs[7]; + if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { + sp &=3D ~1; + } + do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); + break; } - do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); - } else { + /* fall through */ + + default: do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + break; } =20 env->aregs[7] =3D sp; --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341329; cv=none; d=zohomail.com; s=zohoarc; b=Z+sbhH+SfUlE13oV/j7KL1z8VMVYIzlZVxs3kv+0hN4M74bZ7nCTeY4LOcxPI4Fu2509e9CcLh41v29z9jE3KrLwTAOzof4N+akuCSi+1MVnvUKArBSFv78WSo4zCjIFcPMC7BQBSrilj3HfyA1Wu8UcvEeccZX7Pf/7T9DuDZE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341329; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3NUt6cycfWH/ENZGNIvXT39oA5d9WYzXAuV4uBUZ0DU=; b=jvdC//lPCow6N5B/gNQUaIt5CN3SzJkctd3GuzDxndKqWJt4uQH4WWur/WbDpGkim/jTcgBAXKuz+nv4V8RozoD+1SDwhJRiWKB8P02D8KrH69K1hulwXCFl2TXreGvisse3eyRbalmacxkg74RZHwkv9nvca/l6XNtrA3rWVj8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341329856766.9498034684344; Sat, 30 Apr 2022 10:55:29 -0700 (PDT) Received: from localhost ([::1]:37638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrJY-0007Hm-EG for importer@patchew.org; Sat, 30 Apr 2022 13:55:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33252) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHw-0004VI-SD for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:48 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:45746) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHv-00080z-FF for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:48 -0400 Received: by mail-pg1-x534.google.com with SMTP id 7so4928508pga.12 for ; Sat, 30 Apr 2022 10:53:47 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:45 -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=3NUt6cycfWH/ENZGNIvXT39oA5d9WYzXAuV4uBUZ0DU=; b=E7yw6I8zBmHHQES6s29ionq2PmreDRCs4vCqkgYYy2GV4RfJAqqRio2ndYkZCqt4Qg 9Rrp5tURWHst8JQryp7buL2p+PCPwsS4RV3V7tXm8L8YO51kLZozjU7cJtic+w/MrV8P 4lGBHoGI7ZV82IP1ohuJRAy2kJWFdRa6aq9C2YZgO4xEwrHEWoggaoFrfElMxy3juefH Kv7lqqO3LYFe5kArZSFhbjhBg0stVLbGh5xyCGeMyoMXQ/pzttEdOvgIv3GVHjcR8pe6 Jr75Gn3ctNOEBuHSHQ9gBX72UhYKoQHitlXuaj9ra50jTPLNDHtajpYwrCwv2vJPOld1 YkQQ== 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=3NUt6cycfWH/ENZGNIvXT39oA5d9WYzXAuV4uBUZ0DU=; b=PRv6tG3jve3fwvAgk4wNklcObLZYCZcm7k5/Hm+9tohUyalZBHEyLwZNfiq+JGTjjo bSln6Mm2P7UDCdbK6OL4WQtN2tnIT0Hz5DIC9mpeI4ilT6fY10pvCaytyQsbVwhehMwx YD25SQbn2W4NPBqy3Mj/eyDKu/wRR2L6Jn6bJEAIWbsSyE6uO76jFrQIG2POmNobpAgg j3E7Zhrg7jt5exeZ0uj+dYYGzHP0Eqb+/1pPyYMGY2++poUko4o4z9D26tkRGjq2cYlh haP3uf2WPYGiuuUCEiLzwos2d+VAweG0gd3EOxoarHWC6gvYDwq5v9JAbNq5rA7Hv8X6 HXPw== X-Gm-Message-State: AOAM533tdbHqGHpv8RFBFg7HYiWVwysvstAiiyKPgtLpTOOW/P23/JyA 17QBQg6yoJmYkUXBxkQPCgg7yw2fLzOjbA== X-Google-Smtp-Source: ABdhPJzSj4sv+RbuU18pkf3JfuuDjX4UuHRFzJuIY7cpUcA68j8voUppv6p2M3jBNT93E99PPC2bSA== X-Received: by 2002:a05:6a00:1585:b0:50d:a8b9:d414 with SMTP id u5-20020a056a00158500b0050da8b9d414mr4516538pfk.56.1651341226090; Sat, 30 Apr 2022 10:53:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 03/17] target/m68k: Fix coding style in m68k_interrupt_all Date: Sat, 30 Apr 2022 10:53:28 -0700 Message-Id: <20220430175342.370628-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341330950100005 Add parenthesis around & vs &&. Remove assignment to sr in function call argument -- note that sr is unused after the call, so the assignment was never needed, only the result of the & expression. Suggested-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/m68k/op_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 2b94a6ec84..0f41c2dce3 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -408,11 +408,11 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) break; =20 case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: - if (is_hw && oldsr & SR_M) { + if (is_hw && (oldsr & SR_M)) { do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); oldsr =3D sr; env->aregs[7] =3D sp; - cpu_m68k_set_sr(env, sr &=3D ~SR_M); + cpu_m68k_set_sr(env, sr & ~SR_M); sp =3D env->aregs[7]; if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { sp &=3D ~1; --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341330; cv=none; d=zohomail.com; s=zohoarc; b=TgBfm3jwobQMbz6177WCsyxMtk8Q95SxdFeyctSL7/xJVYADOfxKTqdTj0nEpxmFUNz66/F2JW0mWPXrHBqM7SrS8RmsigLrDOQW/jzZsW2PtdWSuM5N2pV3RVzj09aYuoxyB3qZyMmJ4eITd5H3it8V/wxoxNca8Dv+Mp1GlcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341330; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1b49PBr+T1730mSFSrp1OrknmNb0ysNKYnsC6xH7ni4=; b=EvSjWM7fRwqHlJoQ0Qg+/1tKX+B4djq35AKyVsZoQW4kTAmkeSxB+9xzqj8ntkPE0B3k3nWgXT6h4EnwMeVHmQ/gHAgASgPhB614ML+GCZ9nSYltwmWKicnjYoC+Kpw+fYBqeR2w4i+RVMI3dSloT0iq8SK7DPiKCLY3nJQzMWw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165134133097692.54321929073058; Sat, 30 Apr 2022 10:55:30 -0700 (PDT) Received: from localhost ([::1]:37674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrJZ-0007Ia-IX for importer@patchew.org; Sat, 30 Apr 2022 13:55:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33268) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHx-0004Xb-UP for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:49 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:46838) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHw-00081D-5i for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:49 -0400 Received: by mail-pj1-x102b.google.com with SMTP id cq17-20020a17090af99100b001dc0386cd8fso4384580pjb.5 for ; Sat, 30 Apr 2022 10:53:47 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:46 -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=1b49PBr+T1730mSFSrp1OrknmNb0ysNKYnsC6xH7ni4=; b=cojVkoZ/G4KKCo3PbhnBDWjuxknpQclBP8uqcl04Q/gV8LgNzofrMGJPP3QSvfk42A w866+5oSGKhmR82gvqsmEJqwn9atPVmcam40JjcLxNH77RCOW8wmLyQAby2cmpmcjmYC SueQ0bzXuTs/+eVuZRd11PC6tmdmlnhpm8V3BzwQZHizN+CN85K/lYbaH1tKTuAg5pjV 2lS7yQD9nyLvRGE5OSYbPpfFtv9awVYTWbT+bpbles5j9dqVfQbqDLtdG/xfCpyeEVJ6 nm6uhHJ+r0lpGnuWQto0wT8OWoW/1JrEA/7D2sUUw91ErOykrWTPidy0LhCryNulIp26 NcBQ== 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=1b49PBr+T1730mSFSrp1OrknmNb0ysNKYnsC6xH7ni4=; b=4guE2By2GGqPZdZ2kpb8vlGpUurHl4JK/4RQa5lgSlJhfxRG0kRLFYiPk1rHQJYCBQ SmONsboyyPQQCByEI25LqmeSzUeQnFbywWQhT6SD+z1BYu9YRE5fRe1GNbCYj9+VG3Za KbojlmdrrVQ8zgHdl0ys0EM64SQjT3kg00KbBOXVL3JVIXU29yvsropF/HhkJFX3inAY UkQPqBps+zVgLgAVBAuKIkcz90LdggvYbyK2Xv/1iQ/77c4KFFrUz6KcdyaB7Dm+w/H9 2wlJuZ+X16B1kJO7SfYcwbj0fbU4WTywqAQKjPQp9x44E7AQJ6brmmuqpXbC6jJxjN0v ONMw== X-Gm-Message-State: AOAM532EfKMv3xR74M7Dgwfsv+001zkomNGdDbJ9zfHWbd0ZF12YPzop YkR62zlEtXBOWYPJy3+rhCjtkTBPyS7VAQ== X-Google-Smtp-Source: ABdhPJzmWDMDkKD2x8yRpI3zVld06ZVUim95zLAGwdqJIM5tdNCz3ZhuMfSUT3wRet7/AkkBlpSStA== X-Received: by 2002:a17:902:db0a:b0:15c:e8bf:f9d with SMTP id m10-20020a170902db0a00b0015ce8bf0f9dmr4731231plx.103.1651341226881; Sat, 30 Apr 2022 10:53:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 04/17] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15 Date: Sat, 30 Apr 2022 10:53:29 -0700 Message-Id: <20220430175342.370628-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341332895100007 Content-Type: text/plain; charset="utf-8" These are raised by guest instructions, and should not fall through into the default abort case. Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 56417f7401..6ca3e1e63a 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -44,6 +44,7 @@ void cpu_loop(CPUM68KState *env) case EXCP_ILLEGAL: case EXCP_LINEA: case EXCP_LINEF: + case EXCP_TRAP0 + 1 ... EXCP_TRAP0 + 14: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: @@ -76,6 +77,7 @@ void cpu_loop(CPUM68KState *env) /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: + case EXCP_TRAP15: force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341568; cv=none; d=zohomail.com; s=zohoarc; b=TXKphzBABnVz0EM/ThALQO6BfKFQ2Ln7M6tKNg4gLbNjy1cG/OjSf4tmiPLq6F+F5DEeU6UF6AW7VtfWa3684CUqNPByiOff+/Z9C9tYG7Um68GRtfQ/7VpSt2ALjidVL+GptIRw9MRTEnVJD8xGadxGKvK+11c3XyZ9yjerzl8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341568; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=cc/qOcmiMBJTZfYLEMXNPDjtJqC3J6fzobvgmwmm1co3HXsQd4VAmo+aZBJH8QuuB1d2NUk7NwbfqBWZ4/ymFwZZdbYe4tYtnyL+jrcGSwGSlwp6KgTv8tgn7qeqZwGN7jf1dOIbdIuLd2A+TcRnAeejxPIBgNYqgpH9GWIk0ZE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341568422376.10107404045516; Sat, 30 Apr 2022 10:59:28 -0700 (PDT) Received: from localhost ([::1]:45860 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrNP-0004Rf-84 for importer@patchew.org; Sat, 30 Apr 2022 13:59:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33284) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHy-0004ZN-PG for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:50 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:46772) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHx-00081P-75 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:50 -0400 Received: by mail-pl1-x636.google.com with SMTP id u7so9578905plg.13 for ; Sat, 30 Apr 2022 10:53:48 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:47 -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=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=PY+NS7nAUlQ37XRhqC2+ZBAkY9cEQfdOO6nASWdwKd4N8u9U/lUhKCfImi/E5g7BxB Qfm50o3Fo2eXGMCaKslBV+6bvne5X8vnwfzOJq6kjJOkeRXbbNdySaVT44GTJEYlYv09 HcgwAyPSFEBBjXdEU7VM+nRvWMsLtpO1ObGXNuMinH+bMrNFIPViyXyT2rSynZW7K+w1 eaGU/dugpLA0nScEtuSC5+UCN0N1o7n8erRARzAQoRb/xhxmfObs5Hvf6LWEf6zRT9Fg czMDOwTBZCueV3bthwUdh7s9OzJJPo8a6nlZuFVmULSG4ODPHT+7AOnTJgbKa2w27kZo 1gMg== 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=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=M2zEh5e1/2c50uVUB1LtVDVqekUOmLBR1Aq8z57gVLy+3FuzTlCocvYx6IZPBolA5x bEU2+T9BxHJUIXcJd2pJPKmju8QQBjwSraipYCb8GojPN/Gibxh6mN1QQ+SdmmvFa77d 6cX1UXCCATz8GGu3BNCFg7eKcOsSV6bnx7SZMHSf+1QwIOx4mcoAPoBNCtJRVZGzp41q g0JhUsyiQtymNOAOhrJ3aB1WhEao4GX/KU5gfWo9y4dWesO4R/t/ZXHBVRaM48g9sBOR JKi5jJAEyAevomz97qDrVP8LZKOieHO2pvbCa/v0q5jFz1oyR6SQJBXqDgNjzimALgD+ MgIw== X-Gm-Message-State: AOAM530KKmfCpQhtSo2X6yoCiYXYHmSfE8HgwvaRSIu2wHIYWWWbpbwy eyBzF0iPpIS+ZXGJEMcASDQhZoRMEPDTOw== X-Google-Smtp-Source: ABdhPJyI+ldHE5tfisJq9wobS1MVs2FJ8cgIDxOOsDdGBn1ZdDk89tY/QkIyqN50mkg3noJAZQJEaA== X-Received: by 2002:a17:902:e741:b0:15e:5aad:b3d5 with SMTP id p1-20020a170902e74100b0015e5aadb3d5mr4764781plf.102.1651341227936; Sat, 30 Apr 2022 10:53:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 05/17] target/m68k: Remove retaddr in m68k_interrupt_all Date: Sat, 30 Apr 2022 10:53:30 -0700 Message-Id: <20220430175342.370628-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341570225100002 The only value this variable holds is now env->pc. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/m68k/op_helper.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 0f41c2dce3..777869790b 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -287,12 +287,9 @@ static void m68k_interrupt_all(CPUM68KState *env, int = is_hw) { CPUState *cs =3D env_cpu(env); uint32_t sp; - uint32_t retaddr; uint32_t vector; uint16_t sr, oldsr; =20 - retaddr =3D env->pc; - if (!is_hw) { switch (cs->exception_index) { case EXCP_RTE: @@ -385,7 +382,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) sp -=3D 4; cpu_stl_mmuidx_ra(env, sp, env->mmu.ar, MMU_KERNEL_IDX, 0); =20 - do_stack_frame(env, &sp, 7, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 7, oldsr, 0, env->pc); env->mmu.fault =3D false; if (qemu_loglevel_mask(CPU_LOG_INT)) { qemu_log(" " @@ -395,7 +392,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_ADDRESS: - do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 case EXCP_ILLEGAL: @@ -404,12 +401,12 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ - do_stack_frame(env, &sp, 2, oldsr, env->pc, retaddr); + do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: if (is_hw && (oldsr & SR_M)) { - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); oldsr =3D sr; env->aregs[7] =3D sp; cpu_m68k_set_sr(env, sr & ~SR_M); @@ -417,13 +414,13 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { sp &=3D ~1; } - do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 1, oldsr, 0, env->pc); break; } /* fall through */ =20 default: - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); break; } =20 --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341817; cv=none; d=zohomail.com; s=zohoarc; b=Ie+CdRufcFnojFv6s+CCZAjbVI4zhHsk4IqhP5CVKS0Uu6AVKWcQYEzLaP/BeI1Vl2cyNgUoF9FyQtkO/MMzYw/NpM5Um+7+mj3DaBbc4yKli0P6mGdyNf8q6EIoDlkLqH9rFVmbKDQJCLH+oKIH3CfWtN92+gID8+FbCouO90k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341817; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pV7AUSBmQ/5B1DI3laiJ3NZUsISLiXaxdnniwS0N5G4=; b=ksdPMOQHXZ2ASPVpDWRYJd9snW9ACL3yryooPsDlrcV7OCOKkwQTMMIF6hgtEMapew7JiUgOx/ljoqXptXDueqnchRpB0/ETnp/EZijbw5LcMsKYXj7YLFC599P6n5+1cmZO/AXekQlHenQNKwc02F1xLq5LGMtqkehVq5ouVDU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341816983577.6313214296056; Sat, 30 Apr 2022 11:03:36 -0700 (PDT) Received: from localhost ([::1]:54362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrRP-0001mr-QQ for importer@patchew.org; Sat, 30 Apr 2022 14:03:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33298) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrHz-0004bH-OD for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:51 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]:33749) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHy-00082g-1r for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:51 -0400 Received: by mail-pl1-x635.google.com with SMTP id c23so9647643plo.0 for ; Sat, 30 Apr 2022 10:53:49 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:48 -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=pV7AUSBmQ/5B1DI3laiJ3NZUsISLiXaxdnniwS0N5G4=; b=bCmOPnADDk2mdKwfN3ZDQwmy0hIn30xhZR4OB63mKzMN8FNThdheIHyLmvSVvMsfk9 4DZ9dV6Mtg+HLaLleFnYWi2JyyJ0sUM1tPu1CisefqlYqk+RKhWPxokJ+MQbQwfjldRn JAnKP/WDb9L/nTjfat2ipsOnG1rIadd1+iT2R3154hTXRHwmH8ivtBLlXJpITnkmW/N5 WS/IwgkUjNxq92PC2d43CAwChLguaSuQi148S0nmBn8d87H2bGOcvQh+7zfJxTO+YZWS ux8YC6eM9fGDRQM0rIpOnMyGvyWJUF7IY4mVYnhgNWSoNEZZjCHESMCvspzMaqgZU+FF fK3Q== 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=pV7AUSBmQ/5B1DI3laiJ3NZUsISLiXaxdnniwS0N5G4=; b=DAO8sNC5y4cO0YGFL6YdEljJed7qlD8zznBkeHYg3/H2h7YFTQKuP8jEXslmBhyo5z TQ+W2wTWWi3scIfHEK5kUR4Po3FnU7PTnCmTDKDTHBeWD4ZEjN0vfJIAt103yc5HolUm 2GBt1RraqtCAdEOwrqrEDo7oPTC9tD28STCtb/xFh78zo9KDh8dCg6Qlyx6D/xGCDStL PB4Ere70vxicbgi1S5DWqx2X2HgjHj1KC6yMQI2n3/cLh1q4UG/maD3a2025tY69dh/1 q9tc24zozsPVtWiGrmFJpv4b5p+iOhv+QG7HJSTj9A45x/lqfukNOWhJmxL66/OGez38 cHDg== X-Gm-Message-State: AOAM530UGNlJth+UhFQWMVV7egxrIABQGN5K4l0Hr8FPZHDGRJvA7Xsk CfBTsO6fWGAtyoq/9+KXoNSXoZWmgPZVfQ== X-Google-Smtp-Source: ABdhPJxHDafoiR4CsjJkYwTam26+wZ1Qs3aTp7gQq6BMvJrsENy4ktZOEX0V83vULFqccvcXWuusBw== X-Received: by 2002:a17:902:9887:b0:151:6e1c:7082 with SMTP id s7-20020a170902988700b001516e1c7082mr4600572plp.162.1651341228764; Sat, 30 Apr 2022 10:53:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 06/17] target/m68k: Fix address argument for EXCP_CHK Date: Sat, 30 Apr 2022 10:53:31 -0700 Message-Id: <20220430175342.370628-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341817591100001 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), CHK, CHK2 (and others) are supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. Create a raise_exception_format2 function to centralize recording of the trapping pc in mmu.ar, plus advancing to the next insn. Update m68k_interrupt_all to pass mmu.ar to do_stack_frame. Update cpu_loop to pass mmu.ar to siginfo.si_addr, as the kernel does in trap_c(). Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- target/m68k/cpu.h | 6 +++++ linux-user/m68k/cpu_loop.c | 2 +- target/m68k/op_helper.c | 54 ++++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 9b3bf7a448..558c3c67d6 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -122,6 +122,12 @@ typedef struct CPUArchState { =20 /* MMU status. */ struct { + /* + * Holds the "address" value in between raising an exception + * and creation of the exception stack frame. + * Used for both Format 7 exceptions (Access, i.e. mmu) + * and Format 2 exceptions (chk, div0, trapcc, etc). + */ uint32_t ar; uint32_t ssw; /* 68040 */ diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 6ca3e1e63a..5d9c1f3753 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -48,7 +48,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 777869790b..750d65576f 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,16 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) =20 case EXCP_ILLEGAL: case EXCP_DIV0: - case EXCP_CHK: case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 + case EXCP_CHK: + do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); + break; + case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: if (is_hw && (oldsr & SR_M)) { do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); @@ -548,6 +551,29 @@ void HELPER(raise_exception)(CPUM68KState *env, uint32= _t tt) raise_exception(env, tt); } =20 +G_NORETURN static void +raise_exception_format2(CPUM68KState *env, int tt, int ilen, uintptr_t rad= dr) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D tt; + + /* Recover PC and CC_OP for the beginning of the insn. */ + cpu_restore_state(cs, raddr, true); + + /* Flags are current in env->cc_*, or are undefined. */ + env->cc_op =3D CC_OP_FLAGS; + + /* + * Remember original pc in mmu.ar, for the Format 2 stack frame. + * Adjust PC to end of the insn. + */ + env->mmu.ar =3D env->pc; + env->pc +=3D ilen; + + cpu_loop_exit(cs); +} + void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) { uint32_t num =3D env->dregs[destr]; @@ -1065,18 +1091,7 @@ void HELPER(chk)(CPUM68KState *env, int32_t val, int= 32_t ub) env->cc_c =3D 0 <=3D ub ? val < 0 || val > ub : val > ub && val < 0; =20 if (val < 0 || val > ub) { - CPUState *cs =3D env_cpu(env); - - /* Recover PC and CC_OP for the beginning of the insn. */ - cpu_restore_state(cs, GETPC(), true); - - /* flags have been modified by gen_flush_flags() */ - env->cc_op =3D CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc +=3D 2; - - cs->exception_index =3D EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 2, GETPC()); } } =20 @@ -1097,17 +1112,6 @@ void HELPER(chk2)(CPUM68KState *env, int32_t val, in= t32_t lb, int32_t ub) env->cc_c =3D lb <=3D ub ? val < lb || val > ub : val > ub && val < lb; =20 if (env->cc_c) { - CPUState *cs =3D env_cpu(env); - - /* Recover PC and CC_OP for the beginning of the insn. */ - cpu_restore_state(cs, GETPC(), true); - - /* flags have been modified by gen_flush_flags() */ - env->cc_op =3D CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc +=3D 4; - - cs->exception_index =3D EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 4, GETPC()); } } --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341572; cv=none; d=zohomail.com; s=zohoarc; b=g9qJCjazigGAUQ1Ejisn3lX4w+RtnSDz+Sn29OH1SmJeQBZ2jN6uPESaCDSwGFT36Jkpqw18vkGGe2N3yRQCQLFZlC39y/7jNeOpR3egpVcjjyBxRsr2AD4PP85Oj1LqM+PxJLvbShdLkpxWw08OonMP+5r0VIU/+yEG6DkVqso= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341572; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aLxm3+X9E1D8CAxVGxUtiz9SexB3X2/3TU/vGizDvg4=; b=lEtIFcnXRVGteOV2myDtw9en9u1n0eN8gaXbS5tODcdJz3wpXvVccsJA+VGKI0gWyxv/tJDqWBrL21w1pZZLH0dqmpSrYXIva54qar2WRNCCeU5khgKB7YuRlhN6k3kZUxH60qBxbtLV2xGBdSP8GGSOY7KK2w7c0OKYpwW4YoY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341572447218.25607946327887; Sat, 30 Apr 2022 10:59:32 -0700 (PDT) Received: from localhost ([::1]:46266 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrNT-0004hW-9n for importer@patchew.org; Sat, 30 Apr 2022 13:59:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI1-0004dj-2N for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:56 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:36451) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrHz-00082r-37 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:52 -0400 Received: by mail-pj1-x1031.google.com with SMTP id gj17-20020a17090b109100b001d8b390f77bso13074890pjb.1 for ; Sat, 30 Apr 2022 10:53:50 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=aLxm3+X9E1D8CAxVGxUtiz9SexB3X2/3TU/vGizDvg4=; b=LWvFx4okkrlSBMgxTHJddMXr20e94f8afwOpECMgouu3de2z45a/etRLJb3Ls0e77S x1G+QiGxKqz8Un1voQbfI+Hgot3mn6lofJpyrIHI0p9jjZvHr9x/tk/MxqyX5o8n13xk OAHVoATTKkDJ2w72qwIm8pVQW9RupaUVbM0JENh4zfVEr8hJF4GE5zTN7EikUVFL2Kas RmjNr6BHoX5WJ+1/NXxprksiX+lJFmTI+iwmASHcMiCLkbZdls1UXIOq/vr1m1sLLpAH xIArHKE/hjXHqKeSPWSh22BmjhBHV5h1z0wUPT6MuLPQ4HK65j2+kjFpQjWyPsWTaY8t oE2A== 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=aLxm3+X9E1D8CAxVGxUtiz9SexB3X2/3TU/vGizDvg4=; b=ZXKigtXNM13nd6UyomksDsrIwJPAhtF12+PzOGgi6MrsJVq3zE1+Owzbb+uHDQs4tS KN9TDFtfRrilR37KH5MdzYFJgeSZ7mShmKLtsDqQIIORPYDKtonEVE7Qsu+2K4MoWzq3 hzowDTYeemfckzg4v8Cgcs+anc04QlPMIoVTL5MMJ82p8r8VpR0YgUfQ9ql/ViMsaL5b 0UriQ/q4A/JYNcJ1t98y8yq5zBZqrdRRCRtTgBKlgNStgIvTN0aBELnVG9tAhM98GmIC nzHajJo2cRSv7l/H+/7xYdlaiZPlIFvR2moCax9LShPVmU9tajyLzSxlIGDe/DZGQimm IGWA== X-Gm-Message-State: AOAM5328aQ9ekW1BC04KfYAaIh+GiE4gQtO5w0Q7oJ2uJKU8esEf+bgc sHiiswwVxZh9Olp3p+xBm5PavxG4Cv78vg== X-Google-Smtp-Source: ABdhPJxfsod69ZGJi9WVgh8byr6MMgeRl4RjCf8RpJM6imHOocOIRB1zOIizHiKs+Y+5WVE2glO38w== X-Received: by 2002:a17:902:cecb:b0:15e:8bff:1495 with SMTP id d11-20020a170902cecb00b0015e8bff1495mr4682922plg.131.1651341229741; Sat, 30 Apr 2022 10:53:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 07/17] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0 Date: Sat, 30 Apr 2022 10:53:32 -0700 Message-Id: <20220430175342.370628-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341574355100003 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), Zero Div (and others) is supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. While the N, Z and V flags are documented to be undefine on DIV0, the C flag is documented as always cleared. Update helper_div* to take the instruction length as an argument and use raise_exception_format2. Hoist the reset of the C flag above the division by zero check. Update m68k_interrupt_all to pass mmu.ar to do_stack_frame. Update cpu_loop to pass mmu.ar to siginfo.si_addr, as the kernel does in trap_c(). Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- target/m68k/helper.h | 12 +++++----- linux-user/m68k/cpu_loop.c | 2 +- target/m68k/op_helper.c | 48 +++++++++++++++++++++++--------------- target/m68k/translate.c | 33 +++++++++++++------------- 4 files changed, 52 insertions(+), 43 deletions(-) diff --git a/target/m68k/helper.h b/target/m68k/helper.h index 0a6b4146f6..f016c4c1c2 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -1,12 +1,12 @@ DEF_HELPER_1(bitrev, i32, i32) DEF_HELPER_1(ff1, i32, i32) DEF_HELPER_FLAGS_2(sats, TCG_CALL_NO_RWG_SE, i32, i32, i32) -DEF_HELPER_3(divuw, void, env, int, i32) -DEF_HELPER_3(divsw, void, env, int, s32) -DEF_HELPER_4(divul, void, env, int, int, i32) -DEF_HELPER_4(divsl, void, env, int, int, s32) -DEF_HELPER_4(divull, void, env, int, int, i32) -DEF_HELPER_4(divsll, void, env, int, int, s32) +DEF_HELPER_4(divuw, void, env, int, i32, int) +DEF_HELPER_4(divsw, void, env, int, s32, int) +DEF_HELPER_5(divul, void, env, int, int, i32, int) +DEF_HELPER_5(divsl, void, env, int, int, s32, int) +DEF_HELPER_5(divull, void, env, int, int, i32, int) +DEF_HELPER_5(divsll, void, env, int, int, s32, int) DEF_HELPER_2(set_sr, void, env, i32) DEF_HELPER_3(cf_movec_to, void, env, i32, i32) DEF_HELPER_3(m68k_movec_to, void, env, i32, i32) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 5d9c1f3753..45419d4471 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -51,7 +51,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; case EXCP_TRAP0: { diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 750d65576f..729ee0e934 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -396,7 +396,6 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_ILLEGAL: - case EXCP_DIV0: case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ @@ -404,6 +403,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_CHK: + case EXCP_DIV0: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 @@ -574,18 +574,19 @@ raise_exception_format2(CPUM68KState *env, int tt, in= t ilen, uintptr_t raddr) cpu_loop_exit(cs); } =20 -void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) +void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den, int ilen) { uint32_t num =3D env->dregs[destr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot > 0xffff) { env->cc_v =3D -1; /* @@ -601,18 +602,19 @@ void HELPER(divuw)(CPUM68KState *env, int destr, uint= 32_t den) env->cc_v =3D 0; } =20 -void HELPER(divsw)(CPUM68KState *env, int destr, int32_t den) +void HELPER(divsw)(CPUM68KState *env, int destr, int32_t den, int ilen) { int32_t num =3D env->dregs[destr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot !=3D (int16_t)quot) { env->cc_v =3D -1; /* nothing else is modified */ @@ -629,18 +631,20 @@ void HELPER(divsw)(CPUM68KState *env, int destr, int3= 2_t den) env->cc_v =3D 0; } =20 -void HELPER(divul)(CPUM68KState *env, int numr, int regr, uint32_t den) +void HELPER(divul)(CPUM68KState *env, int numr, int regr, + uint32_t den, int ilen) { uint32_t num =3D env->dregs[numr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; env->cc_z =3D quot; env->cc_n =3D quot; env->cc_v =3D 0; @@ -657,18 +661,20 @@ void HELPER(divul)(CPUM68KState *env, int numr, int r= egr, uint32_t den) } } =20 -void HELPER(divsl)(CPUM68KState *env, int numr, int regr, int32_t den) +void HELPER(divsl)(CPUM68KState *env, int numr, int regr, + int32_t den, int ilen) { int32_t num =3D env->dregs[numr]; int32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; env->cc_z =3D quot; env->cc_n =3D quot; env->cc_v =3D 0; @@ -685,19 +691,21 @@ void HELPER(divsl)(CPUM68KState *env, int numr, int r= egr, int32_t den) } } =20 -void HELPER(divull)(CPUM68KState *env, int numr, int regr, uint32_t den) +void HELPER(divull)(CPUM68KState *env, int numr, int regr, + uint32_t den, int ilen) { uint64_t num =3D deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); uint64_t quot; uint32_t rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot > 0xffffffffULL) { env->cc_v =3D -1; /* @@ -720,19 +728,21 @@ void HELPER(divull)(CPUM68KState *env, int numr, int = regr, uint32_t den) env->dregs[numr] =3D quot; } =20 -void HELPER(divsll)(CPUM68KState *env, int numr, int regr, int32_t den) +void HELPER(divsll)(CPUM68KState *env, int numr, int regr, + int32_t den, int ilen) { int64_t num =3D deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); int64_t quot; int32_t rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot !=3D (int32_t)quot) { env->cc_v =3D -1; /* diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 6d6d026e3c..d775345bfa 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1601,6 +1601,7 @@ DISAS_INSN(divw) int sign; TCGv src; TCGv destr; + TCGv ilen; =20 /* divX.w ,Dn 32/16 -> 16r:16q */ =20 @@ -1609,20 +1610,20 @@ DISAS_INSN(divw) /* dest.l / src.w */ =20 SRC_EA(env, src, OS_WORD, sign, NULL); - destr =3D tcg_const_i32(REG(insn, 9)); + destr =3D tcg_constant_i32(REG(insn, 9)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsw(cpu_env, destr, src); + gen_helper_divsw(cpu_env, destr, src, ilen); } else { - gen_helper_divuw(cpu_env, destr, src); + gen_helper_divuw(cpu_env, destr, src, ilen); } - tcg_temp_free(destr); =20 set_cc_op(s, CC_OP_FLAGS); } =20 DISAS_INSN(divl) { - TCGv num, reg, den; + TCGv num, reg, den, ilen; int sign; uint16_t ext; =20 @@ -1639,15 +1640,14 @@ DISAS_INSN(divl) /* divX.l , Dr:Dq 64/32 -> 32r:32q */ =20 SRC_EA(env, den, OS_LONG, 0, NULL); - num =3D tcg_const_i32(REG(ext, 12)); - reg =3D tcg_const_i32(REG(ext, 0)); + num =3D tcg_constant_i32(REG(ext, 12)); + reg =3D tcg_constant_i32(REG(ext, 0)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsll(cpu_env, num, reg, den); + gen_helper_divsll(cpu_env, num, reg, den, ilen); } else { - gen_helper_divull(cpu_env, num, reg, den); + gen_helper_divull(cpu_env, num, reg, den, ilen); } - tcg_temp_free(reg); - tcg_temp_free(num); set_cc_op(s, CC_OP_FLAGS); return; } @@ -1656,15 +1656,14 @@ DISAS_INSN(divl) /* divXl.l , Dr:Dq 32/32 -> 32r:32q */ =20 SRC_EA(env, den, OS_LONG, 0, NULL); - num =3D tcg_const_i32(REG(ext, 12)); - reg =3D tcg_const_i32(REG(ext, 0)); + num =3D tcg_constant_i32(REG(ext, 12)); + reg =3D tcg_constant_i32(REG(ext, 0)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsl(cpu_env, num, reg, den); + gen_helper_divsl(cpu_env, num, reg, den, ilen); } else { - gen_helper_divul(cpu_env, num, reg, den); + gen_helper_divul(cpu_env, num, reg, den, ilen); } - tcg_temp_free(reg); - tcg_temp_free(num); =20 set_cc_op(s, CC_OP_FLAGS); } --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341816; cv=none; d=zohomail.com; s=zohoarc; b=FsUBGIw5OIC6jP7bU7f692hloICmEWAFr3H7gDhVlOVFWePsQNHBHxeTLZvhlAN6rr7FlPEPA8MDgm+DaBALFMbSM1GjbMJTcrxndq7BpaIn9Tf2W7ZUIPY8K4AU/h0q1xPvU0Gwee/Wd09qrfJEh2iEhN+NE7ZhfPn4WGdozd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341816; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Fjeo0HvEVxkPgodgKfBulTRYe64uwbkWnzaPS9u5yUI=; b=Bu1cIyj+pErxra78aD6BhcSK0BX0jqcA50tz9KfYZqikuVv9xdFjTl1Fvr7I9I+kyfX4r9Rwp5H7yAeZDsbUPgjkRp9jLPjK/5ZbaKp4Q5k1OuJYfcqam/OGcFJpCdXHlt2ZG/p4Gp52ehL5YWNWgTNC76eU0QElijD+uHmKlus= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341816444489.16007168033616; Sat, 30 Apr 2022 11:03:36 -0700 (PDT) Received: from localhost ([::1]:54450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrRP-0001q7-9K for importer@patchew.org; Sat, 30 Apr 2022 14:03:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33334) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI2-0004dq-0M for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:56 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:46762) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI0-000831-85 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:53 -0400 Received: by mail-pl1-x62b.google.com with SMTP id u7so9578969plg.13 for ; Sat, 30 Apr 2022 10:53:51 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=Fjeo0HvEVxkPgodgKfBulTRYe64uwbkWnzaPS9u5yUI=; b=pSd05TqAjJ6O27mgpAtMqSUlYBtM1kXwr66hU3fjmQAnvfct/cnbTgbjuH80ISRfyX bro6rQ6TTgm2yfEitOU5Uj+w4ePtqND5ZR/SkHouNIf8dx62U7ExR2arSNAItZObHeKJ 6ap7OdHG5zTtG59c4+Gs/83n5m6EB7rEhx5hzzFgpphA9EsAqkAfmXlb+ardIf4NXoQk 69FdV/BsI9OLM5mwu1HHM8BKhX8KFaim4h5hrnscy6SO9YhXk49UfwnI/W1mTsJ/RgrJ 5/o5NyTPjwSC5pn8F8SHqpzGkVkFvGwfwTJUJ+mQXJdLPS2TknOHWEpkhm7GnG3lFB5x UrWQ== 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=Fjeo0HvEVxkPgodgKfBulTRYe64uwbkWnzaPS9u5yUI=; b=AnzkvWziwRhcL2c28eyrz/6ZjKjqWdyNNPCOI7rVmI22qlK5IC39tOFoVThPVjf3CN I2pmumFjsHwOrGmwQvQd7IPU81SBgoiLD4ATPi2Cnz3qIyw59EZcuXY7tPArm8elQpd5 +oCBWfeoo2SiTMbgfyMy4JdfrdRQsetkxNd6/mDIjn7dexIXJXss0TSrqPTX5D+LnLgj 5SSFbfWGvLsHed+Ty2ieEkxuNNJRZeF4VgpiOZfv5xR/84pwxd9g9xYV/oBKnHIekph5 4quQdcdg9RFYnbv6U8pSETG5IX3T4nTshFMjS9m4C6HcPWnXzFynuSCbsTNjvTYb+GuZ 8qsw== X-Gm-Message-State: AOAM533xL12BIYJ7z8RvqMdr2STX37P+PmyHDnkbeDSlwGhQV32qgjTA fyacZDSqyVq2dC7xgEXX3U2dWShKFWasGA== X-Google-Smtp-Source: ABdhPJyrjjnd8Wwwdj5cUizanqSClxB/a6lyNE9pH2fTTkuUp6aQHC62/Fi0B002TCBJakTYGp3iZA== X-Received: by 2002:a17:902:f605:b0:154:aa89:bd13 with SMTP id n5-20020a170902f60500b00154aa89bd13mr4607821plg.112.1651341230965; Sat, 30 Apr 2022 10:53:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 08/17] target/m68k: Fix address argument for EXCP_TRACE Date: Sat, 30 Apr 2022 10:53:33 -0700 Message-Id: <20220430175342.370628-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341817598100002 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), Trace (and others) is supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. Create gen_raise_exception_format2 to record the trapping pc in env->mmu.ar. Update m68k_interrupt_all to pass the value to do_stack_frame. Update cpu_loop to handle EXCP_TRACE. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- linux-user/m68k/cpu_loop.c | 3 +++ target/m68k/op_helper.c | 2 +- target/m68k/translate.c | 49 +++++++++++++++++++++++++------------- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 45419d4471..000bb44cc3 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -53,6 +53,9 @@ void cpu_loop(CPUM68KState *env) case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; + case EXCP_TRACE: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_TRACE, env->mmu.ar= ); + break; case EXCP_TRAP0: { abi_long ret; diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 729ee0e934..3cb71c9140 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,13 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) =20 case EXCP_ILLEGAL: case EXCP_TRAPCC: - case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 case EXCP_CHK: case EXCP_DIV0: + case EXCP_TRACE: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index d775345bfa..399d9232e4 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -114,6 +114,7 @@ typedef struct DisasContext { DisasContextBase base; CPUM68KState *env; target_ulong pc; + target_ulong pc_prev; CCOp cc_op; /* Current CC operation */ int cc_op_synced; TCGv_i64 mactmp; @@ -298,6 +299,21 @@ static void gen_raise_exception(int nr) tcg_temp_free_i32(tmp); } =20 +static void gen_raise_exception_format2(DisasContext *s, int nr, + target_ulong this_pc) +{ + /* + * Pass the address of the insn to the exception handler, + * for recording in the Format $2 (6-word) stack frame. + * Re-use mmu.ar for the purpose, since that's only valid + * after tlb_fill. + */ + tcg_gen_st_i32(tcg_constant_i32(this_pc), cpu_env, + offsetof(CPUM68KState, mmu.ar)); + gen_raise_exception(nr); + s->base.is_jmp =3D DISAS_NORETURN; +} + static void gen_exception(DisasContext *s, uint32_t dest, int nr) { update_cc_op(s); @@ -1494,12 +1510,13 @@ static void gen_exit_tb(DisasContext *s) } while (0) =20 /* Generate a jump to an immediate address. */ -static void gen_jmp_tb(DisasContext *s, int n, uint32_t dest) +static void gen_jmp_tb(DisasContext *s, int n, target_ulong dest, + target_ulong src) { if (unlikely(s->ss_active)) { update_cc_op(s); tcg_gen_movi_i32(QREG_PC, dest); - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(s, EXCP_TRACE, src); } else if (translator_use_goto_tb(&s->base, dest)) { tcg_gen_goto_tb(n); tcg_gen_movi_i32(QREG_PC, dest); @@ -1548,9 +1565,9 @@ DISAS_INSN(dbcc) tcg_gen_addi_i32(tmp, tmp, -1); gen_partset_reg(OS_WORD, reg, tmp); tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, -1, l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); } =20 DISAS_INSN(undef_mac) @@ -3096,13 +3113,13 @@ DISAS_INSN(branch) /* Bcc */ TCGLabel *l1 =3D gen_new_label(); gen_jmpcc(s, ((insn >> 8) & 0xf) ^ 1, l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); } else { /* Unconditional branch. */ update_cc_op(s); - gen_jmp_tb(s, 0, base + offset); + gen_jmp_tb(s, 0, base + offset, s->base.pc_next); } } =20 @@ -5485,9 +5502,9 @@ DISAS_INSN(fbcc) l1 =3D gen_new_label(); update_cc_op(s); gen_fjmpcc(s, insn & 0x3f, l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); } =20 DISAS_INSN(fscc) @@ -6158,6 +6175,8 @@ static void m68k_tr_init_disas_context(DisasContextBa= se *dcbase, CPUState *cpu) =20 dc->env =3D env; dc->pc =3D dc->base.pc_first; + /* This value will always be filled in properly before m68k_tr_tb_stop= . */ + dc->pc_prev =3D 0xdeadbeef; dc->cc_op =3D CC_OP_DYNAMIC; dc->cc_op_synced =3D 1; dc->done_mac =3D 0; @@ -6191,6 +6210,7 @@ static void m68k_tr_translate_insn(DisasContextBase *= dcbase, CPUState *cpu) do_writebacks(dc); do_release(dc); =20 + dc->pc_prev =3D dc->base.pc_next; dc->base.pc_next =3D dc->pc; =20 if (dc->base.is_jmp =3D=3D DISAS_NEXT) { @@ -6225,17 +6245,12 @@ static void m68k_tr_tb_stop(DisasContextBase *dcbas= e, CPUState *cpu) break; case DISAS_TOO_MANY: update_cc_op(dc); - if (dc->ss_active) { - tcg_gen_movi_i32(QREG_PC, dc->pc); - gen_raise_exception(EXCP_TRACE); - } else { - gen_jmp_tb(dc, 0, dc->pc); - } + gen_jmp_tb(dc, 0, dc->pc, dc->pc_prev); break; case DISAS_JUMP: /* We updated CC_OP and PC in gen_jmp/gen_jmp_im. */ if (dc->ss_active) { - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(dc, EXCP_TRACE, dc->pc_prev); } else { tcg_gen_lookup_and_goto_ptr(); } @@ -6246,7 +6261,7 @@ static void m68k_tr_tb_stop(DisasContextBase *dcbase,= CPUState *cpu) * other state that may require returning to the main loop. */ if (dc->ss_active) { - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(dc, EXCP_TRACE, dc->pc_prev); } else { tcg_gen_exit_tb(NULL, 0); } --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342004; cv=none; d=zohomail.com; s=zohoarc; b=Auue1JJZ+8C5DybjaGph567sEoKB2CFqPFc4HjHTqhYvPTzxX/IclZ/+35VqUveWcmVWjQUdTLwpJ6e6O6F44Scj+TRZzjUacgusWTDDafucitFi9dZQVGF4dUag2Apz2Q6fgcrfSixARCmUNxwVo1+EnwqzZ8inwpUPx19/E90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342004; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QiL50oJATvoUHpaFbUSOhW72pyefXH6OHiLxuwc06l0=; b=HQ9h2TFHwMNiaEQkYVsx8jabOgwgbdmWvtEuIe4es4LXqjuT116CeblzJGSL/BJPQqJISFcGkecZA4ZTcQl+6J+0dj6wQQVU7jvvHzEUhZxcnLr6WUq0VVWil2xikZh1TS7LndZWk9R6WypOwrh0ppMKnSo6Xavc+EhHoaketys= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342004959897.7779419891933; Sat, 30 Apr 2022 11:06:44 -0700 (PDT) Received: from localhost ([::1]:60828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrUR-0006Dp-Qj for importer@patchew.org; Sat, 30 Apr 2022 14:06:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33346) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI3-0004dy-8t for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:56 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:39786) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI1-00083C-C0 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:54 -0400 Received: by mail-pl1-x636.google.com with SMTP id u9so8982724plf.6 for ; Sat, 30 Apr 2022 10:53:52 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=QiL50oJATvoUHpaFbUSOhW72pyefXH6OHiLxuwc06l0=; b=ernaJqMTIkqITS2s+ZqNrq/Nrnth4SXgBsb439L7yEGQ3AuZvf5liSuaeXKvMnTWt3 e4e13BGy5K5R4UeXPFjQsc4qtb0Iaetzh0xyFceLIZ4XzY8XJopZkavdj+qh86/L/ChG SQFQAjd3haDDUwu3i0yrFZjfHidsYStsDZtM/bABifc+DAUzBiodQ6kNuzkY3kXWUDcp FEhMz7DA/gDgiI1Q50d67WHf34lJpQut8C/w2uw2JdVGnPkcO96300thWZttrJJPwGpD KaPSpjDmjbOq/JfgK0tmv9R8denXb9wUaTppE4AfspJcmrE9hMJ6PsCRxPTeTMWwDlxx DawQ== 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=QiL50oJATvoUHpaFbUSOhW72pyefXH6OHiLxuwc06l0=; b=rFgldu3ZAwPAHKYdD5YANR7UEUx0jdaFUgc2L7rjA3P6EUb+CgutE5W8k6/ZH8nn9x 1E/jDSvGsG/emA7VdaABWlKjp3aenQQiQEj6jSHU5vmAOf6sfZ9zW1AMZ02PzQ6y7ja/ 2KUmZLoIPFLNd1U8yozGAl0wX+oZ8ERxMtsoRq4cqPZH0cOBSxsrYcpuZKpNXKE4aBsW AtgJo2c9Y3Tn63T5wDsx+EMY5WwuWvFHQOWRbC0kOdnAyVdJUQlWZQw40NAs0TrU9AWd tIYikuYmeTENn7MELmhbD4CjAQTmlGhGdzpF1p6IjGw5F6ITcztEXreLxQum+NePcJFL PJ8w== X-Gm-Message-State: AOAM531i6BJM5W5SSLPPLIrfcFLUdTOAwZKeoTjSg8Yq3ktzWT2SFOmp EAXWRwJyB0pKTWVLwlV+VQkkFZabmKxcOw== X-Google-Smtp-Source: ABdhPJyILSOZqHUdbRWNp8Wno1+K0mwyEuBKFdyge8a0/db8JD9s7Ng0Cfu8VKa4cIf+WSIUFBWHLg== X-Received: by 2002:a17:902:ec8c:b0:15e:8cbc:fd5b with SMTP id x12-20020a170902ec8c00b0015e8cbcfd5bmr4367819plg.141.1651341232123; Sat, 30 Apr 2022 10:53:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 09/17] target/m68k: Fix stack frame for EXCP_ILLEGAL Date: Sat, 30 Apr 2022 10:53:34 -0700 Message-Id: <20220430175342.370628-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342007562100001 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.3, Four word stack frame (format 0), includes Illegal Instruction. Use the correct frame format, which does not use the ADDR argument. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- target/m68k/op_helper.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 3cb71c9140..aa62158eb9 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -391,11 +391,14 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) } break; =20 + case EXCP_ILLEGAL: + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); + break; + case EXCP_ADDRESS: do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 - case EXCP_ILLEGAL: case EXCP_TRAPCC: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342108; cv=none; d=zohomail.com; s=zohoarc; b=n2C1mydmrmy2m9SADU7hEJ2WVFyjlobcq0Jbw47jfbNApxpOZM2w44cKWU3ODGiwrFVqoN2zR0NZs1jiAvpkWPtAROi1ZPfD1SxBPa1AHSflZWY39eFSb/syLwN90yScQOB5//4Wlve/yXDCChnV8dKXfrMOd2Vai+TNxRghZUU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342108; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kDs65ZOPg5Kkkmp8VxOfy5lQsAHsaoUz3vkTXU8oqCw=; b=ClhjSassdiNW5XifmKhZdh+ZYLNWRDxRZSVqLf+xaeIeYdvsYdskgQeWWvun1vcp7m6kCXdMariAumFn0dXuh+bwfmky+wV7NtzxCfMsr3HUcuLdCMfXgVSMSAweDlOI7MXr2hUZeXbVeAc2plxaZ8LYyuaMivtQZOa/sNnO8rA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342108022146.2033027085057; Sat, 30 Apr 2022 11:08:28 -0700 (PDT) Received: from localhost ([::1]:36836 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrW6-0000ef-Qu for importer@patchew.org; Sat, 30 Apr 2022 14:08:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI5-0004gE-4P for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:57 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:56163) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI3-00083L-1H for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:56 -0400 Received: by mail-pj1-x102f.google.com with SMTP id r9so9583662pjo.5 for ; Sat, 30 Apr 2022 10:53:54 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=kDs65ZOPg5Kkkmp8VxOfy5lQsAHsaoUz3vkTXU8oqCw=; b=GTy5pZSvfnY/zhRVUMVLBleTLjiKjCQxK0BODFBoelQ0cnDfH4EbNrxqQOlih8erih dYVWKOm8xcoJfiXchQnmFWba8w/lxjiKLpGU66J/8IcXOVR4ZoC5fPCdc86349K6CGm3 C1XgS439F2/SynXqEA0a3F1Wy5JGgX9na2HusGEdU8Xm6h1EkwiDR2hKV2HLTq4/IGls OJyjUMX0Uk8jPgRCGH4rT62ym0Oy6GlebiI+0zwldVIPIQn/Tfdv+vNQ+I85mWpOssg3 A16dNgTTUPDhdOiwPvvf0OWtbN84ja/GQ0/2lzMcTnAKpZbEDhxJe4MkVljI8/xb3sJo qR3Q== 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=kDs65ZOPg5Kkkmp8VxOfy5lQsAHsaoUz3vkTXU8oqCw=; b=hG5uYWB8mIDb42E6/gogOYZShm5rjI0343aMAejA3sDOxN0sOnAgP5Y5+x77URvddo dze/VGaHYNulTak7uferzlPclLtV0sBNRo1w7JRsdQ47Xos8MgNfgWSa6HCMSaokpi0/ rZ715YZP6hX8Si/LmDNpRQ42yMe9UPxpNSXsn2ioQatZ6Hr6mmb0mCR11M3huemsA0rs iAhPDxH+yJeji0m1LC49bdeoQUcyrIzjdTlePAqsIZjSm6MHWlVQv/R7MpCX9HII0oKs ngOdEgB47wNcSWQW/j0YJs+mHwdNGaiOOHOsaPLt0RdxQg17Ri/Rn5sOzOy21s7s1yJe dqxA== X-Gm-Message-State: AOAM533FcUUCJ8EQLwLiaKgcal8stZxlega5Fex04PepCTL0T6FCGEp2 NjXBmku61UbCUxDaVmA/mNsIzwuE+MKc0Q== X-Google-Smtp-Source: ABdhPJwnYWkQDqB+KIwolgxmal+1y3IQ41RbfszixxpPxwKfqllSE7ezfVm2utm7nKx2C2isauX3tQ== X-Received: by 2002:a17:902:8644:b0:153:9f01:2090 with SMTP id y4-20020a170902864400b001539f012090mr4371462plt.101.1651341233200; Sat, 30 Apr 2022 10:53:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 10/17] target/m68k: Implement TRAPcc Date: Sat, 30 Apr 2022 10:53:35 -0700 Message-Id: <20220430175342.370628-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342109559100002 Content-Type: text/plain; charset="utf-8" Resolves: https://gitlab.com/qemu-project/qemu/-/issues/754 Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- target/m68k/cpu.h | 2 ++ linux-user/m68k/cpu_loop.c | 1 + target/m68k/cpu.c | 1 + target/m68k/op_helper.c | 6 +---- target/m68k/translate.c | 49 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 5 deletions(-) diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 558c3c67d6..4d8f48e8c7 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -534,6 +534,8 @@ enum m68k_features { M68K_FEATURE_MOVEC, /* Unaligned data accesses (680[2346]0) */ M68K_FEATURE_UNALIGNED_DATA, + /* TRAPcc insn. (680[2346]0, and CPU32) */ + M68K_FEATURE_TRAPCC, }; =20 static inline int m68k_feature(CPUM68KState *env, int feature) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 000bb44cc3..5007b24c03 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -48,6 +48,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: + case EXCP_TRAPCC: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index c7aeb7da9c..5f778773d1 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -162,6 +162,7 @@ static void m68020_cpu_initfn(Object *obj) m68k_set_feature(env, M68K_FEATURE_CHK2); m68k_set_feature(env, M68K_FEATURE_MSP); m68k_set_feature(env, M68K_FEATURE_UNALIGNED_DATA); + m68k_set_feature(env, M68K_FEATURE_TRAPCC); } =20 /* diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index aa62158eb9..61948d92bb 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -399,14 +399,10 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 - case EXCP_TRAPCC: - /* FIXME: addr is not only env->pc */ - do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); - break; - case EXCP_CHK: case EXCP_DIV0: case EXCP_TRACE: + case EXCP_TRAPCC: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 399d9232e4..c4fe8abc03 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4879,6 +4879,54 @@ DISAS_INSN(trap) gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } =20 +static void do_trapcc(DisasContext *s, DisasCompare *c) +{ + if (c->tcond !=3D TCG_COND_NEVER) { + TCGLabel *over =3D NULL; + + update_cc_op(s); + + if (c->tcond !=3D TCG_COND_ALWAYS) { + /* Jump over if !c. */ + over =3D gen_new_label(); + tcg_gen_brcond_i32(tcg_invert_cond(c->tcond), c->v1, c->v2, ov= er); + } + + tcg_gen_movi_i32(QREG_PC, s->pc); + gen_raise_exception_format2(s, EXCP_TRAPCC, s->base.pc_next); + + if (over !=3D NULL) { + gen_set_label(over); + s->base.is_jmp =3D DISAS_NEXT; + } + } + free_cond(c); +} + +DISAS_INSN(trapcc) +{ + DisasCompare c; + + /* Consume and discard the immediate operand. */ + switch (extract32(insn, 0, 3)) { + case 2: /* trapcc.w */ + (void)read_im16(env, s); + break; + case 3: /* trapcc.l */ + (void)read_im32(env, s); + break; + case 4: /* trapcc (no operand) */ + break; + default: + /* Illegal insn */ + disas_undef(env, s, insn); + return; + } + + gen_cc_cond(&c, s, extract32(insn, 8, 4)); + do_trapcc(s, &c); +} + static void gen_load_fcr(DisasContext *s, TCGv res, int reg) { switch (reg) { @@ -6050,6 +6098,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(scc, 50c0, f0f8, CF_ISA_A); /* Scc.B Dx */ INSN(scc, 50c0, f0c0, M68000); /* Scc.B */ INSN(dbcc, 50c8, f0f8, M68000); + INSN(trapcc, 50f8, f0f8, TRAPCC); INSN(tpf, 51f8, fff8, CF_ISA_A); =20 /* Branch instructions. */ --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341825; cv=none; d=zohomail.com; s=zohoarc; b=LYSj3FE+4AQn+bCC5jPzSmn895xG6EvN7jqoFTqcTJ7y1Y+oO9YvZFDxgNMfik+HEk6yt4LSfeg6FHec4bjfp+exC8KcmVjwD0jY6HHYsYjmszPB+/vhWtxVdWt/SDzmVBhXVMXQeLCPdDnAqKwmaUPu3YvfZrKXGW5K5pxk3rM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341825; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oRQ/mar5G+infSJc2ilEsVMhvFAJHQK4f6Z4DpycXng=; b=GJ8UV+50FK7VJjgttXEpDUqIxwxzSQDBX27Xi+fwInOoozey3Vdg3yvbIUhTGvvPGx//VWoekzngnyGN9qFhjkFbeWn6/EwPO46dQ3KJDdOv8+s0Kih7Gx6oWdKT4V1Q4fGheuWDtdgDoEjloG6Dmalvr6I07cr9zA/MHCFCcaA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341825760737.1906024955346; Sat, 30 Apr 2022 11:03:45 -0700 (PDT) Received: from localhost ([::1]:54862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrRY-00027x-NZ for importer@patchew.org; Sat, 30 Apr 2022 14:03:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI5-0004gD-3k for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:57 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:43668) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI3-00083U-6R for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:56 -0400 Received: by mail-pg1-x534.google.com with SMTP id q76so5757643pgq.10 for ; Sat, 30 Apr 2022 10:53:54 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=oRQ/mar5G+infSJc2ilEsVMhvFAJHQK4f6Z4DpycXng=; b=B5EzusbRaKIs5/osk46dWpWhp1IBzqQJUhC8miGqWyYajWJuQ4oqw3uDzJiezGKFnV I4XLJEi+aM/FQj63yzOL90tqGKwAuZjGzJapv/Ynj1reZZkxjK+jB3Qk7fO3OGeVOB4t fRABalxbQWBQOOajpsYIEk3VLVr4U3XyOdiFgN/q04NWJhyYvZMppBfDzGYBbP25JiRG JH6oPjtnnNxnnSATcj9Ove8cIcwk55KBVcQkQM3FBR8W/WsMoORLfqx++rKhdOby7B+Y 7zV2kc6s5ZmgE5Cs1Fpy0LF5lXVHf3pIaJbTUTooPPzAjJwnPW+QKLGomnsLa4Yb54H5 b54Q== 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=oRQ/mar5G+infSJc2ilEsVMhvFAJHQK4f6Z4DpycXng=; b=7TO063OiQgM0pbfcwJGDm3IPm/rOdC6jD6LYLL7VlfcWnsV3g5HIhMO+4YPr1VXeWP Ou2IW7BArnbiRBmMnfs3pUE3wF7Vx2XXNyYPtV1AtzFCf5R2fCtQGegPwZI2CEPrOp54 bMahrCpEq+B06G8AQt1ZHN7Dm5y2A5rFWnrWfDTBHHTqxXSV/2ki8/1g+L88g8eRBZwG G1E4VA8xScfBMNQS5oBoPva6Pmycy3heFO/qnfoC5nOgnita4qMgJaCTE2/Sy+OzNUAF NNiMKEZ1SjQ7KpfRThs8KktpB7pdS0ErOeJKa6Eq14LYALUbVpw+c3H5w/sKQxT0U3vN eljw== X-Gm-Message-State: AOAM533HH7uCmJ5h6wY9AYkd1ZiYhwWEVWArcHpeZfQMYc5n845Og71Y cgoKjoDQ/rdyzFs6K1JACX4fAU/ECEKsJw== X-Google-Smtp-Source: ABdhPJwvmJ7ZFAo8061vI/clZ0Qm6MDsGQ4RZqueYQP+7GFESvaSsDUVzyanpFOHQj1jrjVFq4dL5Q== X-Received: by 2002:a63:18f:0:b0:37c:4671:a2ce with SMTP id 137-20020a63018f000000b0037c4671a2cemr3888862pgb.429.1651341233958; Sat, 30 Apr 2022 10:53:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 11/17] target/m68k: Implement TPF in terms of TRAPcc Date: Sat, 30 Apr 2022 10:53:36 -0700 Message-Id: <20220430175342.370628-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341827682100001 Content-Type: text/plain; charset="utf-8" TPF stands for "trap false", and is a long-form nop for ColdFire. Re-use the immediate consumption code from trapcc; the insn will already expand to a nop because of the TCG_COND_NEVER test within do_trapcc. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/m68k/translate.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index c4fe8abc03..bb5ed1b7b1 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -3075,22 +3075,6 @@ DISAS_INSN(addsubq) tcg_temp_free(dest); } =20 -DISAS_INSN(tpf) -{ - switch (insn & 7) { - case 2: /* One extension word. */ - s->pc +=3D 2; - break; - case 3: /* Two extension words. */ - s->pc +=3D 4; - break; - case 4: /* No extension words. */ - break; - default: - disas_undef(env, s, insn); - } -} - DISAS_INSN(branch) { int32_t offset; @@ -6099,7 +6083,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(scc, 50c0, f0c0, M68000); /* Scc.B */ INSN(dbcc, 50c8, f0f8, M68000); INSN(trapcc, 50f8, f0f8, TRAPCC); - INSN(tpf, 51f8, fff8, CF_ISA_A); + INSN(trapcc, 51f8, fff8, CF_ISA_A); /* TPF (trapf) */ =20 /* Branch instructions. */ BASE(branch, 6000, f000); --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342007; cv=none; d=zohomail.com; s=zohoarc; b=Ayn2V2a6TeB8Zpe6Y94/5Y6D81iL1qb5k6g9lGuFp/tuZ4lVlJCHNebUmixMpk4EquXASLPtB/k21AfM7il4ZuzP8/b5eHJtWYF1iubHkpzTYBGOOOXgvX5yYPBbJUWp/7novX+RD1/gR2lnNx/CF/4F5zYFDcG/rMhP0rqr1To= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342007; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8VjWHa4+EEAsb2rxF9krBBAxcFamsv8YuijfZ6HxZ44=; b=JlJy96t34pUpE7KQ4Q/gbpIw+nnCUvR5FCXiYwUDRs32ew3nwTmCaD66IKHDPCn+lNGaA/oGYh8hJ9siJGszX2NRR/3jh5/0NOY1d/aVnNaEUprSq8FghYNmwpfGR7/WqvahAMjQ6J8019p+N5jelK7PZ5+gsfIhD28whfBaZvY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342007679863.4434732373961; Sat, 30 Apr 2022 11:06:47 -0700 (PDT) Received: from localhost ([::1]:60890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrUU-0006Gj-Ho for importer@patchew.org; Sat, 30 Apr 2022 14:06:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33410) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI6-0004gq-If for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:58 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]:36735) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI4-00083c-Rz for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:58 -0400 Received: by mail-pl1-x635.google.com with SMTP id n14so2721606plf.3 for ; Sat, 30 Apr 2022 10:53:55 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53:54 -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=8VjWHa4+EEAsb2rxF9krBBAxcFamsv8YuijfZ6HxZ44=; b=yuurYXXgMZ3znhmT+9XI7ISihB5SlP784UloyulyQCAL7Xcf4lRpLH5nErKZApL/CZ 8SNOyFC33PzQFjgODNBDMv6ZmMs7sVhAel/zjvq5Yv9Z96Lad3x0NXylkTguPFEvgE2u rnfi0A0UMNxnb+4g2svLct+lHA5HIruxg0HXtE/h7JZ9pCrtk2fK5YOXI6bZZqvUiDH1 Gjqq2sPUbAE60MmSCuSG3P4l8G2ubdQ61bx4Mwbhlf7QmtBUleL+dyA/+X7GqzFyDDs2 vHCHb0t+Jii68HpfQtYkL7MOshc3CuoPCPy5p6bZX0Cu7ShLCRQeVVfzy8IaM4zb2H5E vavA== 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=8VjWHa4+EEAsb2rxF9krBBAxcFamsv8YuijfZ6HxZ44=; b=yOdOsxjpJr0E+uquCbPMzcUXLVoypl73pX80i5KYomMcaENHne1DMP6lPHzz1SqF+A TMD+gXwC/3pcoW6TDEOGrKUfdE46wwryKt+uuvmu5W+PTbLF9er0CRsQUl/vrQLUfZGx 1i/dqGtH6TmvxpA0vpl1XQ+5CnPPBxhBHLjquyVtku7+LR6Ccaupy6Nppg/gwHE+JLbj FhzKyyMfY+h3v6TF+wT+zPuQii1VA+GKqloMReBS7G524H1KR7ZdFmRkOtKs2Ex+C3MO Jro/THGjl3WDV6a3gWRCZcMe3/F1156gtcP5gquOLjLT6lxsIZfVL9u6YBit5I8LEayf TOcA== X-Gm-Message-State: AOAM532r4ronrjUyCvA/2AsZi4a0WYOPJ3PiFKvfQ/DeaYNmZXvkPaT/ pQpHj6UDQDtkMS91TfVwkcb9VkXI/R6RFA== X-Google-Smtp-Source: ABdhPJxjZyySX5fwYcAXNTCF9wcbj4Dd64cppDWyvJWPAOmapNLLp5/miMVuTETEOZ0dreimK7uwug== X-Received: by 2002:a17:902:c941:b0:15d:37b0:2d26 with SMTP id i1-20020a170902c94100b0015d37b02d26mr4565192pla.67.1651341234865; Sat, 30 Apr 2022 10:53:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 12/17] target/m68k: Implement TRAPV Date: Sat, 30 Apr 2022 10:53:37 -0700 Message-Id: <20220430175342.370628-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342009153100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- target/m68k/translate.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index bb5ed1b7b1..0cd7ef89e3 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4911,6 +4911,14 @@ DISAS_INSN(trapcc) do_trapcc(s, &c); } =20 +DISAS_INSN(trapv) +{ + DisasCompare c; + + gen_cc_cond(&c, s, 9); /* V set */ + do_trapcc(s, &c); +} + static void gen_load_fcr(DisasContext *s, TCGv res, int reg) { switch (reg) { @@ -6074,6 +6082,7 @@ void register_m68k_insns (CPUM68KState *env) BASE(nop, 4e71, ffff); INSN(rtd, 4e74, ffff, RTD); BASE(rts, 4e75, ffff); + INSN(trapv, 4e76, ffff, M68000); INSN(rtr, 4e77, ffff, M68000); BASE(jump, 4e80, ffc0); BASE(jump, 4ec0, ffc0); --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342268; cv=none; d=zohomail.com; s=zohoarc; b=b9lgidSkuvkK/8Hh/hQHeObY0/XhU+fiUMwGwaKgc3Me8PjHkfVbKpI2YqgCthrb6hNH/la/aW/oIFZi9eHuyFUtqkTD9e9HamxTIDsfvcsZn2lGPMFDGpsePDHHULzOOdly9uwCeDEXM2P7PC39bHMTCI9anK0d7ebhomcjD5k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342268; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DjrjylQ1BROO/szmSr2u/qgefotDd4xpG3+xntl3yXw=; b=XoE0JneXP8PWEzhiWWhZzN9I7m1QlG/mwgFfbvGMn2NFslNKFGXxMyE+4i3x3mS7+01R3BSEXglmehTnsgrh7nVHziM5WQ+rfQ0kjPbUhouRX89nrpebSmgD1bwRJTp5JNe/C2nJl+s3U/ODYRl/u09m0W8dCB7zkhixV2hS0gI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342268211553.5605388953659; Sat, 30 Apr 2022 11:11:08 -0700 (PDT) Received: from localhost ([::1]:41072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrYh-0003bj-0h for importer@patchew.org; Sat, 30 Apr 2022 14:11:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33412) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI6-0004gr-JX for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:58 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:43969) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI5-00083i-6u for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:58 -0400 Received: by mail-pf1-x42e.google.com with SMTP id y14so9363704pfe.10 for ; Sat, 30 Apr 2022 10:53:56 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=DjrjylQ1BROO/szmSr2u/qgefotDd4xpG3+xntl3yXw=; b=K+WmoVS9DJOPGxNnWnKxMbkR6TN1rKXHg6Ngimp/CnahjDGKS79iSIH7liIbT1pcg4 Bfok/aDliL461jqtqVBqxHZLidIAKVzhdSIKt1fSXWdSboGFt9OBXTYsXzy9600hG7di 0jHDcKRo6cYwam661y11SQXSftG+YYvUbKTcFXZmeILrgW9qF8hlllBlUpN+BsRZDR0T uWbh3+YkNgjtnMMxTO0asJV/RyJwJkWl+hcakHyFC0g3+172pKsiQcaO1iIvioBZFOXe +2nCeonDP4Uxo7kr1N4asfBSsbZ7dKo7huKqV87xgESs3O14juDEbppaC2usC8LMrvzJ elLQ== 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=DjrjylQ1BROO/szmSr2u/qgefotDd4xpG3+xntl3yXw=; b=MFlXo4bGYHbZNGwQAK+fEnahA+gSjFgHXlgGoSOhceaRrBVanI7JOWm4n6gTulBjOU JAA7QziOHVLdG0zSAMYwcLlOqaEntEcOUP0kVHcIlxpobIKZ6AOVN0R6gPHlFnVH83kH hG7cKkKqYr2i7TGxnbbHTMb050IgD8VOfHda5G6rWoOEaotpyZkcE+OsMMxdTABtc+oe aqOg/3ZVbJtxfrWXJH3ijQmETn1AV0cK8wQLQ1RXVaFTHTfFSyvj4uaP3KAaScObs4XG uz0leP8xNxEkQoD7lbO6wUpPykZEvVJBCQdbKtDBRMMo5TQlFh4AAJNn6IjOTXreOVbu ifyA== X-Gm-Message-State: AOAM532+tgMGSPyynr8VNrgq3fX6s1e465qs2A5EeQ1sWsf8KjTTeYVn 3pbOpzdJW/1u7dvetiVMcHWosQOwbkMl9g== X-Google-Smtp-Source: ABdhPJw4ad1yKv+fLGJtwiEJyemyplNEJKw9wpzy44uRQrWUZL/kFuFoCUTK0yJQvE52kp7nISG/GA== X-Received: by 2002:a63:164f:0:b0:3a2:ced0:3327 with SMTP id 15-20020a63164f000000b003a2ced03327mr3812001pgw.425.1651341235862; Sat, 30 Apr 2022 10:53:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 13/17] target/m68k: Implement FTRAPcc Date: Sat, 30 Apr 2022 10:53:38 -0700 Message-Id: <20220430175342.370628-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342270185100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- target/m68k/translate.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 0cd7ef89e3..a3141d7f77 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5567,6 +5567,35 @@ DISAS_INSN(fscc) tcg_temp_free(tmp); } =20 +DISAS_INSN(ftrapcc) +{ + DisasCompare c; + uint16_t ext; + int cond; + + ext =3D read_im16(env, s); + cond =3D ext & 0x3f; + + /* Consume and discard the immediate operand. */ + switch (extract32(insn, 0, 3)) { + case 2: /* ftrapcc.w */ + (void)read_im16(env, s); + break; + case 3: /* ftrapcc.l */ + (void)read_im32(env, s); + break; + case 4: /* ftrapcc (no operand) */ + break; + default: + /* Illegal insn */ + disas_undef(env, s, insn); + return; + } + + gen_fcc_cond(&c, s, cond); + do_trapcc(s, &c); +} + #if defined(CONFIG_SOFTMMU) DISAS_INSN(frestore) { @@ -6190,6 +6219,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(fbcc, f280, ffc0, CF_FPU); INSN(fpu, f200, ffc0, FPU); INSN(fscc, f240, ffc0, FPU); + INSN(ftrapcc, f278, fff8, FPU); INSN(fbcc, f280, ff80, FPU); #if defined(CONFIG_SOFTMMU) INSN(frestore, f340, ffc0, CF_FPU); --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342405; cv=none; d=zohomail.com; s=zohoarc; b=LtyTm7WTUYxldzhrUk2NYtW4cScFu+IfQ3ER59Wce4sJXUu9NGB/g3z3GkZDFDrp0Nqh/0r8AjUCp0CKVMpkVrhnJX0Ms7GC3Jswdz39QHVi0/Y9cQ8/RK7xycQQdEQ/30BqTEcvAxW7E5hnEQcEAWrMEthGr1INp4Dd9Fqtg7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342405; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oS4SpFhfIqgKlDgeO+bhyHZ/w+64dvw7Bn99nQxMQ8M=; b=ZVT+5W/ako8SG3EkXfqArpWt6lmMYNNwfcmQeTzxT+N6uWioAzvyF0U1ZLe26Csfxh+EUK4UNKC0wHCOajTpxI9ATaPHb422wHCrfpSurB8VjogndL09vu9KGEEXhp9u38miLsPUt0rtRCJcf5luQC6k2Teq/jVLXJSxo/aTv6M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342405020265.7180528022859; Sat, 30 Apr 2022 11:13:25 -0700 (PDT) Received: from localhost ([::1]:45390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrat-0006TH-Tb for importer@patchew.org; Sat, 30 Apr 2022 14:13:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33434) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrI8-0004ju-Pt for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:01 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:50988) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI6-00083x-0l for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:53:59 -0400 Received: by mail-pj1-x1036.google.com with SMTP id iq10so9630259pjb.0 for ; Sat, 30 Apr 2022 10:53:57 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=oS4SpFhfIqgKlDgeO+bhyHZ/w+64dvw7Bn99nQxMQ8M=; b=sSQ+qxw4sxR4Tq4xNrN+yDVF70mhF4yfFSx2hrNb5lY406SF1632DP0Q9eTVWjdLCv tyXIYSP4l4V3Xj1Q5MbR+wFUzquaYxr1Wz2IdZ0e66Qi0RU5gT19kWuVyI1rvI5UPjPB T6GEGoy4S8jrPs8nReKuYXXjjfYEgKjYpAHzTkN1A8bW1HP6dhu8MKkTt/u23CWt/sLz vXGCYTsDkGI4D7lw2p82dMluwPOP78+C9HIN3VStlsN9QnjZIRjxArBafIg3CuEHJD2G RetBZnMr/0Csd7pGfK6U9tPxSJbH4ZZ9eH6SKJSM1XAB31KZXnGyllnIvGYImwAyrUdj tuBw== 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=oS4SpFhfIqgKlDgeO+bhyHZ/w+64dvw7Bn99nQxMQ8M=; b=qvsoT3fQF0AMvJ4yz0ide1CbvJSrFVU6OkSkTRcYUw0hPWuaO+3nLywvsgfU7yngXR 2quqGTmZBJ6nlQjDi/rEGnBFfwMXdzzKoXdQggtH9VNECl3DkdIfdl/YwdAQIiTD7/bq ux3UrbMQtLXOR99+qYsBz39DMaKTO6aessdYelzLtYsgpmh+B1Gmvb1dLKOZE1cmbf5U CxJVbWzv5MBNB6FOD80jPJQg1c0ecZcni1mUKCGH3/mR3/CHuqWhTcwNU5O8AOoxdW7i EY0eA1dVnTsSmSUJQ/o8KiR+KBqX7Hx7F2s6DQAS0fJdmnvgwG4tiOAAaiMs5XphGWLC /EiQ== X-Gm-Message-State: AOAM53282KpYmhf/Hu9byIS8sssf/vwkRmG6GsNtw/1/sFW9y2RAgyOe NNQPt1J88s3KLzgsz2JjRYBaOmR5MD2gcg== X-Google-Smtp-Source: ABdhPJwgqZn3HjbQrD3WuAGE4GTgMcUy//bMNaFTcKF7h4ikytgHQhijC5xHYhBZ7RlqOLatc0cbGQ== X-Received: by 2002:a17:902:d5ce:b0:158:48db:9719 with SMTP id g14-20020a170902d5ce00b0015848db9719mr4713419plh.7.1651341236742; Sat, 30 Apr 2022 10:53:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 14/17] tests/tcg/m68k: Add trap.c Date: Sat, 30 Apr 2022 10:53:39 -0700 Message-Id: <20220430175342.370628-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342406833100001 Content-Type: text/plain; charset="utf-8" Test various trap instructions: chk, div, trap, trapv, trapcc, ftrapcc, and the signals and addresses that we expect from them. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- tests/tcg/m68k/trap.c | 129 +++++++++++++++++++++++++++++++++ tests/tcg/m68k/Makefile.target | 3 + 2 files changed, 132 insertions(+) create mode 100644 tests/tcg/m68k/trap.c diff --git a/tests/tcg/m68k/trap.c b/tests/tcg/m68k/trap.c new file mode 100644 index 0000000000..08ab56b2ca --- /dev/null +++ b/tests/tcg/m68k/trap.c @@ -0,0 +1,129 @@ +/* + * Test m68k trap addresses. + */ + +#define _GNU_SOURCE 1 +#include +#include +#include + +static int expect_sig; +static int expect_si_code; +static void *expect_si_addr; +static greg_t expect_mc_pc; +static volatile int got_signal; + +static void sig_handler(int sig, siginfo_t *si, void *puc) +{ + ucontext_t *uc =3D puc; + mcontext_t *mc =3D &uc->uc_mcontext; + + assert(sig =3D=3D expect_sig); + assert(si->si_code =3D=3D expect_si_code); + assert(si->si_addr =3D=3D expect_si_addr); + assert(mc->gregs[R_PC] =3D=3D expect_mc_pc); + + got_signal =3D 1; +} + +#define FMT_INS [ad] "a"(&expect_si_addr), [pc] "a"(&expect_mc_pc) +#define FMT0_STR(S) \ + "move.l #1f, (%[ad])\n\tmove.l #1f, (%[pc])\n" S "\n1:\n" +#define FMT2_STR(S) \ + "move.l #0f, (%[ad])\n\tmove.l #1f, (%[pc])\n" S "\n1:\n" + +#define CHECK_SIG do { assert(got_signal); got_signal =3D 0; } while (0) + +int main(int argc, char **argv) +{ + struct sigaction act =3D { + .sa_sigaction =3D sig_handler, + .sa_flags =3D SA_SIGINFO + }; + int t0, t1; + + sigaction(SIGILL, &act, NULL); + sigaction(SIGTRAP, &act, NULL); + sigaction(SIGFPE, &act, NULL); + + expect_sig =3D SIGFPE; + expect_si_code =3D FPE_INTOVF; + asm volatile(FMT2_STR("0:\tchk %0, %1") : : "d"(0), "d"(-1), FMT_INS); + CHECK_SIG; + +#if 0 + /* FIXME: chk2 not correctly translated. */ + int bounds[2] =3D { 0, 1 }; + asm volatile(FMT2_STR("0:\tchk2.l %0, %1") + : : "m"(bounds), "d"(2), FMT_INS); + CHECK_SIG; +#endif + + asm volatile(FMT2_STR("cmp.l %0, %1\n0:\ttrapv") + : : "d"(INT_MIN), "d"(1), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("cmp.l %0, %0\n0:\ttrapeq") + : : "d"(0), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("cmp.l %0, %0\n0:\ttrapeq.w #0x1234") + : : "d"(0), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("cmp.l %0, %0\n0:\ttrapeq.l #0x12345678") + : : "d"(0), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("fcmp.x %0, %0\n0:\tftrapeq") + : : "f"(0.0L), FMT_INS); + CHECK_SIG; + + expect_si_code =3D FPE_INTDIV; + + asm volatile(FMT2_STR("0:\tdivs.w %1, %0") + : "=3Dd"(t0) : "d"(0), "0"(1), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("0:\tdivsl.l %2, %1:%0") + : "=3Dd"(t0), "=3Dd"(t1) : "d"(0), "0"(1), FMT_INS); + CHECK_SIG; + + expect_sig =3D SIGILL; + expect_si_code =3D ILL_ILLOPN; + asm volatile(FMT0_STR("trap #1") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #2") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #3") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #4") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #5") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #6") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #7") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #8") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #9") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #10") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #11") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #12") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #13") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #14") : : FMT_INS); + CHECK_SIG; + + expect_sig =3D SIGTRAP; + expect_si_code =3D TRAP_BRKPT; + asm volatile(FMT0_STR("trap #15") : : FMT_INS); + CHECK_SIG; + + return 0; +} diff --git a/tests/tcg/m68k/Makefile.target b/tests/tcg/m68k/Makefile.target index 62f109eef4..1163c7ef03 100644 --- a/tests/tcg/m68k/Makefile.target +++ b/tests/tcg/m68k/Makefile.target @@ -3,5 +3,8 @@ # m68k specific tweaks - specifically masking out broken tests # =20 +VPATH +=3D $(SRC_PATH)/tests/tcg/m68k +TESTS +=3D trap + # On m68k Linux supports 4k and 8k pages (but 8k is currently broken) EXTRA_RUNS+=3Drun-test-mmap-4096 # run-test-mmap-8192 --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651341571; cv=none; d=zohomail.com; s=zohoarc; b=SU6GJbzqTWOFxN15ALPIGcsQY88O8cJ9yuGzRUmyrZXd04rLf9HaXZepQz1UPtIbQUCBHw7cGUBHU1N05TGmIGqlxNd8P5yRpdifN55UChXepPbqqMiWzleNUbqecVgz3KQ9H3V3S7z9xhI023Lr3NAudURW+B8egxXipjXPSEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651341571; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=b3iKWHzTXF26kftXX52UeTKWTAF+8KLyV5YA/7fyWe0=; b=Aybe5FgztMTuPGRp/AU+9m5wYR2imLyXVvXntcB4h+caKKnchZ5XWW4Xqr1oeFQ8KpoWpDCa5vFpSlfhZTsipISlNbRDKvEIBACEUr/NX31q6Xe84WBcmZNsqXc8DBU6IyBMyuaydmr770sBUfbDlBYgoOXEi1yhBgnhiaSCSQE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651341571589578.5235995202509; Sat, 30 Apr 2022 10:59:31 -0700 (PDT) Received: from localhost ([::1]:46254 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrNS-0004hB-Hi for importer@patchew.org; Sat, 30 Apr 2022 13:59:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33460) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrIA-0004kO-10 for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:02 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:43928) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI7-000844-OB for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:01 -0400 Received: by mail-pl1-x62e.google.com with SMTP id i17so434870pla.10 for ; Sat, 30 Apr 2022 10:53:58 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=b3iKWHzTXF26kftXX52UeTKWTAF+8KLyV5YA/7fyWe0=; b=FjXovBdjtruO2XddN/uaxyu1fJ4eckADA6GwcSC6yErZjllLehfpdI7/g9/+gWzFU4 Lgq/MEN1QQnV10hlszrF/GnhOKmlRuHMi4UWIEc9WQWNRLj9WHaRrzJPVgGKxGbripj9 +NS/4C7OVEPLJ4jmq2Fd2+lmD6hjGvWxsHORbxLZ0lsUITkMsrd5bkFGcw0cjYvBxgg/ bwNgL5EfeBfx9An0drtZeZgMz144E3SFokM79CpkV9VoOXzoP+C/znS+FprsU2vrnSW9 gIp3XrmO2n8NUON4eZVyYLOg8/ALkRfZTyGZ+BL+W8wT9opreG5cNxtMMzt2Cj3T0umS Ba4Q== 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=b3iKWHzTXF26kftXX52UeTKWTAF+8KLyV5YA/7fyWe0=; b=BguLcB56SEJ5tKhUxjF3tTUcpE08zkLr8KTJpei1lEMF07ge9Ho1CM7MoNISvMA97o duIdMKeWpqPicexz2FyEqquMTxQnAjdG1gn0b00FvBhOWIHl8FcqNKGvy4aR1LxD/TCi ujVQk6DOoxLbuZjbGktAO9Q3nVEVtR8e5N4b55WFENWfKkhdRi/WJbIewUCnii9RPY9y OcLT5ahB9tULd2EMyvlYq6f2SuZ6VNm8yk6Inzaijl7FV+WEX3+gQetWCKjL2vC0atyy oBIPl+2gpJAGKbL+iF0gN5+IpAr1vrstK/13PaN1/aUmD29Jq/36OSRF0sIpEf255Om7 Pb9Q== X-Gm-Message-State: AOAM5331EI7wYAs3bZC+uNkWPGLHlwbh7fBePwzTMp9K/WSjPnZuamph v10I51IBJ09b4X3zm6EiPRZW7tSOD8d27Q== X-Google-Smtp-Source: ABdhPJz3OgKJd80FN3nZZrfL01RapOK+J+5YHMDMibJrGogWhNA/WWrSgzxn2SB4QKyHi7bWZHt1yQ== X-Received: by 2002:a17:902:f792:b0:153:1566:18 with SMTP id q18-20020a170902f79200b0015315660018mr4672101pln.115.1651341237678; Sat, 30 Apr 2022 10:53:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 15/17] linux-user/strace: Fix print_syscall_err Date: Sat, 30 Apr 2022 10:53:40 -0700 Message-Id: <20220430175342.370628-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651341572501100001 Errors are not all negative numbers, but only the top 4k. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- linux-user/strace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/strace.c b/linux-user/strace.c index 2cdbf030ba..dc4f810bd3 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -684,12 +684,12 @@ print_ipc(void *cpu_env, const struct syscallname *na= me, */ =20 static bool -print_syscall_err(abi_long ret) +print_syscall_err(abi_ulong ret) { const char *errstr; =20 qemu_log(" =3D "); - if (ret < 0) { + if (ret > (abi_ulong)-4096) { errstr =3D target_strerror(-ret); if (errstr) { qemu_log("-1 errno=3D%d (%s)", (int)-ret, errstr); --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342109; cv=none; d=zohomail.com; s=zohoarc; b=Zf1C2EJkQotBzBN2uZ07aKNDiyIW/q7eeqdJAlV2Q1g6Rk/2kxEDm5I/BWPNyxqmpJuvPejh9Tz20pPmKPN46rwYCYgpOiqQJ/RoHpZMXgMTRK2POOQ17Irv6PrDjCgJk7PMbUIelTinBLwRplzUo6JuLofXT3h21LE/nmX3l9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342109; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gj8aT9K8/vY1AA3/2X3YXf7zoSHmmenH8vDdjGXjcZ8=; b=QaUi2T4uhttmhXr7+NtBSeiUDBy7x/494hyk2ovAlvARor96/e1UATEy6sWh8Jv8JzFF7Dywsa0Ul8YliqesWhV7lnrl47WgIutDB+2tAKGAnIKxHvPSuYFIw1qP+rOIWYHDeLoeo4PFZsS/eZrUpxaH+t5bticMO+gCbcmVCac= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342109269289.5879480246896; Sat, 30 Apr 2022 11:08:29 -0700 (PDT) Received: from localhost ([::1]:36910 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrW8-0000hb-Ag for importer@patchew.org; Sat, 30 Apr 2022 14:08:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33458) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrIA-0004kN-0b for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:02 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:36816) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI8-00084J-IK for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:01 -0400 Received: by mail-pg1-x533.google.com with SMTP id g3so8815582pgg.3 for ; Sat, 30 Apr 2022 10:53:59 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=gj8aT9K8/vY1AA3/2X3YXf7zoSHmmenH8vDdjGXjcZ8=; b=v7QxhdWavQc5V53/n0lNekd+E1YHuu31xygHQGV/NfindONWJi6Rme6ZKfdFQzgyk7 6UtkGvI6Op1bMQyAfIOSDtVLvhf/mZanirSK/exY8MH2J31Q+OOnzrCt8rkwBIXmHDGr +rHfkcRGqEKv6VSImqHsZz2Cu5IK1mHcfkWSa3Ajy0Nl8hXUDhzbC+vvvmpp98tJPM7F qqmVG7sqmmoATlWJcYpXOMmXu5/6H/j65A2vA1m2xPwo778Pmu3t5FXFahNkeGdxF6ce wLnrjxyh/8FYk/fcQcIVGQFIntuDmdbRXK8jiYcRZi4YTJ3tZrJ+C2yVAF7h+dYYyqM1 IMRA== 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=gj8aT9K8/vY1AA3/2X3YXf7zoSHmmenH8vDdjGXjcZ8=; b=H2bGY6tq0snjAJtAzj96dYmw6OxzHQ2p8L8pGXe5d01r1Eib+tj3k6yTsaCPGGvmwP eLtp/i6pSnHeFuZVZP/sARJgW4kfgTietjRtGGeaLJqgPP8V8Mw4LVM+f8GFZe8rrT4i xLFlVnYgQdIGPuHsu0IP3NEbm0kbH9uE+8Aim43sJE3aHGCDkiAsuPHsquLcuAVRUnia A2+D8mSYM791OW2OFCZR8TFtXZDjI4TG5JjM9gl8k6opoPeGN1/hfpHmNL2qv+IpPDu0 gw+Cte/vInleAVcDcYt+uGu9OeUUVHPicfLaTGjcqE6JsirRwrp3oQhBOIUXwELwRkTA 6PSA== X-Gm-Message-State: AOAM533vsA7YYiFwySoguOpy06/Tju8EQWQj9DmSYYPkyeYNw1VTo/Hv P7Pl7ikubZmlntewMSDedT8M43HOOgniLA== X-Google-Smtp-Source: ABdhPJygyJ3zlYytmGtUKhAP8UhRR1ZFaaCk1vWVB0PV7fA8IylgVMGIFSR2QV9Am1YS1XpIxnYlmQ== X-Received: by 2002:a63:1117:0:b0:399:2df0:7fb9 with SMTP id g23-20020a631117000000b003992df07fb9mr3987408pgl.40.1651341238681; Sat, 30 Apr 2022 10:53:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 16/17] linux-user/strace: Adjust get_thread_area for m68k Date: Sat, 30 Apr 2022 10:53:41 -0700 Message-Id: <20220430175342.370628-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342109549100001 Content-Type: text/plain; charset="utf-8" Unlike i386, m68k get_thread_area has no arguments. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- linux-user/strace.list | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux-user/strace.list b/linux-user/strace.list index 278596acd1..72e17b1acf 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -384,8 +384,13 @@ { TARGET_NR_getsockopt, "getsockopt" , NULL, NULL, NULL }, #endif #ifdef TARGET_NR_get_thread_area +#if defined(TARGET_I386) && defined(TARGET_ABI32) { TARGET_NR_get_thread_area, "get_thread_area", "%s(0x"TARGET_ABI_FMT_lx")= ", NULL, NULL }, +#elif defined(TARGET_M68K) +{ TARGET_NR_get_thread_area, "get_thread_area" , "%s()", + NULL, print_syscall_ret_addr }, +#endif #endif #ifdef TARGET_NR_gettid { TARGET_NR_gettid, "gettid" , "%s()", NULL, NULL }, --=20 2.34.1 From nobody Mon May 13 12:07:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1651342270; cv=none; d=zohomail.com; s=zohoarc; b=LZylpQzY5PIfv4fiMasOxWdsVwcQIlHZ/5HX30HENeqGhkdMKpEbrcgWz5nZUFLZTlSiWgZlntFJhHzGyohBV+3m9Xd2Hvc3vTr6EMSlv7FpHintru4y7UhNfK9951Cb3NNe6JZz/5/NkD3gkbbpoQiSjsBXcvvP5QB0gGRnuvg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651342270; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qLuJ3kY0B/Vq78Y89l2hbdJvKBIIYeH0UMXub8wd6WI=; b=TI7Qj94HrPCi4BCV02WfCrkY9S6Q5yxyAwojKxHTfCm+veFy88g8w5NrdT0FYhDprZa5sXV/W4udP9Z6YrnoNHdjaVUW/qiIgs9vg2Fog/eOd9hUhGYr1ulpfvTOOXMKX01ljVDNgzeWRBvOQjtUFH07xtq6kPPqCcWn2+NxBi4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651342270373471.8535237927016; Sat, 30 Apr 2022 11:11:10 -0700 (PDT) Received: from localhost ([::1]:41194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkrYj-0003gQ-Ck for importer@patchew.org; Sat, 30 Apr 2022 14:11:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkrIB-0004nj-AX for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:03 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:34780) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nkrI9-00084O-1L for qemu-devel@nongnu.org; Sat, 30 Apr 2022 13:54:03 -0400 Received: by mail-pg1-x533.google.com with SMTP id z21so8821421pgj.1 for ; Sat, 30 Apr 2022 10:54:00 -0700 (PDT) Received: from stoup.. ([71.212.142.129]) by smtp.gmail.com with ESMTPSA id 5-20020a170902c20500b0015e8d4eb282sm1740910pll.204.2022.04.30.10.53.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Apr 2022 10:53: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=qLuJ3kY0B/Vq78Y89l2hbdJvKBIIYeH0UMXub8wd6WI=; b=gQVkNqF3Smny5Ybua0zY9Rz95BZwya97y1092Va/hLnU/oDJODFCW10cX11r/S/hyp 6MvzHJSrWNX8VddPFMZ5WRuHyoTXGsr/LuZuhMsiTWyBOapYhaLtMqEAFY6Xb8UXwvEI YtnLH9UYx/x0MKTvY0mY5BOX1EvoDD6C5j8jvr0oRmjswKf4thohwo+XL0fK5tPbrU/a exOAZxf87k3X39Sx2junLj/LxYwtvuV4iGOxGWSxHFAUmXG9fI/TqAYpbrKeUgHVJ7sN FVEqbNUIME21VEaa+cBnkFpDqLzD8ib7+EC+p5ujUPa4bTwYv0Qh/PF2//As+CkQzoUR hlfQ== 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=qLuJ3kY0B/Vq78Y89l2hbdJvKBIIYeH0UMXub8wd6WI=; b=CweUmDF2aK0TgCQpRtMv9JvqKn02znV+0wQkqHgt+UQhWJHm0yIe8N1ekK1ntVxy3g cmsXide0K3wvJ8+/ZJjQjtQk6zEOE7JIw5EbCvJStv870Os7xwbdYvnaVEur0PPX1uqF cMI1EMBZrkg/Uwqs0OXw08COnEyP2bXm5aws90VJbPB0RL6wsPGEmqeup0Q+OTuC7MMI cegDlF6Fc0TsumO1nKf91fqLrlxJN/8Vqk02KZEVqecHYemM4tXcxkc/MrmKx7Ay/EhL 9bU1oNA+j3riXFyxgrU5lyWNKVG0p9xgluQbL5wWrjiApLhJPh6CpBGSBfLOn226R5V0 fsAA== X-Gm-Message-State: AOAM531XMROVhaiPOs75V3uKYZx2uBqH12qW851+KeXDqbAwFVZSCpID tx9Q/LKABqkmKJjHWYvBfIP9oshto57BLg== X-Google-Smtp-Source: ABdhPJyKwXJu6MrC/DTO5/9AEIU9o6q3wUIyy6R3ZxAsbe5nqie+gO9tofXC2dO4PbrhJbOXgvMRUw== X-Received: by 2002:a05:6a00:1a06:b0:4fc:d6c5:f3d7 with SMTP id g6-20020a056a001a0600b004fcd6c5f3d7mr4315325pfv.53.1651341239810; Sat, 30 Apr 2022 10:53:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v4 17/17] target/m68k: Mark helper_raise_exception as noreturn Date: Sat, 30 Apr 2022 10:53:42 -0700 Message-Id: <20220430175342.370628-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220430175342.370628-1-richard.henderson@linaro.org> References: <20220430175342.370628-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.google.com X-Spam_score_int: -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, T_SCC_BODY_TEXT_LINE=-0.01 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: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1651342272130100003 Content-Type: text/plain; charset="utf-8" Also mark raise_exception_ra and raise_exception, lest we generate a warning about helper_raise_exception returning. Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/m68k/helper.h | 2 +- target/m68k/op_helper.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/target/m68k/helper.h b/target/m68k/helper.h index f016c4c1c2..c9bed2b884 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -109,7 +109,7 @@ DEF_HELPER_3(set_mac_extu, void, env, i32, i32) DEF_HELPER_2(flush_flags, void, env, i32) DEF_HELPER_2(set_ccr, void, env, i32) DEF_HELPER_FLAGS_1(get_ccr, TCG_CALL_NO_WG_SE, i32, env) -DEF_HELPER_2(raise_exception, void, env, i32) +DEF_HELPER_2(raise_exception, noreturn, env, i32) =20 DEF_HELPER_FLAGS_3(bfffo_reg, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32) =20 diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 61948d92bb..d9937ca8dc 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -532,7 +532,8 @@ bool m68k_cpu_exec_interrupt(CPUState *cs, int interrup= t_request) =20 #endif /* !CONFIG_USER_ONLY */ =20 -static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) +G_NORETURN static void +raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) { CPUState *cs =3D env_cpu(env); =20 @@ -540,7 +541,7 @@ static void raise_exception_ra(CPUM68KState *env, int t= t, uintptr_t raddr) cpu_loop_exit_restore(cs, raddr); } =20 -static void raise_exception(CPUM68KState *env, int tt) +G_NORETURN static void raise_exception(CPUM68KState *env, int tt) { raise_exception_ra(env, tt, 0); } --=20 2.34.1