From nobody Sat May 18 07:31:26 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=1647410618; cv=none; d=zohomail.com; s=zohoarc; b=h1LWce3ajp7riTvnn7xv1E1OfIRsnvhh6hEd4eESYBuaEYk+pRJ8mvLvfBrYhZWlqgxHHxAltdnOdI+gqjc1vW887mM3Jpkt+T9pGBVhS4rZvIhCCiDiQg/yvhtOgTJATcBircNilQcStEALKrKPsAtMvs7X2yUf+13rHTKiCxw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410618; 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=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=aZhq/GXs8690mrUbd1ucJ7kSrGc66+dMyag23D9Zad3SwYvwNHfx3sBpDA463yNaTnvkBORivB93LZAtWO/a+6u4mshisaUAEcv3Gt8MOn/ggECEOmHEy1l0vAVsl0EKk2PlUA1rU71Vt2K9T+YdvYriXr2FRQ+3luqk6LLYDnI= 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 16474106187515.403588476601385; Tue, 15 Mar 2022 23:03:38 -0700 (PDT) Received: from localhost ([::1]:60822 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMky-0002P5-3o for importer@patchew.org; Wed, 16 Mar 2022 02:03:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0002DM-4N for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:46 -0400 Received: from [2607:f8b0:4864:20::1029] (port=53155 helo=mail-pj1-x1029.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgG-0006R7-JS for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:45 -0400 Received: by mail-pj1-x1029.google.com with SMTP id v4so1322443pjh.2 for ; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:42 -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=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=Q/6+5ZXz4w3B27yO6K+ylyzoOIxqes3/hpNbFpIzdXSAdBuCq3Dt6I981mL6p1fk2F rQ7fvR7dKVS/0PcmbjIlqqrPZ+XVJrlptgTMpyPKYyGtjBIQBfBS8Qn/6ZO0NGdrT7uf zQOrZu9jc0Peh9mkE9fM1ETlA3972COEcBLdMb6d2HnPm954J2tNILQQLMqLrT/KeMuF 2Fqu5FCC8zpYQd8aWhDI0O/lu9XxWdYnYWbk2M6hPz86Uabdzn/telQF8lDRR570eNaP ntkacRPA7REN6Uh417LzFh0n9YVXbjq5WBabGVRQlH8zf1EOELes0xy0Wn1OL7sipZ+P Jpew== 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=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=x63GAkeJA6vrRvvxrD8pdjr76Aui5flFu7HoRBW0jllhHKbDTEtRHVIGLBLiixc+Y/ NawKthHja65hysPINLxSQiTrACvs3M4K9sT1mIaNXTStfWyckZK8v6j5XBivie/U0Jr+ kqND3u9za/RKWe7AWgB65ap4bCyxs1Dwjj699E//20RKvT5wdiXlC59fTuYQU48Kr09C fCywo6vcLaci78J9svzahOkiCEL1FL8YJEYwEWMTve3xm+Ll4oyMzZtyuQwyGeBjfKNw tqTFbzM/3+d09g9Qo8OvFuhlxdZTsPcoX8giWmeYUei2KIs15B1yJKdDo4EQRIf3WRnq aEbA== X-Gm-Message-State: AOAM532sXK7Gy4HGo8IaUF/wMDI3qyIPeYoSStPTZvUj19Y6E/t3o7YX h5Q+JDfqa0ooCryPNzdgQKHmmCmvtcCxCg== X-Google-Smtp-Source: ABdhPJzuEvKJRsyHQBmTnqZCrV7+sI9qEpe1UwKGLsLRZ1pEUf8Gfo9KRZlygP4xHTnTVd0EAewSoQ== X-Received: by 2002:a17:90a:5797:b0:1bc:56a9:f6c8 with SMTP id g23-20020a17090a579700b001bc56a9f6c8mr8648971pji.12.1647410323194; Tue, 15 Mar 2022 22:58:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 01/17] target/m68k: Raise the TRAPn exception with the correct pc Date: Tue, 15 Mar 2022 22:58:24 -0700 Message-Id: <20220316055840.727571-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1029 (failed) 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::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410619443100003 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 928a18e3cf..a152567624 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -57,7 +57,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 af43c8eab8..af3febdd48 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.25.1 From nobody Sat May 18 07:31:26 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=1647410428; cv=none; d=zohomail.com; s=zohoarc; b=d1jCfgcVJG/jnXost/1TcA6N/JpB+qhcC0lIuP34/BmBkVmHUXLOzcHMjY5TTBZW4CW4iQ+WLz+pezohTf5hkPmwDgeBhYeAd6CmUKTwKonpYKF5PYZnmBrkCkm7/cAtFGOItv03N0MUPbzHRXD7At6RWrhY8FYxlJahABJf8lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410428; 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=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=dQOidzyhf45rlhsE4II0aaZY4A9sXDkkdMeZ1iESfhbVsPLq3xrgQskxrLk8Bcq9JjQFVJpvysxtCQhBZO/nUUQll6Tg0OHTbyBm5VmNGcqOAIs5aWrhWdbpC9vDSgCL8qgEdvujOM511yZcv8+Zox/sIB60GKt95pM/JrAVa3A= 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 164741042854513.53390924101484; Tue, 15 Mar 2022 23:00:28 -0700 (PDT) Received: from localhost ([::1]:52306 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMhv-0004yI-9P for importer@patchew.org; Wed, 16 Mar 2022 02:00:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58690) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0002Db-TS for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: from [2607:f8b0:4864:20::102d] (port=51790 helo=mail-pj1-x102d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgH-0006RI-9A for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:46 -0400 Received: by mail-pj1-x102d.google.com with SMTP id gb19so1328429pjb.1 for ; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:43 -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=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=ooEevScCNJdN2KNP0mFKh5SumxCiRh1CW/j8c9u4fst18QSJU+jwt0Tf0ToKiWeaKg t+neeTQba78HSZ3h+WYfVFkdrBftEose8kxQUEMUXdBHMD/SfhZq3ncjV0LJvZiZUdSd uwAvc/lVSB2RRYsMMP2JJ5TNTBNUH272Ls+4c9NMRIZp0VscTzgArN04nF5cROfIswNO a2UlccKIEk3uNlyi8n5Ex+PjnoUZpttpZD18/XtnMrAPb0/Cms7oMuzSzMbiZ9pdJpXJ eqMlVBmspYNX7Rjssqv2O43cIHevOuXGSMavYK8Z8zah2mpflmOiKPlux/AaquizYhXn U/mA== 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=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=qrs210f/0/3kboUOcxnTuwSCXhrYny7P9rO2hwCbo/IrLmgOk7yFCGC4EkbLiIevnF 7VKrRe4NbGKanomwpsaJj6D0tv7/1vcCKSYv2Xlzlx7S2Gz5hmjFfWylLQgzbZWCaHAg vef6AoegoQGIs8Ea2fYPrS+giiId8VgqvTJengkJ7RQhUqciBxKcNhWI5d5f4QPykZ8U BNOUpW/tTtmfb0hPbwVUvIhvIbKdfWbPiwISQaWSFRNckYSHBxqG+xpA+4IXMp2xkf1Q eIKNbGW9v6kWUcBzMJfJvArNwidhlhF0YJ+NOm0AMfHDwtAwQW9XaNcHokqb1lH4Nfr7 borQ== X-Gm-Message-State: AOAM531vVToauoNxIplHDXq36C8KgDfXFBR9fyKu27Dg4yEDtbRy5Hgs szybxjrpriN2rswSVIYWCNrcOJxqBFCYbg== X-Google-Smtp-Source: ABdhPJy2cN0l+8kJUN7RB131xl6N1Nv56SQ7YG6rv4amtMprX/vtArVEww/ZvxKyc+XjAx6Om+d0RQ== X-Received: by 2002:a17:903:2341:b0:150:2371:ee59 with SMTP id c1-20020a170903234100b001502371ee59mr31212199plh.57.1647410324033; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 02/17] target/m68k: Switch over exception type in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:25 -0700 Message-Id: <20220316055840.727571-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102d (failed) 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::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=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: 1647410430073100001 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.25.1 From nobody Sat May 18 07:31:26 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=1647410426; cv=none; d=zohomail.com; s=zohoarc; b=iZBGN0ZoEbpb6MaYGIjLnWqbKtSs4EvQLd26iHfKRLZ0gVFCLFQQY6X/gtCy2LEBNkvKtNvOx+UONL4b10XGYmKoRcUqVlJ50c3n+T4DuUprTx9IGvSt3VYvY/09JR1fujTdu0PdX+lQTjMpTxKt0hLBgL58pDYkxNEyV11+KqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410426; 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=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=kEAtffsCqtuUXM3879qPJ2MiGahg3ZVjXt/BGeRF31feG+nEQ9J5peJBF+z4wwEnVgTEWgvz6HrVEZdl8ysnW1DmYs+pNLkZK7zpVt39VNJSXQQS3zjfCWQvnaiDF8JgMPYNEvjnu65n9SO7VINV4z8P66qNPFu4Q994HB00A4Y= 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 1647410426293981.7237753681935; Tue, 15 Mar 2022 23:00:26 -0700 (PDT) Received: from localhost ([::1]:52208 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMhs-0004uK-QW for importer@patchew.org; Wed, 16 Mar 2022 02:00:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgJ-0002E5-Mp for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: from [2607:f8b0:4864:20::1032] (port=55283 helo=mail-pj1-x1032.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0006RV-7j for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: by mail-pj1-x1032.google.com with SMTP id b8so1303028pjb.4 for ; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=V/Gmw8eJiU25V1Kr8BDZ/HZMTGWTucmN9cND5W8m6wfSb5bAG45ovLjgxutXIq88Yt ZZQTvGqKThBIU6JR3NK6YNJ3hOrOqrUBGHGGmPTL7hItoDfwe5u4mnfMeL6MkLDVzQr2 byCCwaK2ImElaf7hZoTkp4KXnNB2eJscdPSJPmBwK6qgqtUhHWhU7EYKu7dKIqag+pv9 kZftYbA6U38yJcl8mhkdqF6ofp1vS+4SMwyciUMlbzsKDqddsXOSl0Q4oQA2ElmtRcbA lOhkCARIWXOfpFYCyuPB+MMinESrAQl15tUiXujfZVhchlSPu64Eo0jnnI/rRRQ4F71V VSPg== 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=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=eBUS91oPPCvDN12uJMrb+tkNhXdlG3m/v2xb+UUhcotdiOzuVbdE9nBnkDO+aV8RsP rmoEeEn9rYCJJVjqqjVcfL6Zmb47B04HiPgnI5JOzleOBFI4Gyl/NfRF6qw1QtmPm5u5 1p3WivnqFkhTY+tijnAre2iLHz3Zzubpo5NXSGdRs/wzPBHRv4LoHb7CTxM22LNOfPbC SBdgRgmw909V8WfPsowyb3KP+nlJAclXuK9UVRmXQ40itpvFcWV3ENreMOwtp08HLj4n /+u+vVrWYZFCsgDrknSPHkZq7eSXd3m31AiNlQswvLgTriC8iAiNcJrq3DlshhvbuL92 MIKQ== X-Gm-Message-State: AOAM533MO0H51Tgb8Y9rQ+3J0krAacHy3JiewZyKdAxe9woI4ZmCGpyP 5soCx1pK7pzrwUPiz9GcLr1qlRE9SUi3ug== X-Google-Smtp-Source: ABdhPJwQplIouYHtH0Oz/pjSq9q3RfqaPyR+A8oaqgamqmo4RovvXVmx3jO1aCAcSNiy8UIQ9yIeBw== X-Received: by 2002:a17:90b:4d0f:b0:1bf:6a2:5637 with SMTP id mw15-20020a17090b4d0f00b001bf06a25637mr8588430pjb.106.1647410325025; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 03/17] target/m68k: Fix coding style in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:26 -0700 Message-Id: <20220316055840.727571-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1032 (failed) 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::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=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: 1647410427873100001 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 --- 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.25.1 From nobody Sat May 18 07:31:26 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=1647410625; cv=none; d=zohomail.com; s=zohoarc; b=KVaUCQWkPQDWOIRuB89ADMw4OpujQoALrf4kKwKp+Udgxz1HMOXBjvuWXg4dJ5QKHjCHc/b+mW9GDWT/2TFXhs8yFkuE/W8tLCuSK6JyjQ+TAlf4BIdJfCsmasIGYnho0F/pLO2frNrV/r32UyngRMXIHJPLcz+T1vxjqNB7gnk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410625; 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=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=jRJbZr9GlMD7CQptTIR6wnuT57i/30iEfHe+V0e2AeVSd0m5vx5ZxYsDcrPyk0NjkiyVCPzEJpbxLbkbu0Os6L/uEwGOesP1oznaqyTcArLFj1NF/izgXwqenT26pH8bOF7OdPTnIlBGGc2+OwyiviV0XU05rNqz3S3AqOuWw0E= 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 1647410625139551.2525304885274; Tue, 15 Mar 2022 23:03:45 -0700 (PDT) Received: from localhost ([::1]:60924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMl5-0002T9-W8 for importer@patchew.org; Wed, 16 Mar 2022 02:03:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgK-0002FB-Nb for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:48 -0400 Received: from [2607:f8b0:4864:20::635] (port=39567 helo=mail-pl1-x635.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgJ-0006Rj-74 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:48 -0400 Received: by mail-pl1-x635.google.com with SMTP id d18so965355plr.6 for ; Tue, 15 Mar 2022 22:58:46 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=y4G0I8CNjJRzy97+08JKSQjT9njWensRXfXMXQK3neAoKgK/Od0bgXwwBLTa1wPW0E 4afwwuLhchzEgI4VGTngeKwP9H0uWwm3HUeLeeLLuQPyjtX7NtECpp/mTUYGR0SyA7MZ 3HyO1mbPAUgCg7AHNrYr+EuvF4cm2ieX39cOTwN1cmM9wY49Ytd0jPJNecEROabOpl60 nDsU8k3dWGyQNTzPmvUyBhuXBkOKpixy2+tbCFiBoHKYCbak3B5TAEApdERZ1B01iwmd soFIbV8rmIoPbyvDvFyljvKbLHmqIzFNpiBB6WPqVwhWTrtr7m2JSWskPTQzXIF5r3G9 BlMA== 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=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=Y1bQkkTSM/exmU5Ol/VDWncktCICuBIraorYZZwOOcyN7msVdq02DRMyuUOQ9GIeCH jhJ/CxX+vkyVkvyFY47NAko9mHzEho1dH1wSREN8dsInhJ8zUP/btYCrSMzCESAjGwzG t10tnAKbKfosZB16rM5Qy8rDQP842EXbtgLAZ71kjNcdtRE4nOC7qJKpi19wO6vPhBhs o9UoZx+ZsLJO1R4LURVOqroB/PLWgQ7jVmEUS9pi2Wvnu6p9WOvBt17/SStn7EG9usmT ZyEhXEZdbcnMsIyjZepk8TWvRSn5pwh2KOpxTELnnCN6E04HX0ORW7eE8ksXXpgoC6vF KxUw== X-Gm-Message-State: AOAM531N3r06gRnGSDIgQs3AXJ/PcxapKWyQOtNH3niOg3sLm3kYh4/e Xm+6HWKxTaCQZJRjl2cKz2FLzRC5x3sNFQ== X-Google-Smtp-Source: ABdhPJxaMKKPD6QC6cJKW3vE109IvzVQF9LtQ6vPeDYiJcgwZK8iw1szPOagNdh3AeFNTCAInkXAQQ== X-Received: by 2002:a17:90b:68c:b0:1c6:308d:81b3 with SMTP id m12-20020a17090b068c00b001c6308d81b3mr8528104pjz.65.1647410325975; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 04/17] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15 Date: Tue, 15 Mar 2022 22:58:27 -0700 Message-Id: <20220316055840.727571-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::635 (failed) 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: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410627399100001 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 a152567624..ac2555f47b 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -45,6 +45,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: @@ -77,6 +78,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.25.1 From nobody Sat May 18 07:31:26 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=1647410618; cv=none; d=zohomail.com; s=zohoarc; b=Bf7tabQOIPFkcFsQX07QnWl2a06WZECFR5EEtvk7U6saE9jhgWINol6pXEJ9lXyjqK7NlhgFsW4bABuGFFs2cJtUF+hDk7RyhNquiB3FG8PCKDRhZwVqg1M1ISx02oFhfFkFlQ2eYNS2d5a5bardadZCxI6A85TynY3y0uV/y5o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410618; 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=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=bOMrXU345KCqYp0/mO8ViJFeKdhSxUYrzRfWEXnq6ZJDsF2M+EgjV2XwxdVsvCRPB0qNldxDZtO4SzSgFJrv4JebNy8Jur+oknQEfvGKC4PRf+Avo05jugeIH+u0G4mAmad89WZrIL7WTaVfcuzemzYxV3aT/NNbjfC7q7X8oCk= 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 1647410618930680.1713211787317; Tue, 15 Mar 2022 23:03:38 -0700 (PDT) Received: from localhost ([::1]:60732 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMkz-0002LW-Up for importer@patchew.org; Wed, 16 Mar 2022 02:03:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58740) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgL-0002GC-Sa for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:50 -0400 Received: from [2607:f8b0:4864:20::636] (port=39568 helo=mail-pl1-x636.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgK-0006Rz-B5 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:49 -0400 Received: by mail-pl1-x636.google.com with SMTP id d18so965382plr.6 for ; Tue, 15 Mar 2022 22:58:47 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=vZnFHq+IIbqItDylP6+lvjrFO+2baeqXweVOScytmDv16FOkZSfLv7bHxKMlP+r4BJ TrYRDpHqsMN3l66PP6ChU+EcB8Fv1+3vI9mcXCnyvlc+p4QOIYmZ72QXpbIWlReDMAf/ sqXG5hUbNtoIyCYUSHFw0oxTp2p5iHlSXjL6VNFZt+gpDN44HxMsQrM3DBEGVx3BjUf9 FZwCNZdNtJ1tXNArHxmS0HX4SLKB84Vp10Vpv7dVfLsvACLs480YnK0+RjJoL9bOVG7z trRHiAXNtWzg/4JGEGKZlzrgRUJDKem+G0UOZhbyRSxzjMXTpFhyUIUTWBv4JFXB+2wQ 451g== 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=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=Z4HTxxNNM/64+NvksgCBrWp8MxkN/Zj3ElQJqikn+uGJ6THvg7Ke6seW2aCdMPB+Bc SQvLF+xqoll+YFMzapBDmihsezyAO9uG/TpeSVQFO3oKKMgfjvKqGVMmUiaUCzzkzXJi Vl23s4MxP/RUkHdkktQM3AU8lRAe9mAAWJ1NIHczILxSG5EPYsvGbkWBO03GBSPkXLsT jC072hDniaHZG6FWpPsw30t0nldQabE1EEVUsy252CNrtMXGhwwm5axjmV8Ly9OGMdC6 uhteR8s9dFOMhmQfU8onKrIkSFVR+ne3/PayBHwtgsW6ofDlUeklPlIer9xJ0DuNgKmK nBaQ== X-Gm-Message-State: AOAM530jCVPsyNxycx9Zjb74OMIhNb/Ux6LihAaZbSdiXf2lgxpbwZEI bZBgVhvqAeePUBfCT3Up9mBElEJht6BZDw== X-Google-Smtp-Source: ABdhPJxGCaid/Tbk/A2lucJT/oLu3QaMs3a5USzO1rTmf5ZUctLNxl4eoyRL+s0Zgkzedlc66dBVgQ== X-Received: by 2002:a17:902:7296:b0:151:62b1:e2b0 with SMTP id d22-20020a170902729600b0015162b1e2b0mr31721514pll.165.1647410326781; Tue, 15 Mar 2022 22:58:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 05/17] target/m68k: Remove retaddr in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:28 -0700 Message-Id: <20220316055840.727571-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::636 (failed) 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: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=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: 1647410619387100001 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.25.1 From nobody Sat May 18 07:31:26 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=1647410827; cv=none; d=zohomail.com; s=zohoarc; b=D52xjkfhXGlxEdLk18kSfyRI60ak0mQ+tcVtfpFRvdkwH7nKFDTeXZZwzeySvcezd0rVsBdfZVcG4VLDDqOlHXKdGLuq3yXqtDi6Vup1uFA0ExK2UoCjqWBU02PD81J3k8xDfe+JRkQxQQzA1Hxr1gPK5MBItfnZsOgodtEjPyc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410827; 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=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=hRxyM8f1fqznA2GwYc9v5heVUaCYCeJAyRYm7fFT7DyjIBUXl9kwfRlA7D/ekIrMQOt9+namyK3UpGN+EFQY8QfcyRTLThS8CjS4EcimnUARfGFdayYYv7PgHtbyqTTstRwGdsxAspapeE8uJntr40rLRU2nK6N6j7NUHxujnY0= 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 1647410827627268.6001228921788; Tue, 15 Mar 2022 23:07:07 -0700 (PDT) Received: from localhost ([::1]:41136 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMoL-0008HR-Uo for importer@patchew.org; Wed, 16 Mar 2022 02:07:05 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0002JC-Be for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:51 -0400 Received: from [2607:f8b0:4864:20::634] (port=40468 helo=mail-pl1-x634.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgL-0006SE-81 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:51 -0400 Received: by mail-pl1-x634.google.com with SMTP id h5so961552plf.7 for ; Tue, 15 Mar 2022 22:58:48 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=AqZdt7C1T65NGGgfpRKfHzRGKYHzaWtxw1518pH1cB3ihc+EGCOj3QSTIetsYdNXaU iwTXSD7RaAkZ279OQBGtcJHsjjWOnH6L7n0nMjD4Buvg7NMmDlHRJhcdsr1BwvT3NCrN YSUsBKlKkg2Nq5mQWamfywAhLiSuxAbAzi3R8pWAu+cpvphotbrbQvavWeEEyvNtsvtS imxNy/wF+Y2FGQpeTAYIeTd/FCl6hhRU7Rfl5nwVIwlnroXB3P7RS89B9kXL0QZ+QJx/ VQ5k61sv6+msD3uHq63AkYEfd182mNZsCPDXcBLfnS7Vn/gcSWHf4SYESmeLXnaV25At hB9g== 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=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=f/xmNEBT0rVIVdTyCMHCKNcAniANCicPbQnj1b6KxmwZ+4l5sCpTF5C4Xotu5Jv4N/ TWHeNBkS5on24bkcMWCAQetXQfPYah43XOt8OLQxM6ms8CFGS8x2BHMpP/f+zFxKMlY7 YslIUorQwABEbDZ1bqUyKq9JseWUh4TzCwEIOwE4ZJqUX8BGSvK3jy1Yvx2IevZg9NyU iJMY/zZ3XU55X9GJJZ3Cn3418W+xOHaaKnxFAsribOslH4WAY/RS2l8WFyHIBK1A93Ic VSaTmO0T/LBymrtkEP0/+xoTQbJ0FKl/nKCSG+2VaLdwHs/+XnvSfTaY+uPZ8Uwz74GS nxdA== X-Gm-Message-State: AOAM530aBwFKk2bUyC7rQ9elOb0HgQ9KlCnZGpZXYicBAukCgZYOJgln 2Nfb8x1JCj8cv04nYg7chwyUFFsFBi4ikw== X-Google-Smtp-Source: ABdhPJwovNhCsDassrSzg4rbgrcTVEFRDUnLgIWu+IkXG9CX+uKrGp9BICFpyrf8uCIPW6j10+qSfQ== X-Received: by 2002:a17:903:240a:b0:14e:dad4:5ce4 with SMTP id e10-20020a170903240a00b0014edad45ce4mr32200387plo.125.1647410327795; Tue, 15 Mar 2022 22:58:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 06/17] target/m68k: Fix address argument for EXCP_CHK Date: Tue, 15 Mar 2022 22:58:29 -0700 Message-Id: <20220316055840.727571-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::634 (failed) 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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410829779100001 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 872e8ce637..5469d5dace 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -121,6 +121,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 ac2555f47b..e6b06841aa 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -49,7 +49,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..0411e2208a 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 +static void QEMU_NORETURN +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.25.1 From nobody Sat May 18 07:31:26 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=1647410827; cv=none; d=zohomail.com; s=zohoarc; b=MHVMfw0c60wwJU3Qv5y/VLKPHC193g4ywqrDfmqUK4wDUDMKiUUmEIVu87KsAXQICo3+E0iaptkMnNBbsSlKDaTkAUt+qZfwE3uFlTVvbPgZM42Hs9THE/wI4tuvMHpC0Jwza/OmcfZ9g4h5sauO/kV7p1+PJhxEWFOXEYVedpQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410827; 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=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=bfsgaufyfOC++Iwh7i2w5qqgdsAKD2Xw7WaBBH17gxIF6gydqG+/ap+t9kfqEFcBpkH4lR8iMKO9AcQYK11mowqt5zomMVJ3QOKkkiWzhcB8Q6qoL/oxJqAJNILVz7CV2djm35lmLep+QBOWh10QDDS8EIAo8Q5cG+oIQpMx/p0= 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 1647410827594478.07537009700627; Tue, 15 Mar 2022 23:07:07 -0700 (PDT) Received: from localhost ([::1]:41014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMoL-0008C1-8l for importer@patchew.org; Wed, 16 Mar 2022 02:07:05 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0002N8-KJ for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: from [2607:f8b0:4864:20::62c] (port=45679 helo=mail-pl1-x62c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgM-0006SP-AE for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: by mail-pl1-x62c.google.com with SMTP id q13so940508plk.12 for ; Tue, 15 Mar 2022 22:58:49 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=NK9cHmOneaCIefuCA89+m4bmxBtIqnGNYKfvET4Vbfuv84gabAxXmaLD50hL2KM2YV 9zLTSc9UKhHz1j6AcinMElz5cAY/aAxyW6fFjO/TL47PPNW5SJAAKPO1r9wcpPpg1xWt ouNrg8hNy8qzh3qmokyyMrDJBDgRejT3pjVf1gbeHNrSxYhUdrJfIrcbbIC8tVDxQQuY 5y0U+wdD06QTvbtWX0/jP3gC4uJwOMriV81svEEsn4EMurc32oXbPRmf9v1hVfp87T6v VRD1Ybt3TjQTSiPyFvoscvtPS2+OwAuU7IqAzATIdO8KNA5l8AkTkTthMlD9l4535cEn CwVQ== 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=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=C2k2cEX3LqdcQU33nd1YhsKmBUL5g7JIVCiK1ELK+KzqjqlNbGY96jjEpglReZtAzE QlzSlxU9X+uvTG2WWOJRyb3DnPAGki0mvujMknoOaKPwqJ9xpo7gqOInNrwtL0Bn7NeE PKQURQ7Fvy7AWDWKNGVBTywW6lq4i6mxbuAvQBt561ESJnbyS78RmAe82dHBJ+1kOVXX ZXdg5Ytg9bRqJy2IIeZx+QZgxQE/mDsJfjcwBI5J9bEOeYE4dBbHWh9rYGEs05KVF5jq cZh1wDcmaVYkQrn15Aw0m4UNlZ/DzWaeAbHxSH9Ei59SRjOgAFWMaA/izM/g8dQdO67F 35cg== X-Gm-Message-State: AOAM531AxqG5+HXWe3FrxQwsfDA7Ds/bELWtYLB74R2g1b2DuQbialVm Yaecwgv+ePDQ5BpPNW6FY4na+ivSUorD9g== X-Google-Smtp-Source: ABdhPJxL6LT55+d2RTP6n39mUhusNASDYr1C9Fjx1XqvSBIuwhIuJasRbUQtjTY+OFIRLY5BDIXxKg== X-Received: by 2002:a17:902:e891:b0:152:c3a:a601 with SMTP id w17-20020a170902e89100b001520c3aa601mr31439983plg.170.1647410328853; Tue, 15 Mar 2022 22:58:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 07/17] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0 Date: Tue, 15 Mar 2022 22:58:30 -0700 Message-Id: <20220316055840.727571-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62c (failed) 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::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410829783100002 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 e6b06841aa..bb7ec09fb3 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -52,7 +52,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 0411e2208a..568292e037 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 af3febdd48..ae9f5a5222 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.25.1 From nobody Sat May 18 07:31:26 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=1647410829; cv=none; d=zohomail.com; s=zohoarc; b=LQHixmaVBRrA77fqiDrvJP9MU8O/D6MV2W0BltaGSnNelha3BzkXYGuB/9uVPTItMT7tTUZgyUTkeL10RSuW5XNFSg0HEJ30vdVDXSwSYpslcQPP+8OEAE9Mc3iXij09djydLMV0czi50ioL5xg1CtjZmDr72keS4CaLkkXyQNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410829; 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=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=JN73pLWQfU2QOqIUd1f/F8ZQ0/a6pVl9hAFE2SEVbPl6LhmzbUuLl5NTgtDQcmajGlAtlCc+Yhinvis+sQ2rOROz8jlS3at2f/2uWD+SIDmeB3H4yLAXxjxXQMoZPeel9HNr7N/pZIOx5V800D8WjSB05AcdUj6daPdrjS2h0rU= 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 1647410829221821.2776251694027; Tue, 15 Mar 2022 23:07:09 -0700 (PDT) Received: from localhost ([::1]:41194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMoN-0008JZ-TN for importer@patchew.org; Wed, 16 Mar 2022 02:07:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0002Nz-TC for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: from [2607:f8b0:4864:20::102c] (port=50912 helo=mail-pj1-x102c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0006SZ-1d for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: by mail-pj1-x102c.google.com with SMTP id m22so1358915pja.0 for ; Tue, 15 Mar 2022 22:58:50 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=DkoRqTZ18L/6SYJwnUbjpNZO86TGTlfaE8HSAzbIPHr1guWvrpjVymKjetEHQwLFwC FuO2TK5lFPq5g0svSq5XOgmDBolA9uL1erTd6kXCrAI9KfhgGVuKrEDNHV6wPeGupR69 J2wuvRFYdAEsl2jUGQ/GD8p8poK5t9rITOuEv1kTeH6jRkuA1FzI5rhUsVb+iNotCbEE aopBU4SlhZeLVV3i1/I3tF5N4qkN7mW1ARuCqZWkkypA4GRt/rHAuvLvMJMoqNTEGPWW g8wAUCBI2oexe7GgRl6eE/ec8KISFwliQuaT+wWqE8PwJ/vtYJ2m01x1H5RUGnx6Ca6a Zf7A== 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=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=ejey+eMXJbXIxiTugt46bjNHpB6k+iGhkZ+eXQp2mkWa0kBMbDwFV8x8NVAoABiU76 62ve2FmcoQwR5iCNLqXwO4IfEvA7H+MHPm1xlrqjaEKtFcCy9byb6DyiH7nLwhx5OA7Y 4Zy7mEX4wsLXQIHgCcxF5di9ZRat/uvE3jIhsHQRWF3zJyXy7xcoDvOmpz9lpBMY1oI0 671/turvcszyjGwNVjHwj+U2Iv2EKJbpilovo2trpGafICfihysTgf6Hu5P47bIv+RZo jrMykm1BXOshqp3PqiHkty9GbSH7cApZEGZy4nCJMPVZQsoqdGL7aigXkgD2kAbMU2oZ ot8Q== X-Gm-Message-State: AOAM530k4EdKMRRl3VgRO0ArQJ8YYLY5NUFjRE/F36KiK/GTm/X/CTfp v9xJdsL06OWcj0QvsbEC+neEpXFwDeWENw== X-Google-Smtp-Source: ABdhPJwgdMaPDZpYzALYeZJd3ZWoL421FXUmp3wR7C24iWVICXuwmv5XtB9j1EWyridPj07Md466Mw== X-Received: by 2002:a17:903:40c7:b0:153:b0d:f8a0 with SMTP id t7-20020a17090340c700b001530b0df8a0mr31672847pld.156.1647410329692; Tue, 15 Mar 2022 22:58:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 08/17] target/m68k: Fix address argument for EXCP_TRACE Date: Tue, 15 Mar 2022 22:58:31 -0700 Message-Id: <20220316055840.727571-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102c (failed) 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::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410831378100005 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 --- 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 bb7ec09fb3..9b9aabccc6 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -54,6 +54,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 568292e037..4140f65422 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 ae9f5a5222..0bfc1a8ddf 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.25.1 From nobody Sat May 18 07:31:26 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=1647410439; cv=none; d=zohomail.com; s=zohoarc; b=kkTiaCuhIHmTcxu1UzqRE/8OvBOMLVGGC9Az1/89hYiiJRS4sHuxsS6My8Fa0NkcAGQF7fLlRaVWPUwkS5Ke1WfVrhaIMawoSJWYXDur3L/mNuSmlQx7wxzGM0MXp5AyLU+7ixKvb/j4lELU65Ukgxdf2TAbZhI252mtY0WofiM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410439; 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=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=mden45L54RtgnDgwahoJolGVcNBD47WWIhhfE82wc2NhlWF6QV/lpxjTwvmAhRPqAq0t1Uh+84eMn3NQ/SZPJdZVwbA204Gi/NTVkfFsnMsEEWpiRIK5u0pvGkUEvwv2aR+JNG4M8WuBilmHG+w3k8FPXQ7L27JPtRLipmhIPKI= 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 164741043910478.62087974413998; Tue, 15 Mar 2022 23:00:39 -0700 (PDT) Received: from localhost ([::1]:52866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMi6-0005Lt-Sj for importer@patchew.org; Wed, 16 Mar 2022 02:00:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58848) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgP-0002RI-RK for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:53 -0400 Received: from [2607:f8b0:4864:20::630] (port=44675 helo=mail-pl1-x630.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0006Sf-PM for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:53 -0400 Received: by mail-pl1-x630.google.com with SMTP id q11so944582pln.11 for ; Tue, 15 Mar 2022 22:58:51 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=xeinbUzsIGya5s+DnNSUN6n3gnZy9sttP4EPAEYzMb3ZyJKp4C9js/7hV39SWyvQql HazjuZ+vOuSnDckRGgmV1pND3NyLdIY5ddo+dCizmTua+yn9f9CiUBOh6ZqOMv0Lm7Kv cOAgxm+zQ40KoFQ7R6bT73onj3BdcZwauNCQVVHfHPaio7uRje635qT4lMxHGe8B9u7y UFwrOX8z1rygBo8DT3uYsoMnccMxp+bd7JBVY1btQ4ttacjt9Hb6yFptXxViy/eBF5TV C9XFG83/EQI8TqeeCx3N5PwQJE4TXy6JdzVcOj5fsmxqoUhnVKHFoB6Smy09kQjJZ47A /6Mg== 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=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=0kPUaks9gL1CttJTbENdteJAbhafnZcSv1CBA0ovZZWQ1L6T4t3tY0/IvxfwLaBQEd vg6jAnapCk6/IfyI0oQZx44pM30fqrcBwYfy0sJ7hPRVQyCMrnjSXjtilpc3F2z+0RrC n0tCOpWcKpG7Ti5bLXr1pg3hGMUiGcGM5FThvqKi8Cmw+pC0A+++zyZy6ENqr/sqUH+3 xakT9vVFM2mGup7d4+DIXJpQq2qJ3NYU8fd6cSJ8vjfgISjKThwfWbqJi4CZA97nMWTU JGZ+nf1uD4n49Ke9eaQ+VC2arFzbozqmhqGZOsqIhVJC+cfj9MiI1+9iXOdxTIfZtaMu isZw== X-Gm-Message-State: AOAM533ALwWZyDg/YD44+hMvltK6DhL4JnyujwHhLN5qO1OHsLfTmRCd /+10A5mYzKhsjGoJA5reFpa8m9TKLiRjtA== X-Google-Smtp-Source: ABdhPJzqBiMAVITqaPdjqapioP+8pfHsHJtLKFl/7Erd5ymLh60204jYTw3VxQwpT6Y2SCZF+404jw== X-Received: by 2002:a17:902:f684:b0:151:93ab:3483 with SMTP id l4-20020a170902f68400b0015193ab3483mr31759845plg.4.1647410330533; Tue, 15 Mar 2022 22:58:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 09/17] target/m68k: Fix stack frame for EXCP_ILLEGAL Date: Tue, 15 Mar 2022 22:58:32 -0700 Message-Id: <20220316055840.727571-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::630 (failed) 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::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410450096100001 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 --- 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 4140f65422..6aebf9d737 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.25.1 From nobody Sat May 18 07:31:26 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=1647410984; cv=none; d=zohomail.com; s=zohoarc; b=TmVnifAaYvwUPBgOA9RFNfFsTxCAZFp2EdLhgusH3U/h3LAfNZKAnZ/G+F7qXjmqUMMtNUvpc8drL5IYZRjsfthEAonXKkHTjJLFkeEAEX9FQuGrBeoNSEvOown5BUCBV7mZlIa6IBIiS3kjE04TLpSZ7XcVf0Uo1UPYbxg+Dug= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410984; 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=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=mk7fJYD0Gmp1k4B7UPgdEV+XLWahHGKPcvXkJT2iL8zl9upQsJhFOy/2OLTB9VuJGuiPtQ32JHqfgUrVao8tIWOA0qi/BCITBJ2A66vvB9vWUos3FlOr6/o2lKm5xSysnAUWAoHtTkUxQUmkW7cy8icPBxDwp1PqB3yj/Fw6P8A= 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 1647410984245467.94448825877055; Tue, 15 Mar 2022 23:09:44 -0700 (PDT) Received: from localhost ([::1]:49638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqt-0005hu-51 for importer@patchew.org; Wed, 16 Mar 2022 02:09:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgQ-0002UE-MT for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: from [2607:f8b0:4864:20::102d] (port=40636 helo=mail-pj1-x102d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0006Su-NO for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: by mail-pj1-x102d.google.com with SMTP id mv2-20020a17090b198200b001c65bae5744so428416pjb.5 for ; Tue, 15 Mar 2022 22:58:52 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=HKx2I766vKlV9VpBe7fFijoR9ZNAUiCzQmGUUlfp5Cuesy/M2qzsaczITf5G9GqgZ3 pTrgFE3uxhxgbxymrfBgkot89bKvLU97X85efbXqgdi7W6d+qzWkn7gWFg8UnA8fYb+T 4Xj8zU8Zi77gSPhDcwe0ckSY6R+GddelwItHWi2unQftnl+ukVknW6DQ1B7VVwv+EFIx 4jcNWUyGz2VqBs+htXhxyE9tTKg21BjPqwL+zm2kmI9ianNAOPe9pR49GuH4pFt+ivWU v7F50p2TlymCgRuikV/AG1p9hHLyTaX4EfNUbDkJf6W+NevluglBykf+03fx0Hjbed15 kOvA== 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=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=xzKLSV6uDDU8JOTfsyGbx6pJ1anf482DHYZiXgD6HNuvWtJdq6S6vFuDx0zX+vrPTd c7+6C7kLYqm9yvofNM+D630BlIEmHwWGZ60AxanH9sxx1tZfomRvz55VnI1usjwTWUvG xeVh6B0sCduObpQYMBwhzGQw9kTe4XS6GU6rgkbtLRlZoB+6LTtic4aO4T7fUjc5r3wX LodPYpHdbof4lcHCN8WMldKmf4hQCBrwWN1Rykp9y4ZFSeTMvxxBCVc+4hMqzXNFkwne W4DbctmaxMkCfHZtkbCEbQ7xGoYWLh+1y3MB1fpOeIXE+yi5tjz3KKyiPWNDSnUvVfwt yOWw== X-Gm-Message-State: AOAM532dGPc9LA9Hq0/Mf8FjsY3HzsfOnUfzFgvBP3ljPXoytrp3ghFj ErLWuLwxg4ErObs3K/7HUa7aXEARM/F83w== X-Google-Smtp-Source: ABdhPJwv70pgHUr10wHF475FLZtmMzq4N5ACKVH8OdCSYi593YlDoW9W+EdiF3laG6nNhxzlRpxlIg== X-Received: by 2002:a17:902:8691:b0:153:6f49:1a23 with SMTP id g17-20020a170902869100b001536f491a23mr13741204plo.9.1647410331406; Tue, 15 Mar 2022 22:58:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 10/17] target/m68k: Implement TRAPcc Date: Tue, 15 Mar 2022 22:58:33 -0700 Message-Id: <20220316055840.727571-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102d (failed) 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::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410985992100001 Content-Type: text/plain; charset="utf-8" Resolves: https://gitlab.com/qemu-project/qemu/-/issues/754 Signed-off-by: Richard Henderson --- 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 5469d5dace..1901a35256 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -533,6 +533,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 9b9aabccc6..828dac5e50 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -49,6 +49,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 6aebf9d737..0de4743d01 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 0bfc1a8ddf..e15b317ddf 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.25.1 From nobody Sat May 18 07:31:26 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=1647410987; cv=none; d=zohomail.com; s=zohoarc; b=JtSSDKO6JHx5hXxnqyknCj+mMhRpmg3BXzCRwvRLMofFUJ7uzzfvr5hCNMA7G5BGWkqz4T3D6dzzQEpdVE5ACplhhIYr/xBEFIlBqQLJv1fhtw4q1DD2WwRQa5Mji0SFrNs2gj2XHbqBP72Ig4Xs2SA8ABd3hLDb2urHxvsZrfs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410987; 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=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=dChIqnfrp+RZhycI/JP2mCMzjKPp7Sb98/eZ3gPSLd4pogaZYnhwT9XSvebFKBXr9ytN6UAqrFGiig1lAHjFNtCM6Lz5wnpx4C3kJZ76uT7SRq4yMGLE6WMweFLelPM3ZahjPi6A8YPH+V4o6eA5kmqLV+ADcC6lYrsDtShePDw= 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 16474109873671005.6216876376548; Tue, 15 Mar 2022 23:09:47 -0700 (PDT) Received: from localhost ([::1]:49766 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqw-0005mv-ES for importer@patchew.org; Wed, 16 Mar 2022 02:09:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0002Vv-31 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: from [2607:f8b0:4864:20::636] (port=38667 helo=mail-pl1-x636.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgP-0006TD-J4 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: by mail-pl1-x636.google.com with SMTP id n18so967545plg.5 for ; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=Jtg+qJ9+ZrQ6yar+c5O4w+2XDtDas1FuQknsEvfkPpAmmmPwiPhTk6zsp5f2e31U80 ATU/oM1XQgDP935R87YFijjuOjxxVy54YU9u36AfZuuSqc9EFj7SSIUirMZUqrlpdhLn HYzcUz936fRMDFulBpypCjByL7ksOij7dY905SjeIGnFsmTaqu5k3xFivkdNDtIOGyUH Z2l4jEKpRiYA8Yk/bf7H5neEE7iDISFWwaJSisPAcCBfLOz15cNXn1TWuSVPgw9CTHY9 pOx1vIUyyPsDRhBgDwQVh1UImMwVVblBMff2SCgPsSSdyIg5ZgEknTd7HPQothJjqdjO O4SQ== 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=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=M7h8vKe1c9QAtTO5tkH4WklZBv4ww54yLbpZMBkPfAXqXyslgno0H6Fw9B6qKVnM0A FkTDXzvWjcw5ruayqalUPJEqwdDQ8x0w95XeFKts5BGSxTXWASyh4aHp6A9mdSPVK7gs uhNAUCH18xmHGpYHX3HR0zQSAW9q3NPZbxte9ESLe75wWwWguiIKu29IauInLE1BJPE+ up0FJDLCWfLeIawp8fK1PWISnPrXTEEMbY6RYbCy4a+cKx85sMMYz/P/R3G3+ebx5sI4 6S+694jk4/OhFZlTLonJOm52Taamo0Bg5lZw82TnU/WDTzjRXt+N3UKtDTghrLyqPsuQ lD+A== X-Gm-Message-State: AOAM530tv0V8LaJI3Kk+sVh7/YVc4aiDyzmI4JzPr08s75pK3F7yOxMz Dmcm53sSfmXnkhiuHMvblBp28KAZ89O1JQ== X-Google-Smtp-Source: ABdhPJzYxRvLB55FNyaPg4uvpzk86aBG++4BTqmMyUhS/a5aQlIdi4YlAjhd6HkbbKZCNzxLI96UBQ== X-Received: by 2002:a17:902:ec87:b0:151:c3f3:ddd5 with SMTP id x7-20020a170902ec8700b00151c3f3ddd5mr31518171plg.154.1647410332337; Tue, 15 Mar 2022 22:58:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 11/17] target/m68k: Implement TPF in terms of TRAPcc Date: Tue, 15 Mar 2022 22:58:34 -0700 Message-Id: <20220316055840.727571-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::636 (failed) 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: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410988025100005 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 --- 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 e15b317ddf..86e5e16f71 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.25.1 From nobody Sat May 18 07:31:26 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=1647410985; cv=none; d=zohomail.com; s=zohoarc; b=eRUuHy9PWlbSCMyJJ6BszDExZqkaKdopVpBpMN1WUZ+axTcygfmRPfC2+EbA1P9G0DRe/8nUdlqgqgyz0qrDBc3827Y0VW8SPUteHCAOXG+OqsUeiHbUWL+GAgQrXJJDpSgwkXz6DyRSFX37WuCradJqRxWEknGnxufdEGuyy0o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410985; 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=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=Xso7u1vcE7jrplXEoSpO0V/b3fRYTz20ll7XK4m0CygXeXPM7c4cKoddZ1L4OyUM03PtURll8ZrmQm1urt8GDSjjTEAIPF+ciD5yy3rab142Eay5RwMYIs/aGkkuoiaxSxxhnbhhTJjuGFUFSZrh7aJ8rxYRXyU19AR5tOP6ZC8= 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 1647410985622252.79364191748448; Tue, 15 Mar 2022 23:09:45 -0700 (PDT) Received: from localhost ([::1]:49686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqu-0005jk-Hs for importer@patchew.org; Wed, 16 Mar 2022 02:09:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0002YI-QE for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: from [2607:f8b0:4864:20::42e] (port=36563 helo=mail-pf1-x42e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgQ-0006TY-C1 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: by mail-pf1-x42e.google.com with SMTP id z16so2568217pfh.3 for ; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=UGpebiJbBC4qCDeXRvgaUrpna9hs+ZZlVYLRiBWDjNoNpxyJQaSanZB0nPE6xaQeEy pgIlHAk0N7T/BZEkJPZ9IVAzV6l6BIhvd56IVTi5k5N9gncwDvwMYaZahfR12b4GoQUD I8eJ8Hz7vI+/gkPvVO8oqPr9E7pJRIbd1ACnevA7hD0tXAoEsCbJrqO7jbS2RvZb93T8 6pciwKCktPttrlpKOaTIIhDHO2HhMMtvKrhPfVFmWXcQPr1GybcXXZehCFb3Egqxms4Q r2AUeYkLHPgxcf+VT09ibeY+rlIw31tv7hMPt6JEE5ygqb3OX2R8povvmhsvJlIBea5V crOQ== 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=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=FjvU0X6rtbZE8lHanCdsnUA+bxWaJdh4Ay56NP9dBaH0QnCMqJns5erMDDG9Z5oWhP QguYcFZtPvUmc3BmfNAE5uv7GBdF43W8aPukRGlRGtH7++2G00cFy/1qqLItomkfq6Uu l3MkVBkZUIOQeSSR4j8ghY454QLRzSSpD3/7xGNl4vCv1dxm9iwp8B3rIiF/qOeaoGXO rlRDMGL4zUSabWkmjlRAYAvb8Z759PeSCrgPC6bG50TAj9kXaVM1EQ5/KbYpdecUHi51 q7DWtdceSJdvK1Z6pzFGO/tVZniK//bb2VekRaQz1xk50zsMWa5W0Ot47RW479H7T5DO ETqQ== X-Gm-Message-State: AOAM533Wajna4e1AMfibH/C8oubC2S7GRSy1JQKxPq84hHmJlT9u2EA9 xvr0Z/2rXAZo1hCYFuKGagMBwVKh7cWb9A== X-Google-Smtp-Source: ABdhPJyvXTUghb5/g/UZbJ7W9mtlRGodRcBbVXs/VpBAw/+ofTdchBrN7cjnRAimPs+7hQIjc9hgvw== X-Received: by 2002:a63:f816:0:b0:37f:f252:9f12 with SMTP id n22-20020a63f816000000b0037ff2529f12mr27571747pgh.318.1647410333157; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 12/17] target/m68k: Implement TRAPV Date: Tue, 15 Mar 2022 22:58:35 -0700 Message-Id: <20220316055840.727571-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42e (failed) 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: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410986083100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/m68k/translate.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 86e5e16f71..6118f9fcfb 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.25.1 From nobody Sat May 18 07:31:26 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=1647410629; cv=none; d=zohomail.com; s=zohoarc; b=ReBwaI4m1qNPICDUtMpn8kcOhGW+1T6UPQjtHPggdTscsZXWOmuTHFb6biu+eJ5sP91yUKCzxWA3mygjZrJOZgxEYfzNtxb/PivKifqe5TsLe1f2G3yNMMpAdHAse8EO1dd/KCt+181ZrUlogMGd3hEvBlEklSRH7KWccRat4Wg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410629; 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=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=jZktGfXVJYGxJObqZUVQni8D0IjdX0MoK6/CM2Svr0n4Y7aC0oFEKdYuTsu4gTYlbNMFQFQfZzfMBMbHs8QQoLN5/+274YnZOqKnlYavnhNH4QKO4vOw5nHMEn+0sXk1L3/wtwuHpiG1hv/m0362ohfmF7fjnSXrKW4i7Vvcrqs= 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 164741062924366.53059043196072; Tue, 15 Mar 2022 23:03:49 -0700 (PDT) Received: from localhost ([::1]:33138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMlB-0002lz-IQ for importer@patchew.org; Wed, 16 Mar 2022 02:03:49 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgT-0002du-5k for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:57 -0400 Received: from [2607:f8b0:4864:20::435] (port=34533 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0006Tp-Km for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:56 -0400 Received: by mail-pf1-x435.google.com with SMTP id l8so2578037pfu.1 for ; Tue, 15 Mar 2022 22:58:55 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=u3853nR5m3h08NFrm+m8GrNNpyssPJswQilEpY7ypVFnuwdyXi2i5FmumaFNqV7mz5 mCBVPJrCRHWN7T6ii/nxxro9s/ElVqZ4EzLnpsmDEXphsiwYYLatRTR84NouhMsmZvCW 18hHfJpkaWwQE7Feobco8SuH91hpfoJ/9uQTjTTzNGblhvJla6m+eWYRut/oCRwe0nNJ X7f43wnKPGVp1MKp78CzhfRonBF1JAGjJI7NfdgdFSVIIMV0CTFR11AQ0vJmTezwWmOP q7YemvdVJEV/LAPiSSWhTjfz7+eTNvVFWGe2d3E2uQ4QuNL10awy1v2v71vvDYXlfa3v Iazw== 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=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=k6lmnmX+XJNL+0biEF+mnnl5MOo0Q25byU1SMgA0j6BFvkIF3PdcJVGY0lXRxXLGyX DfGNM0TxM0gU0f/YbYiuv/HdHsbhmNvu2c+Q2dUjZALzxUbpjPitdFLNRNKCxfLj6s1l dQw6KySU7p1oVVag4bMKhif4gDZhmflt3OdLBgqRPf7S1CBu+wtzxYp75DVDnu0Y7PAJ UidzTnXBAHr5gcnKx/xd4hDXsAxQQA+jlamnoV8PB2GkgLOLpCnOfYuokJG5opzwrrP7 +LhGpd5VNFXjSlFtDhk3q0aMCD2ccnKONXwAnY+i8ZgNC36g2nASvcnYN98ZJel1Bb89 /ZdQ== X-Gm-Message-State: AOAM530k0QJ6cC7CHRni3JkIGOTKoejabWrC7u0InFEUGtdL8MFsB3oX +ULiVcc50btbaEras72frapBRAt9KaHHqw== X-Google-Smtp-Source: ABdhPJy4Z+biTvhoNSW8wete4ipw0rl9aCcclMTeVwBDk7WOFKuN2zxKpVABcwq3LzPJRLv3jhRwRA== X-Received: by 2002:a63:df58:0:b0:381:6713:6a49 with SMTP id h24-20020a63df58000000b0038167136a49mr5352058pgj.198.1647410334158; Tue, 15 Mar 2022 22:58:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 13/17] target/m68k: Implement FTRAPcc Date: Tue, 15 Mar 2022 22:58:36 -0700 Message-Id: <20220316055840.727571-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) 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::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410631381100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/m68k/translate.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 6118f9fcfb..14f8c702c1 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.25.1 From nobody Sat May 18 07:31:26 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=1647410831; cv=none; d=zohomail.com; s=zohoarc; b=J+Lo48lLNHjXuH+W6KdocpNMEGZFNjWq+xmUFJN0SPVIyFIZg6vBtFm26PU8a9RKSJkdYvLxjqhm/xBWZctzqV0Ls41F3ISyNuuTTkxuwBE+G0kLw7S5vCbbCy6HtNu7fstmx2KP5pIcrkTExxOXh1kktAS2vkWD4AQQgNJoamM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410831; 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=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=njmXGHQSijHMFeAVtwVxy/PXHb8Nwl8I57e5DkGIkMiNvELxZt02dYKL7Qlrnec0icaD9xNK11AbGbVz5oOmEh0JfFRRyeHXAMs1V+xs1G9kbt9Bd5RTaf5ioampiYyw4zPLv+CZtiSaKc7zGo5q7MZNW2hMkLd91LSb7ORryNA= 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 1647410831285331.79986630543056; Tue, 15 Mar 2022 23:07:11 -0700 (PDT) Received: from localhost ([::1]:41630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMoR-00009a-EA for importer@patchew.org; Wed, 16 Mar 2022 02:07:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgU-0002ik-7k for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:58 -0400 Received: from [2607:f8b0:4864:20::435] (port=41884 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgS-0006U5-IQ for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:57 -0400 Received: by mail-pf1-x435.google.com with SMTP id p8so2523499pfh.8 for ; Tue, 15 Mar 2022 22:58:56 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=wO35ImkL7UGqvRCNK5zbCHxn7DFO9syy/34zn+WfJxSB0UR0vmnBhNNTEwAl9BsRKj ZhmZWy6r3yxLPOWd6YNeYzYGR/rHQ7m2ffgLktSJbVbO8U6Dd6EW/Qbe0Qm5dwvnqKrq COD1wYm9lYhkTkhMfqTfNggZc20v2Z/GNhaUOIbuR6hlJOMnNvg85xZTgrnw2SHqYn1l OJ20rLtEtVK7siS+6RIcKLdH79Tbs+beNgH0XThiZtuaEI4hO61Ui7q5c46zf/r71MWW Ac+wHsttBODRLAqPiQisvHbjwV8wyJWRr8d6j0z7zEKjWxkNDCUbszqzNoLI+7ZxxbBY 5Gqg== 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=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=uzeeMnz5EZiUBpwGspFUeS9pvj88Y/rjn1ndtvSI1tTYOu2seLqxUMC929iJDgT2Lb +nkgliZgLrWvaJ8txTSO1avJfMp+Ssy8oXKsVLMs+t/LghvSbPFUntKylkYLxozkLUaY 6Sg93j7UjFJiZzRpf/w4JxsUMNrrwFyTBpW7BIHC4junl4vsdH8gM4leBQ32tDgeqy93 AKtpyet+F9Cdxm8irMm/iHR2bdcBphwMkmO/tGTYBUmfTmMnutC4z+IR8C5ydyIYH8CH JGLy/mjvyMLY6H8tZjdIkaCbJONmvsaR3N7vDw+AAs90Vv0YOJSS8sNZRzojoI3KjbbG hJSg== X-Gm-Message-State: AOAM530/Wd5r0Ht/NVYpGzORN/w6dqXKn6+s+zTVMTtJBqlAuq+9BCiY onnoK7vFOfTR4EiAFZylUt5HkNao5KR3XQ== X-Google-Smtp-Source: ABdhPJxf8vrnPgiAEXYiwlDoyii5fTxIQuJhRfDygVfgBpxkcCZoZCv0QpdYN+4E3Ieycq4MnV4LJg== X-Received: by 2002:a63:7cb:0:b0:380:f89f:c9a2 with SMTP id 194-20020a6307cb000000b00380f89fc9a2mr23383684pgh.264.1647410335389; Tue, 15 Mar 2022 22:58:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 14/17] tests/tcg/m68k: Add trap.c Date: Tue, 15 Mar 2022 22:58:37 -0700 Message-Id: <20220316055840.727571-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) 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::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647410833274100007 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 --- 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.25.1 From nobody Sat May 18 07:31:26 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=1647410992; cv=none; d=zohomail.com; s=zohoarc; b=DJFZStwKA+W66kDwORItE/lu4jY8Wx3/3DZbhJSFT8Tln8dc62AT9w/OCN9PBlzpItL4RM654evm8O6ArFcfcll0CgQDnIbZtx9BJaB84teZHFZrhE9Rkg8P6KBX3sjTNPz6d/YHy7Lw9zpUeu9pJtm2rEfhZ3kit2cz3ofBM18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647410992; 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=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=DUNLvEZWZGfo1lp579hfzp7PdqrAwlEhUbOOf8aV/PWIKM4mvLlHga2+i9MRmm+9fTS/P+EpLdqSQani/dQx8PzR6ZC7NBLVVHQT+dUG3jpB3mTkkavGbYzBUXZ5//AEAR1ZrvUB9lY6Jprz71pfgRJGwUa7LissS/toI0/WfZE= 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 1647410992064127.01083647638882; Tue, 15 Mar 2022 23:09:52 -0700 (PDT) Received: from localhost ([::1]:50124 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMr0-00061L-GY for importer@patchew.org; Wed, 16 Mar 2022 02:09:50 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgV-0002mo-7o for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:59 -0400 Received: from [2607:f8b0:4864:20::430] (port=37786 helo=mail-pf1-x430.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgT-0006UH-Ln for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:58 -0400 Received: by mail-pf1-x430.google.com with SMTP id t5so2555715pfg.4 for ; Tue, 15 Mar 2022 22:58:57 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=y3VL7dxbawsuNElVlAzqQiOuvcWEl44aiEPZ+5+mbX56dByS/YXXF7QudSbKs5055a jc4Jutqt5jyRMykrQkk8pxE/hZXxXrysXHAjlFkXtSCfUvP52BKhU1wifrFh81DUlYHu 9v7eSWPjt3YeZhb9NZu+BHFCkCZlyQIh0J7W5M90RdpYrw7RjRk8ignBYT9MFZOzsENQ igALtrnFP2Y/8eGOZIcRHrxkYxJt4rIjzZCFhMXWPpTgvluVs+PWIxm3gJ92O0n08z3Q yi1kqOQElvkVnbtqzzFYbkRrdv1QPCBzyLRoDHXa0Dak7NtB9yoP3QVWlHGerrm9Rixc LdqA== 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=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=NXFko/Vm8EJWBT1UhJ7VPQo27/zGc7NR1EtzsxX9eYmoHG62XgxmmaBddH7nY9duyT KVmayfpmbPafmr3Mc2x1ywarj6hsC3nGsW/66WzvXssuggIbppzj4GumkwO650SBnDJh HIL3tGKGlJHW1zVwh7twD6AqaNRoiyFdoMZSgIBHwjfVNwVkYNY5fbCJPj2J6ifcRBVY 7M/zvrMVfehsRd97qGZRvejydapUuv5503N+Ritxf9d2mxRqsvkHNEbMhHMBN1Bzt13F rNB5kMZBS3obdhoxVnWoLOrLjBmLikb4mKkQuYz0QZfA3V6BUUbLb/eK5gUfX39nNF+M LsTw== X-Gm-Message-State: AOAM5334KSIJDLxtNaL4/4owClCh6S6w+Us3r5UEIxc4WkHSJ+lmSNiV 0VBgZEgHsAiOdZQ+QV3+ljwO20hhP7qqMg== X-Google-Smtp-Source: ABdhPJzbkw6Du4l4SMkFmpj0vXjEyNH4oAjjpNAgNAUHxZNIWqxLfRcJjnPshCwL5GlZQtYjCFEamQ== X-Received: by 2002:a63:4e:0:b0:37f:f3f0:2d24 with SMTP id 75-20020a63004e000000b0037ff3f02d24mr26897821pga.526.1647410336437; Tue, 15 Mar 2022 22:58:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 15/17] linux-user/strace: Fix print_syscall_err Date: Tue, 15 Mar 2022 22:58:38 -0700 Message-Id: <20220316055840.727571-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::430 (failed) 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::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=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: 1647410994102100001 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..f235118fb6 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 > -4096) { errstr =3D target_strerror(-ret); if (errstr) { qemu_log("-1 errno=3D%d (%s)", (int)-ret, errstr); --=20 2.25.1 From nobody Sat May 18 07:31:26 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=1647411274; cv=none; d=zohomail.com; s=zohoarc; b=DlTibTKyhqZuKiylFtLWari4LkWLN4fQDVVlYpOHqKHoQbL58wbtSeiOa9t4RSfPAhSE9xuCr9BpzXDpxkO5On/aAtiLMPz3eCmUfTqceEX1txmZYh/YeIbDcZaucg2h1F5GZDkD99loO4NlvYsnOogxjYjiYmwYx5utHbHQl6o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647411274; 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=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=BBmUqhuyPdVpMeLhnOUKgRzsrmQBjt9RJ6BFP5N5JpNH7I/acMbHKiEI5fp0ir4hiFZ/mDyVNgg0A1Hmq24ko/LM+Wv+acrDwagc6KHTmFA37llWNpPwRPev9LPB0x1uAtyMKy7esQbOgLfXoMEoclDIYowOMbqzKqgHwn1QbbQ= 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 164741127395171.22921275542035; Tue, 15 Mar 2022 23:14:33 -0700 (PDT) Received: from localhost ([::1]:59086 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMvY-0003EF-UI for importer@patchew.org; Wed, 16 Mar 2022 02:14:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgW-0002qp-2q for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: from [2607:f8b0:4864:20::42f] (port=34528 helo=mail-pf1-x42f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgU-0006UW-L7 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:59 -0400 Received: by mail-pf1-x42f.google.com with SMTP id l8so2578182pfu.1 for ; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=QavHItxKnGLg7l3wI+xP9mWbiHSOlXiCS4g0093ctY0djcbS+rQ010qN+Hc5qWYh4P OtYMmO44pEo9NSpBg6JaPNOmWh2wuXNMi2ucGgnI5aYQWCj1GcnJo2kL9F1V/VT5CXOb qe6tx7JJZynPMfiPc6OrhTp0bGSg0+fMvwJ2rWqBZTAIY/JLJUBhMP/Hp6ljq3uOuN6Y qntWAuZJNvVdcRNzkjdj0lFq7xuUEBiM5Mj3RAzUe0dZr9cHhiDAj0AHSLHYTRu2Yu9J f457fgEjlmYpll0LBlOtXTPVrs/yimr6zvb4L3a640R4oPXyS4GfN4X/sUCImLS4BawB Ygqg== 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=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=qfZs9wVjn/guBRY6pOrP/1yvBdwIYn34hPjRtd/b+RAv5g7tByyYuORnIa/bGoE6X0 oOOxwbmicWZsOwcD8xrbVrK3IZHJ+AS13wlv4GNeNiaAOiOL3TdhXSy0gNw12KUWfG8r iPwxHrB51NWhIbpxNqQr3oN/7tSuqTzN9yTRsgdE9u4QkauUGiNy0cwP7N7g99DweMXP bnL0z2Tg6M9OSoTtDxKYkrfc0bsAsD7a3k2eVhBjE2xPImDuXCVgDoGKdHX3Xf6GKzqT wQFsZkA88tN6HvmhTL+ihseMD/Bjg9K1hnc5O8XuZ/I3aNis79TDfg4NrCavSF/zv1o7 AUBA== X-Gm-Message-State: AOAM532pHp0MlgTNrlooDWySyJWYmPtk7TODGzmyJyxmZqZ2xeonF5bA xD+gDfbpcud4TGMQABnq46Yjnegz2cyDLg== X-Google-Smtp-Source: ABdhPJzGNYF8mfqNWmEcDZJBCoNnI4yv3iebPDIOQUMISwLIwRM51NR9V8kGYRP5d3NgmZgPnfiycg== X-Received: by 2002:a05:6a02:182:b0:374:5a57:cbf9 with SMTP id bj2-20020a056a02018200b003745a57cbf9mr26613861pgb.616.1647410337302; Tue, 15 Mar 2022 22:58:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 16/17] linux-user/strace: Adjust get_thread_area for m68k Date: Tue, 15 Mar 2022 22:58:39 -0700 Message-Id: <20220316055840.727571-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42f (failed) 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::42f; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42f.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647411276351100001 Content-Type: text/plain; charset="utf-8" Unlike i386, m68k get_thread_area has no arguments. Signed-off-by: Richard Henderson --- 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.25.1 From nobody Sat May 18 07:31:26 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=1647411277; cv=none; d=zohomail.com; s=zohoarc; b=GUj9KJB+xbuoU8v3s6ZIfGWLgggoBs33J/QCrhs0M51nsXB4+GAs14uF0P8qNqVdukG+S52o6WfC39S+Jfdmugk0LKjHn/537n10unNvYEbku3z05NuLP/Zp4R6+Tx7jmxl9GmZxAUz5cfYwn4G/TAD/44HR3sBMgkJtK3kVvIM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647411277; 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=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=dMvFXye4JQYGZivhwgM9R3cy3F67pyhf7NS2URvu16eOjmUgg8SL6jKISzGYKnK3lbr/FU6E8Ehi+Yi2Brcma/bmQQwbP5djBgaiG27UQtzyDlfh4bRIViOXxkDRTYkb+x3Od/pyUvP4syTrMO/pXSkUmgKi0MHWXKHjLmFfuPA= 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 1647411277016190.50531123016765; Tue, 15 Mar 2022 23:14:37 -0700 (PDT) Received: from localhost ([::1]:59272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMvb-0003Lh-Fa for importer@patchew.org; Wed, 16 Mar 2022 02:14:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58974) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgW-0002tu-Po for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: from [2607:f8b0:4864:20::435] (port=42558 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgV-0006Uk-BT for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: by mail-pf1-x435.google.com with SMTP id g19so2513963pfc.9 for ; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58: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=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=c4Bj3hUtBd0LzD1TMQRURdvn22Veadd8xzhGj0lmzIdvneY7Cei2YWNm1JiB2ELe3n bPgRcLyV8F9RLj6woy+As4AtTb5VZIn9YcEBKuqrUTVKiciWAGkYf96utrAq3noTohF8 TY2OA/bvJHavFTtuy7bt8Hc9UR9qwhiz3EJByjU3SrndMc/PEyTbb06ddAvkgyFoysg1 9Tm//7JSMvOuSDxcgBenPEMGia5NGY4rlexlQ9WL+pZ6Q7eG0vYFdkFcgr74px63igpd fkMq9HTSjR4UEchJkSaEG38LhuajlECnKBKlRzNLpmlZVqh6bdEPdXRG2aOKRN+vqIyC I5CA== 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=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=BWpr3ccT0EC5h/9ck+30ZOXHIiPw6FRwqrot3twhJN3/vRLolGfVp8x7WB3c8d0dlq 3pix7x9Dn7RlRm3KHzuh67ircBBLFGotFpe7PvabhMnWka4vOKU4BWsn9OHf3Ikhp5vv q7yYfw6rAAxdvCuAYodCfPVCvmWo8RpiaUDb58Tb543eUJ0M9A2l62SoPvPv9s9IH/R5 9UY1lWyCP1qi28Z6D3OOj+j3SC2SuBZAM/hneHedpP5poQsMA3FSaFuTc3iQj7LiK2wb hzhjFDY14zUTaOllnVuOoSzZMXCm/OiSaEcqkaI1TWkGrxfde27FlYLhhjOBF8gMf59r VB4Q== X-Gm-Message-State: AOAM530+R2i7P9C1qPc3qNoxZc3pTYuoyyc56MdVskIV6/TrDs5Norfg SOq9sD/TAFYvQg8JkgAximon4STORWVXqQ== X-Google-Smtp-Source: ABdhPJwpAPRHi8nKa8EyKTYiiUmliGHurlEY9Y7iTml9M8vjI+iUTW0WQYYgVdX/87vp6RpY3b3/Tg== X-Received: by 2002:a63:5051:0:b0:374:5fd0:f131 with SMTP id q17-20020a635051000000b003745fd0f131mr27485079pgl.431.1647410338246; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 17/17] target/m68k: Mark helper_raise_exception as noreturn Date: Tue, 15 Mar 2022 22:58:40 -0700 Message-Id: <20220316055840.727571-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) 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::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1647411278117100003 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 --- 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 0de4743d01..374fdcad87 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) +static void QEMU_NORETURN +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) +static void QEMU_NORETURN raise_exception(CPUM68KState *env, int tt) { raise_exception_ra(env, tt, 0); } --=20 2.25.1