From nobody Wed May 15 20:35:59 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=1653670202; cv=none; d=zohomail.com; s=zohoarc; b=WqVtaGEVMfExNo2EHYGe1zn4AM16hnRhiT6+2XMitRE9pozzFr+XJxXRN+15VVrCYq7jlbi+ppfS3Rxp56eW5j3fkdsCenMTP6XwQ1hWZcvaTm3B6XKix0orVJ3KyFRJ41N3PKA8LzrmecRecBfvpY3MKf/+XLajQhy1/bYWOEE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670202; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=FXKm1QgjtCxa7GcSmT8N7rBEPJiy0bKAeBf0j0mGzMoNeL0p6L06XLoTFlnKqVB+ZLPgssc57ugS1hIxyBbrH1lqfcseynLZo0hd3y9JdeGaS0oOsPX4aieNODp2zjOzEhob5P6URqi9PfZgERbcIqNqXiafU1x5g1zXodIClbc= 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 1653670202815323.6391068173739; Fri, 27 May 2022 09:50:02 -0700 (PDT) Received: from localhost ([::1]:42566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudA1-0003RC-EV for importer@patchew.org; Fri, 27 May 2022 12:50:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8G-0001Fk-Mn for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:13 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:34174) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8E-0005Nh-Vz for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:12 -0400 Received: by mail-pj1-x102a.google.com with SMTP id nn3-20020a17090b38c300b001e0e091cf03so3227967pjb.1 for ; Fri, 27 May 2022 09:48:10 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=rzH4B/EN6wNnP0USKTRUwXz9icJW+eI/yIXE2yOsaVVUT3Ye0ClBjVehFBlQOyRahG ylCYK1rx8BOtz5rsi3p+1ZHlJwyyOBzj+wwLTcIba9vGb+Q4L5PIr0TlSndwmfbETFzC xqVXKXs4spxb5sIOhyasbzA3T3Y9Qn2YPBwQeieBxwae0QfHKdWAc63+zR58KeSeQT2B 7WnTkfX1uiKdFq9VqIEAepzh9GfPnAZLljVkE+s6BPfvFsri+EUXM121kB4lBJGdWy0P 7Sy+jDuTrCXUhfWkRn1WPFysxXX+JgJLOPNiY5TnSxPUO9c6a8f8vJkT6mfjR/Aevn/3 /hoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=v6GsMd9l2dAfQx+Uj+qJ1gCQp2pHPy4DQInBPdc5TCM=; b=gytoCK+qF+24nrrW449KgV7PFidf5v3K2y6atjcPuhQXeMMS/4dBNToxguPG7rhSMp sCZeV3oOHYEff7XdjdIljjg2KJY5teNAbjdVKFjdQiwvm6O9ioki3lS64Acn3ngepzTi JKbBPvndm7XYtkA7oF7atpbBtwVgUl8sSNYqXVvAH/yxAf9CEgAGbtBYPJiPcrVA/9XF gCkQt2e9j4EqDREqBpLfKKHm9iEgw9QqDulUH9wqFw42UEC5260Spo0faZE+exI/3ZLo nE9K0vuO4LLq7yVIs4/sai5JI5tZ1rXxF4y80t29hwTEGFwZx+0gOvs4/qDMYKHYWdJl SeeA== X-Gm-Message-State: AOAM532gLIQTdsQm6rvAEffVok2vZdVkHl2gmm+uf8oVfaEL77C30n28 347C0O8IHsnVB/HI0EfBsS48AkD2NJy3pg== X-Google-Smtp-Source: ABdhPJzFJXEAlaQ+qN76qG5tIiizDnbHecfrx7CzI/eUvi+N2q2w2Qd68uGqCWWmIR9tEDvbgeHREA== X-Received: by 2002:a17:90b:1d0b:b0:1df:b3dc:5140 with SMTP id on11-20020a17090b1d0b00b001dfb3dc5140mr9387411pjb.225.1653670089592; Fri, 27 May 2022 09:48:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 01/17] target/m68k: Raise the TRAPn exception with the correct pc Date: Fri, 27 May 2022 09:47:51 -0700 Message-Id: <20220527164807.135038-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670203743100001 Content-Type: text/plain; charset="utf-8" Rather than adjust the PC in all of the consumers, raise the exception with the correct PC in the first place. Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 1 - target/m68k/op_helper.c | 9 --------- target/m68k/translate.c | 2 +- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index d1bf8548b7..56417f7401 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -56,7 +56,6 @@ void cpu_loop(CPUM68KState *env) { abi_long ret; n =3D env->dregs[0]; - env->pc +=3D 2; ret =3D do_syscall(env, n, env->dregs[1], diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 8decc61240..d30f988ae0 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -217,11 +217,6 @@ static void cf_interrupt_all(CPUM68KState *env, int is= _hw) cpu_loop_exit(cs); return; } - if (cs->exception_index >=3D EXCP_TRAP0 - && cs->exception_index <=3D EXCP_TRAP15) { - /* Move the PC after the trap instruction. */ - retaddr +=3D 2; - } } =20 vector =3D cs->exception_index << 2; @@ -304,10 +299,6 @@ static void m68k_interrupt_all(CPUM68KState *env, int = is_hw) /* Return from an exception. */ m68k_rte(env); return; - case EXCP_TRAP0 ... EXCP_TRAP15: - /* Move the PC after the trap instruction. */ - retaddr +=3D 2; - break; } } =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 4026572ed8..6d6d026e3c 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4860,7 +4860,7 @@ DISAS_INSN(wdebug) =20 DISAS_INSN(trap) { - gen_exception(s, s->base.pc_next, EXCP_TRAP0 + (insn & 0xf)); + gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } =20 static void gen_load_fcr(DisasContext *s, TCGv res, int reg) --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653671102; cv=none; d=zohomail.com; s=zohoarc; b=lig/wpQ3rymEEkaMciP9GDuZ1KERGKgw0zljF7Jatgilp/FgfxnE+VxnKCcC8kXCp9U++jQdocD6eQgWJOeyiQItWbth93KzTaLvEzjQJMvq1K2ZJ2SXdRPBPI5ss4UnRaq9MYXaAWPFUIN8AHQi6tBj4L127NJPHaWrlxUQrZw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671102; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=C7TVhPXfs42qJiwDeTJ1VvU29ewTMxn0rcHpf7AhCepwL54Uaq8B7rtNFL6fRsakbm/TSq/hUJhtMozIBDVMIKGWJsKy6Q6wDHM4yLofo+YFmy36bneM+LCBcQ7Sr75Z/Dlwp/jIlCzdRh9WGtkQk8hhqwjJeULqFzklUGawqzw= 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 16536711023771009.9891306735182; Fri, 27 May 2022 10:05:02 -0700 (PDT) Received: from localhost ([::1]:44936 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudOX-0000bj-35 for importer@patchew.org; Fri, 27 May 2022 13:05:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52974) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8S-0001jl-RO for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:24 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:33426) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8F-0005Nn-NL for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:24 -0400 Received: by mail-pf1-x42e.google.com with SMTP id 202so4823457pfu.0 for ; Fri, 27 May 2022 09:48:11 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=szRP+MhWzymXnTC155Br3Y/VKDlUnUGfKKg5AvTeWtg8qXq9++gPhAM4mEA3IhVZMZ wDnVj39vXVRltmJ2mbsWTm4QhDAo2VejmmmlnoHLZ7P96N5MgV8Cskc7g5t0eSQq5RrK 2zw8DKs43l1ua2NS2Kz9KlGfsgH/H1wXuR0GUrtTRuUjORs3CJadCY7JR/7mHo6SEDdZ EwY9B3pBeBZ5wNds0HMcBFYPMJ82VdbWkWIBiOdcecSo5TkXWdqynUfbLSm36vCl+Ta2 TRS+HpPCw1XfCW2C3IeGYfysegaAzGScRfrkMUzi55PdzwXN4Sf7Ada0ZE7Rzp4ac/2b P4Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hV+IA21ry8VojR25e1IAEE42j7p287jopA93G1Fi9U8=; b=XkaQ8ON4y9LLNy33hiLtSe9zqdW4vY9/I5p3Od5zz0hGNS0JmVI6eP5i6oov4wKocW NIZCGyY8Ala4VqOYtu8cvQp3L0eLm/G1UVW0UPOeQBTmxytZlCWG83gI6rggsWsQCUCU xWoBWp8r+kl5+ELQyUeFi88TW20lYNJN4Z2v5QLzQUO33mCH15b/UVd2drechq01Raa/ +D3IvoY8sxL5BJxPyq1Dq9axcE/WrKYHyWOJs5huDl5Zc+tCojfi14V8aQeoO++9khIQ JpD93wqc0WIqLLisDzDDjM2+n5VUgR+m7Y9g6QsgGCPl0IIhSfdpwf+jmPfDW9XLfexC Ox9Q== X-Gm-Message-State: AOAM532ilrHnEsfFBwtghGkmafMj0/3zL0oaLAnoEGv+sQ8apKCONFQz 3mNydDJHk24djaCvoyNrE36Xq4Wx2FBXpg== X-Google-Smtp-Source: ABdhPJyyIYi2VSQyDg2HAw7GiP/YHU9ErVEWEoW5BUbUH9R4fGEaupTlY1y4t/Pl6nspUnqbZjsyPQ== X-Received: by 2002:a63:a1e:0:b0:3db:6616:9f45 with SMTP id 30-20020a630a1e000000b003db66169f45mr37918068pgk.69.1653670090395; Fri, 27 May 2022 09:48:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 02/17] target/m68k: Switch over exception type in m68k_interrupt_all Date: Fri, 27 May 2022 09:47:52 -0700 Message-Id: <20220527164807.135038-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671102817100001 Replace an if ladder with a switch for clarity. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/m68k/op_helper.c | 49 +++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index d30f988ae0..2b94a6ec84 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -333,7 +333,8 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) sp &=3D ~1; } =20 - if (cs->exception_index =3D=3D EXCP_ACCESS) { + switch (cs->exception_index) { + case EXCP_ACCESS: if (env->mmu.fault) { cpu_abort(cs, "DOUBLE MMU FAULT\n"); } @@ -391,29 +392,39 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) "ssw: %08x ea: %08x sfc: %d dfc: %d\n", env->mmu.ssw, env->mmu.ar, env->sfc, env->dfc); } - } else if (cs->exception_index =3D=3D EXCP_ADDRESS) { + break; + + case EXCP_ADDRESS: do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); - } else if (cs->exception_index =3D=3D EXCP_ILLEGAL || - cs->exception_index =3D=3D EXCP_DIV0 || - cs->exception_index =3D=3D EXCP_CHK || - cs->exception_index =3D=3D EXCP_TRAPCC || - cs->exception_index =3D=3D EXCP_TRACE) { + break; + + case EXCP_ILLEGAL: + case EXCP_DIV0: + case EXCP_CHK: + case EXCP_TRAPCC: + case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, retaddr); - } else if (is_hw && oldsr & SR_M && - cs->exception_index >=3D EXCP_SPURIOUS && - cs->exception_index <=3D EXCP_INT_LEVEL_7) { - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); - oldsr =3D sr; - env->aregs[7] =3D sp; - cpu_m68k_set_sr(env, sr &=3D ~SR_M); - sp =3D env->aregs[7]; - if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { - sp &=3D ~1; + break; + + case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: + if (is_hw && oldsr & SR_M) { + do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + oldsr =3D sr; + env->aregs[7] =3D sp; + cpu_m68k_set_sr(env, sr &=3D ~SR_M); + sp =3D env->aregs[7]; + if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { + sp &=3D ~1; + } + do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); + break; } - do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); - } else { + /* fall through */ + + default: do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + break; } =20 env->aregs[7] =3D sp; --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670203; cv=none; d=zohomail.com; s=zohoarc; b=SxqlKiHIpNIAQIyVcguqJ8iwF3+mi6XEih1nIs07IP/k8iWgQrOWsB95PvS9i+/y0qwIUaqBmCLMp3lFaJ6ziJrfUi3JlUqqyzseAiTjRJKaVOyDI8sm+m7Kya3wVgQxgqkj9E1z0zaBxAVSD8uIwG6yv/agbFnAZvD20gyQa28= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670203; 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=mCzaU+JrOI2uB5gjGXQ6lDaHwnlMpGfIPzqc07MdKqM=; b=fIRHFsTjj1NkNZ78CocYzTtyZe+5n/KOquJnyygsAS8Gij5HxTWBFpCbp2C1Piwj7ibFAYoODSbkb4K2rZXjxYLUMViIduvcyXlQkK2Sk6NjsacyOos5Z8rwapyOxOHwrpiZ+C4CNxLMFRuzKSCuG4oA1c1ORO9Vg+sW3WRccA8= 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 1653670203744871.828271447908; Fri, 27 May 2022 09:50:03 -0700 (PDT) Received: from localhost ([::1]:42664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudA2-0003Uz-QI for importer@patchew.org; Fri, 27 May 2022 12:50:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8J-0001Ir-Aq for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:15 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:41801) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8H-0005Nr-Py for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:15 -0400 Received: by mail-pf1-x432.google.com with SMTP id p8so4774294pfh.8 for ; Fri, 27 May 2022 09:48:12 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:11 -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=mCzaU+JrOI2uB5gjGXQ6lDaHwnlMpGfIPzqc07MdKqM=; b=EPjKqx/MU/ieambM1J14JB9lO9dxRYulwb8Sl/kSACBXKKWfh1gO20pmO2lpJ3xH6t MWyZntcuSTQmYA445ndSKmUn5ubFlXIZZUXYDRFM69Xnht1A7MkEJcguBCZd0fVNSgAh v7RqQf+6ptCFuuXF/k4SW+O7I1+ccZMcifqecGgyT3b7LY1g/d28n1vf2L9N92gI4OaI e/XA+6nqcKfmsfzNDvj7fv/XcMcaJCKQlvl+8djnTZDccys/jIC4alHPiXmLhy+MhdGE TGolE7iUDvyH/c5v3COSYkfOcEl/psaVjZQCPPQ0MwzpgB3rVE3PSI/RJu+D1ANn+zd6 3L7Q== 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=mCzaU+JrOI2uB5gjGXQ6lDaHwnlMpGfIPzqc07MdKqM=; b=urukG6g34XhtA7BIei0ScoFUkY4Qjv2kVFjRTgfoLkyjV2giv2EvvohuMh1WLdbEyL lEkeEUEsl0WEVIsOpqMFPUKrKHg7kBLlhFBaJayjknV0i/fPr20jdzHHfqAfe9JzZbI7 D83HLFQRh23QAxy0LJ/Qz8NJZMVOaBEJN+Iy9Z5stzb3ldrhpG8gaFwpfcscUUavag9D YE75mr8c7uVlr0Q49TjjGCPLRJIFm1lm2MwipD/p4+Cp2QlbbvhD3xyEB8NROpFQBD2M Bt1WR3Fkp07JUVVd9CcL4DZHRv3GVhDn/aWAVsnkDxGPPiUfKgEZIVCL7+ri3UlY5UsY CrPQ== X-Gm-Message-State: AOAM5309CaLmuVGUVbkBWb+uDeQR++Sd0FXAUEkl/YaHJCMGjlLUdFww ZalNdGg4wxRHE8QLV9DlwuvNV6SjOU2lWA== X-Google-Smtp-Source: ABdhPJwUO3SrO4veons/YPd1VHJgq9eKt5b3bh8zCUfrXmiOUfH18zmB3RnvElYAbdREiChbyPM3NA== X-Received: by 2002:a65:404c:0:b0:3c6:4018:ffbf with SMTP id h12-20020a65404c000000b003c64018ffbfmr38437520pgp.408.1653670091474; Fri, 27 May 2022 09:48:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 03/17] target/m68k: Fix coding style in m68k_interrupt_all Date: Fri, 27 May 2022 09:47:53 -0700 Message-Id: <20220527164807.135038-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670205791100003 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 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier 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.34.1 From nobody Wed May 15 20:35:59 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=1653670501; cv=none; d=zohomail.com; s=zohoarc; b=gXWyAtcyHM4T3sVhlEEFf2L07oYhacFMndzWJiXj+6i+8c817YhgQwbMBAV1SaKEYsTVd3RYwkv/iyw4KqMK0/Bc5yLUM/qRC4HaajMH8H73N+VUK2O+dqsdPkHP2LbcaA3DPPtYdT7qkvkU4FmiGPsfdmL10ut4w4uWyb2S8qk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670501; 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=P8QVHsssV/N9S00mQXjYBPgFpjBb96NXM+kaVdZ/lRE=; b=P5kDD0+HH5xADtIW+iGF/u6YLlLIzl4FGZ4GEUW8msktmiQbnF87uuIZLrHUVpwvAJdV2xur0fiEvSuE6n8mJvKtuZnhwG7xWO/QZDJCYEaPOg3MCDNXPKECRg577mSuNa20C9SKLnguJmYSJI9cC+hHRnmgd39DDCuUKWjavIQ= 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 165367050132026.994601250799406; Fri, 27 May 2022 09:55:01 -0700 (PDT) Received: from localhost ([::1]:50932 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudEo-00011l-2e for importer@patchew.org; Fri, 27 May 2022 12:54:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8J-0001JE-G2 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:15 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]:44564) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8H-0005O7-RC for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:15 -0400 Received: by mail-pg1-x536.google.com with SMTP id v15so4356157pgk.11 for ; Fri, 27 May 2022 09:48:13 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:12 -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=P8QVHsssV/N9S00mQXjYBPgFpjBb96NXM+kaVdZ/lRE=; b=e+X6FO9nsM/ng4sW2GgTM449USgBSDm4fD5KpBwjTFcq8hwLN9cGSCXPV2t13uOIJB gmn+0mnpg2MMmLv3qO8eKJpqJp2WbkOV2YqTdg56xmb8HdhMMiF90fD0PknJoWbs+SmQ 2lAXySzh2nz6aLF5/88uSpoochFb0KQRGqagE+JSdy+NOACHGYfuEp32e+vE8+UXnSbL Coq5OmOghwMRvETwVWPZ3jQ3euyP6DNzdgRGCQNkDc5Fyu/JfUKjrVwcIq8ER4CnR9iE OJX6pNZx+oJDzS3jPn2R9byhb2pFuNk/81NCj9KUsoySngT8KQb/zSRwtu1GiuUr6dD5 qp/Q== 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=P8QVHsssV/N9S00mQXjYBPgFpjBb96NXM+kaVdZ/lRE=; b=7eCvQzgPiE+m+4+lRdgyr1dREdKCeVmdDkJY/YbQ7jQ5aV/NknXIiMSoj4z0hrX7gs RdEzRb7CvVgxrlc5gIWpizwRJxzxjOEhK94RpdBZBXGmD0DJLDbEfZGHHSxCBLjCP9mN 3YYBJ23pi5Tp0/JYg3p1OhBGP5lJf+EX5NHi6xAo8/oHc5DK/joIDvA2ZFoIyHAWYld4 7vUrVgK8oQGQbO1y/qwtKyxUc3+H+OCDPwBtLNhn43JwuZw48AGF3vWhavFAiu/766xT 4XMfcMWM/Jj8E8qRKOBAKvnch2CiBclwrphi73OxthHwSshTwULoJjNfxBkBdill9uK7 TEDg== X-Gm-Message-State: AOAM532DkHALw2jAw9jjb8FBGwP4BKavadtqgUSOACfPIwFnYq6RXvKy nSgk2KpPMHuEJEInRmmrgFqB3BuWpOAq+g== X-Google-Smtp-Source: ABdhPJxNxKGlLU6LZcC0w1PyjbFdPsJKLKHQolJ0s7i8fkiH2ZktF88RkJUbrzvm5P/L9S4fYvCM8A== X-Received: by 2002:a05:6a00:22c3:b0:518:6a98:b06 with SMTP id f3-20020a056a0022c300b005186a980b06mr38627405pfj.3.1653670092519; Fri, 27 May 2022 09:48:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 04/17] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15 Date: Fri, 27 May 2022 09:47:54 -0700 Message-Id: <20220527164807.135038-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670502110100001 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 Reviewed-by: Laurent Vivier --- linux-user/m68k/cpu_loop.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 56417f7401..12e5d9cd53 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -75,7 +75,11 @@ void cpu_loop(CPUM68KState *env) case EXCP_INTERRUPT: /* just indicate that signals should be handled asap */ break; + case EXCP_TRAP0 + 1 ... EXCP_TRAP0 + 14: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLTRP, env->pc); + break; case EXCP_DEBUG: + case EXCP_TRAP15: force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670705; cv=none; d=zohomail.com; s=zohoarc; b=F/IEmyMhswbWIbHtqC0yL3sTloEIDnJH0cEgu++dWo1JD+SEr8olOLIVlNeLsYhOQa5wySM9z22BOjouUY0tnmbDpKHdlPQ49WFvVJXnrRVXG+mXSgiw0G8eXE+jjzN7wTyL5J9T+JHkV12sZuD6WvuFL059Svfe3nNhQ43trW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670705; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=WDQ38d+BNPZC+9rQsljVYmBbOLMMeH/1DwBs8BLS80k3P5MfZ7UDBaJjKGgXMdcBaRn8pYRD23rmtesvrwo8ORmwP5D8rIyL2iIIAWrYn8jNt1AOZb3qAI/litU/UYr7ynl/ZOOJT9H/ug/e97MrObDey9W3DdZm7zUdgHrCVb8= 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 1653670705845642.8671675205335; Fri, 27 May 2022 09:58:25 -0700 (PDT) Received: from localhost ([::1]:58722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudI8-0006Y3-A4 for importer@patchew.org; Fri, 27 May 2022 12:58:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8K-0001MY-VB for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:16 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]:33614) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8J-0005OF-0L for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:16 -0400 Received: by mail-pl1-x62b.google.com with SMTP id f18so4642442plg.0 for ; Fri, 27 May 2022 09:48:14 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=Gy510/cGr9r2KUbeYfyW3JADAKO2l6E+2VBZmM7WHgyL5M9AE7aFpYK7QVKY+nE5RS lsddZ3qOLXmgXNJuTu5gY2gnSUDpUVSfqJn2Unf2kIB6H+PjoRjSChuS3iUQwE+8rs0A SFyvtwin+uobuZfMa2fxs5oBzEeGJbiTtjTUXrofmOe1csDnuPoEbMhlLO+nhqkkTPrf hIOelmG1TBBLsKjCzbaAMF3rIGM4GO8vj/6EWVofbHfC+HHgFSHc3WiacFACXQNfYwJH GTxhT+ZxCSrNRx+sSQg0RPZfgvEAHHsvQhrMlg7xEGpX/9GCrvpebJ2u0sK68wsRzmaD aC4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dBQmcYvQNWemNoz94qCXnnbynO5dcM+A32yDVQduyko=; b=pj43vxBQWbmLa0VK+4uDGgBNQR2ttHEUByF7aDt0abSoGMK9pPj6njUjV8DMFGwVGD WHObNakApKvUHGR56sp6VnKJzT/i4GJaIX1lEZhPlwyvTN7/y0Z8Z9tvynMtUkvwiZcs G1J+ICgIJSzCoH8k4tWr3n4VDfqk3rbHA8vPO3Fh1hghAgPnkQ0yAyZYaxCLWUSP8Uoh y2p6Hfz7Nz9flscPtrruoeztnqqmeP58TsHLDLFNClyqhLfM5qNtetWHJIsstYHXXgdX Ze3jvAs8c3T+4bHeWHHNJM/HWyKR7V45xXYWvYzHufPSWOaqEAoPwLQSY7cVB+fgEO3M QPKg== X-Gm-Message-State: AOAM5330aMQI8nb02cAUmXLSZxrCkwY+TBUvmZGwhstQiEqwLRY65bOW 2UziMKcs2QtfxkeQekUFdf/m/31ExfXqXw== X-Google-Smtp-Source: ABdhPJz863RbmxE/L9gEPquUM1wjvZSejA6+B93RTXRsVomVOkhf4fDnOaIQbQtiQ+19SVow7ZaHpA== X-Received: by 2002:a17:903:244c:b0:162:2037:aacc with SMTP id l12-20020a170903244c00b001622037aaccmr27484839pls.46.1653670093632; Fri, 27 May 2022 09:48:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 05/17] target/m68k: Remove retaddr in m68k_interrupt_all Date: Fri, 27 May 2022 09:47:55 -0700 Message-Id: <20220527164807.135038-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670707482100001 The only value this variable holds is now env->pc. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/m68k/op_helper.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 0f41c2dce3..777869790b 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -287,12 +287,9 @@ static void m68k_interrupt_all(CPUM68KState *env, int = is_hw) { CPUState *cs =3D env_cpu(env); uint32_t sp; - uint32_t retaddr; uint32_t vector; uint16_t sr, oldsr; =20 - retaddr =3D env->pc; - if (!is_hw) { switch (cs->exception_index) { case EXCP_RTE: @@ -385,7 +382,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) sp -=3D 4; cpu_stl_mmuidx_ra(env, sp, env->mmu.ar, MMU_KERNEL_IDX, 0); =20 - do_stack_frame(env, &sp, 7, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 7, oldsr, 0, env->pc); env->mmu.fault =3D false; if (qemu_loglevel_mask(CPU_LOG_INT)) { qemu_log(" " @@ -395,7 +392,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_ADDRESS: - do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 case EXCP_ILLEGAL: @@ -404,12 +401,12 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ - do_stack_frame(env, &sp, 2, oldsr, env->pc, retaddr); + do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: if (is_hw && (oldsr & SR_M)) { - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); oldsr =3D sr; env->aregs[7] =3D sp; cpu_m68k_set_sr(env, sr & ~SR_M); @@ -417,13 +414,13 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { sp &=3D ~1; } - do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 1, oldsr, 0, env->pc); break; } /* fall through */ =20 default: - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); break; } =20 --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670934; cv=none; d=zohomail.com; s=zohoarc; b=byoeu1BeRzZQov3ecXRDXQB/mCbNYqQ4Uzz8Y6MENxK9YSeFNJMXhI2AcEhVIyegPMCcGavaZe9h+Ux9UWsjjhzp+Ir+eSr5BYezlYPLZWVAL7lEGPvT5s0dsxQBmF2D8V5V1vdmrb0eT+tP/XBmlgcKXFiIS2Q3l71JUj0vs0g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670934; 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=lTUaM+lqbn8KxvXwj+n9JX47C53ZG33aTbTDGh5Ahv4=; b=n4iGnHhrZVKIBLc96yno4p/WmmhrOsufTiW5zj5x39UdZRBtSV1u4vvZSqbV+Br9+x6Hw34/3DifhxbIUmlbov1yJrUqRyDQ8/LKAvnOFbT6qsUuoYqB+OuecP/HNc9sIrlovYykE8uRXLAELI9nlDAnX7UWs/BKb0JaoqCqWtA= 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 1653670934546245.21749646569833; Fri, 27 May 2022 10:02:14 -0700 (PDT) Received: from localhost ([::1]:38000 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudLp-0004B1-Hh for importer@patchew.org; Fri, 27 May 2022 13:02:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52856) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8L-0001PL-Sn for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:17 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]:50795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8K-0005OO-20 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:17 -0400 Received: by mail-pj1-x102d.google.com with SMTP id d20so957662pjr.0 for ; Fri, 27 May 2022 09:48:15 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lTUaM+lqbn8KxvXwj+n9JX47C53ZG33aTbTDGh5Ahv4=; b=x0jZrnsnykn8DH2vsjXcBAGjlvSn8h+9PLDgonUdzSjYoDJ4ZGR20NCWTkz3o9+9e1 OLtocDcFEaXWsA8YKXeQ2LytaXbuV/eJrey/G3+t6+liWwdP7i60RWwMlBuiYc3s+4hE tach9gCY5jWBMOhv+ufDJ5E9n3B5o73nxUU86eJwQ6LNqHnF+C8w+Di+UznnQ+eEDEWf eHTSQ8iGwoNKgQmLpoNQbepPF+W1LLZFXfpWVYmwaGIKfgdj8CdaSovrMBuCs5CdkqqY bCZHFxi4VnEw17HdXY8N8E2aDhGHGv81ug3KbvW2pnZYpqV1dgDtaxEI/MzsOI20aLW9 U9Pg== 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=lTUaM+lqbn8KxvXwj+n9JX47C53ZG33aTbTDGh5Ahv4=; b=fMwi+attXdWK3Xv5qonEpGMHdTb9MP04JySkCza3XmYi3sCa36sGEH4E2g2UXAuuh2 iGTJpQ30nP7SPxYX0zRwmS+ZcagrfmzjR/OZjefEZObD5fBTXjCWermwQrUOw2KjEj6+ siN6AMBgXxgZYAJ9MM5IM+FftJf7LJ57k+0TlOx2Uw1b12MyKnxPjTZc83HS//PzKPt0 1HHZ39+XG5dCo6IgEoSRJPsG9FOiFNgpvPzlyWjsZxWBI7PE2SLVlmJWvqe/FZA8X0dx Qxr3rMy8ukEobHE5GlT1OQrETVk+Lb0tyP62XF5hIIZ0YpbRPELBDDRKkrSDzcUxHZwl xwdw== X-Gm-Message-State: AOAM530ZhFJwaykNVFVpet05lfqTSUlzqmNh5Enee1LUr/IGtCvmRCz9 tNSzvqnAMtCiL0Qi3ejHUMEGoJaezvZxPA== X-Google-Smtp-Source: ABdhPJzXqQTWZX5sOB+gM0yq7ceO0B/U0iyATwzcEuHb8Rw/zfOPC/jpFy28sjaje/Eqif3y2SdJQg== X-Received: by 2002:a17:902:7c96:b0:162:3071:3266 with SMTP id y22-20020a1709027c9600b0016230713266mr23359232pll.119.1653670094684; Fri, 27 May 2022 09:48:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 06/17] target/m68k: Fix address argument for EXCP_CHK Date: Fri, 27 May 2022 09:47:56 -0700 Message-Id: <20220527164807.135038-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670934854100001 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), CHK, CHK2 (and others) are supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. Create a raise_exception_format2 function to centralize recording of the trapping pc in mmu.ar, plus advancing to the next insn. Update m68k_interrupt_all to pass mmu.ar to do_stack_frame. Update cpu_loop to pass mmu.ar to siginfo.si_addr, as the kernel does in trap_c(). Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- target/m68k/cpu.h | 6 +++++ linux-user/m68k/cpu_loop.c | 2 +- target/m68k/op_helper.c | 54 ++++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 9b3bf7a448..558c3c67d6 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -122,6 +122,12 @@ typedef struct CPUArchState { =20 /* MMU status. */ struct { + /* + * Holds the "address" value in between raising an exception + * and creation of the exception stack frame. + * Used for both Format 7 exceptions (Access, i.e. mmu) + * and Format 2 exceptions (chk, div0, trapcc, etc). + */ uint32_t ar; uint32_t ssw; /* 68040 */ diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 12e5d9cd53..e24d17e180 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -47,7 +47,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 777869790b..750d65576f 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,16 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) =20 case EXCP_ILLEGAL: case EXCP_DIV0: - case EXCP_CHK: case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 + case EXCP_CHK: + do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); + break; + case EXCP_SPURIOUS ... EXCP_INT_LEVEL_7: if (is_hw && (oldsr & SR_M)) { do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); @@ -548,6 +551,29 @@ void HELPER(raise_exception)(CPUM68KState *env, uint32= _t tt) raise_exception(env, tt); } =20 +G_NORETURN static void +raise_exception_format2(CPUM68KState *env, int tt, int ilen, uintptr_t rad= dr) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D tt; + + /* Recover PC and CC_OP for the beginning of the insn. */ + cpu_restore_state(cs, raddr, true); + + /* Flags are current in env->cc_*, or are undefined. */ + env->cc_op =3D CC_OP_FLAGS; + + /* + * Remember original pc in mmu.ar, for the Format 2 stack frame. + * Adjust PC to end of the insn. + */ + env->mmu.ar =3D env->pc; + env->pc +=3D ilen; + + cpu_loop_exit(cs); +} + void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) { uint32_t num =3D env->dregs[destr]; @@ -1065,18 +1091,7 @@ void HELPER(chk)(CPUM68KState *env, int32_t val, int= 32_t ub) env->cc_c =3D 0 <=3D ub ? val < 0 || val > ub : val > ub && val < 0; =20 if (val < 0 || val > ub) { - CPUState *cs =3D env_cpu(env); - - /* Recover PC and CC_OP for the beginning of the insn. */ - cpu_restore_state(cs, GETPC(), true); - - /* flags have been modified by gen_flush_flags() */ - env->cc_op =3D CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc +=3D 2; - - cs->exception_index =3D EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 2, GETPC()); } } =20 @@ -1097,17 +1112,6 @@ void HELPER(chk2)(CPUM68KState *env, int32_t val, in= t32_t lb, int32_t ub) env->cc_c =3D lb <=3D ub ? val < lb || val > ub : val > ub && val < lb; =20 if (env->cc_c) { - CPUState *cs =3D env_cpu(env); - - /* Recover PC and CC_OP for the beginning of the insn. */ - cpu_restore_state(cs, GETPC(), true); - - /* flags have been modified by gen_flush_flags() */ - env->cc_op =3D CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc +=3D 4; - - cs->exception_index =3D EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 4, GETPC()); } } --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670457; cv=none; d=zohomail.com; s=zohoarc; b=BWsRRdQxqbPgiMUsp6lLWViSXjcMJxrEhOQc2UXvd61vxGnrIeZFWBY/JnJHlvqRZE37CRunjNfRf79oaNmOJadA2mAuG7MfqW/4PVZz+7HByRLFnC7tSP5ZEW7ArS/VMDORLf1qBf739LVMx4rXltXUq8PhP2lNdxnZH/uSxO4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670457; 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=9h8O/PKdXL0KvuNK2v2gIq3YV3vKmkNQsNhTF8q3vR8=; b=Ee95x1lykalHsHQUGiUVZNZ2MxwMbexbWDmPyEi1zYxNENqjWnNh2PWdC4kz34qvmk7hvLSyfJDRHBR/NGpL7J3wiVnUB44fzC0zXUK59KM/sY8ktXvC7igIyk5gJvwv6sppg5JzVkOVCN+LvnuRkB4xFJpUAaJN8S/r/+O+v1w= 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 1653670457681935.9390203612136; Fri, 27 May 2022 09:54:17 -0700 (PDT) Received: from localhost ([::1]:49098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudE8-0008AQ-C9 for importer@patchew.org; Fri, 27 May 2022 12:54:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8N-0001Tr-BO for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:19 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]:39427) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8L-0005Oc-59 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:19 -0400 Received: by mail-pl1-x62d.google.com with SMTP id a13so4598363plh.6 for ; Fri, 27 May 2022 09:48:16 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:15 -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=9h8O/PKdXL0KvuNK2v2gIq3YV3vKmkNQsNhTF8q3vR8=; b=F9MiOENocr2Agrn7togaV7sdzrW0gxRA9iQTuOIHgdrFdEPECcBqHN49CO4c7m2eU9 x25oKyvr2WUJg3ifGx7qAnx8hs9WJW31HULT0vMzyQ+oevZnfP9dbEdNQweZ3PuGf4f6 hcmi5zHYPeltm2FZ5onVwWenATzWFTbEnTkbJYmnivxJ1NB8FvibLo6DNqOETsN5OkT9 GUNSWJBcR43Qr2YiPG9hxDn/nY8kbV7e8+NOzdsEAjO0p8JaWHq5F735Pgbfb+57Q7Ww z5IEWMkj2cQrqE5z6tnDe7BunJ3r3S+qMiNVSq9+xv58sHFnq094Ja4G7rRU+NHbECqp ue8A== 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=9h8O/PKdXL0KvuNK2v2gIq3YV3vKmkNQsNhTF8q3vR8=; b=blJnHpQpyiK3VX9A7R6yQhDz1vpjP+Sfjajhk3jqn8dB07ALZ1Yei/jr/UoioVMogg rhkSY/ryi6uBigjocaP5F4T26e03J6XHiAfCbVwzLMK+2kYvFxrU9py/IXDwtX/jk4Vk e8JCtWfD5sZRhTXxCuh7KDf5+RjKj4DY3knShxdePFGjSH+yIZF/aUu/tAyxYWpKbrvs ZUwrju9Pu90zBEUdl0x3S+G1nXTLzpRNEvv/sYJigTjn0JpGh0xyBHUT2LhgDEGgorr2 QFiGofsu4/b4oJ9hCqmte1hyxEQyJ1uTXY/XOHZjlWqluIGN00dg76w9YehcRYNI5EZY sT1A== X-Gm-Message-State: AOAM5315ONe8rfgSKR0Rs0SYUvb3ZlZ6zTeNnKKwuPx79QuFsDH92jcP ixlHfOSHHGUQA2DVtFOK6RK8oCp7uYFPaw== X-Google-Smtp-Source: ABdhPJyQg2aaB2bEMz+g07RGblQTWtpAnTUUO22lTFZ3NkSLchPbEYPWgItN6feLLqJqPo9kt4556w== X-Received: by 2002:a17:902:ea43:b0:161:f1fb:fb28 with SMTP id r3-20020a170902ea4300b00161f1fbfb28mr37353998plg.20.1653670095820; Fri, 27 May 2022 09:48:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 07/17] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0 Date: Fri, 27 May 2022 09:47:57 -0700 Message-Id: <20220527164807.135038-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670458125100001 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 e24d17e180..6598bce3c4 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -50,7 +50,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; case EXCP_TRAP0: { diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 750d65576f..729ee0e934 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -396,7 +396,6 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_ILLEGAL: - case EXCP_DIV0: case EXCP_TRAPCC: case EXCP_TRACE: /* FIXME: addr is not only env->pc */ @@ -404,6 +403,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int i= s_hw) break; =20 case EXCP_CHK: + case EXCP_DIV0: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 @@ -574,18 +574,19 @@ raise_exception_format2(CPUM68KState *env, int tt, in= t ilen, uintptr_t raddr) cpu_loop_exit(cs); } =20 -void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) +void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den, int ilen) { uint32_t num =3D env->dregs[destr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot > 0xffff) { env->cc_v =3D -1; /* @@ -601,18 +602,19 @@ void HELPER(divuw)(CPUM68KState *env, int destr, uint= 32_t den) env->cc_v =3D 0; } =20 -void HELPER(divsw)(CPUM68KState *env, int destr, int32_t den) +void HELPER(divsw)(CPUM68KState *env, int destr, int32_t den, int ilen) { int32_t num =3D env->dregs[destr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot !=3D (int16_t)quot) { env->cc_v =3D -1; /* nothing else is modified */ @@ -629,18 +631,20 @@ void HELPER(divsw)(CPUM68KState *env, int destr, int3= 2_t den) env->cc_v =3D 0; } =20 -void HELPER(divul)(CPUM68KState *env, int numr, int regr, uint32_t den) +void HELPER(divul)(CPUM68KState *env, int numr, int regr, + uint32_t den, int ilen) { uint32_t num =3D env->dregs[numr]; uint32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; env->cc_z =3D quot; env->cc_n =3D quot; env->cc_v =3D 0; @@ -657,18 +661,20 @@ void HELPER(divul)(CPUM68KState *env, int numr, int r= egr, uint32_t den) } } =20 -void HELPER(divsl)(CPUM68KState *env, int numr, int regr, int32_t den) +void HELPER(divsl)(CPUM68KState *env, int numr, int regr, + int32_t den, int ilen) { int32_t num =3D env->dregs[numr]; int32_t quot, rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; env->cc_z =3D quot; env->cc_n =3D quot; env->cc_v =3D 0; @@ -685,19 +691,21 @@ void HELPER(divsl)(CPUM68KState *env, int numr, int r= egr, int32_t den) } } =20 -void HELPER(divull)(CPUM68KState *env, int numr, int regr, uint32_t den) +void HELPER(divull)(CPUM68KState *env, int numr, int regr, + uint32_t den, int ilen) { uint64_t num =3D deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); uint64_t quot; uint32_t rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot > 0xffffffffULL) { env->cc_v =3D -1; /* @@ -720,19 +728,21 @@ void HELPER(divull)(CPUM68KState *env, int numr, int = regr, uint32_t den) env->dregs[numr] =3D quot; } =20 -void HELPER(divsll)(CPUM68KState *env, int numr, int regr, int32_t den) +void HELPER(divsll)(CPUM68KState *env, int numr, int regr, + int32_t den, int ilen) { int64_t num =3D deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); int64_t quot; int32_t rem; =20 + env->cc_c =3D 0; /* always cleared, even if overflow/div0 */ + if (den =3D=3D 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot =3D num / den; rem =3D num % den; =20 - env->cc_c =3D 0; /* always cleared, even if overflow */ if (quot !=3D (int32_t)quot) { env->cc_v =3D -1; /* diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 6d6d026e3c..d775345bfa 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1601,6 +1601,7 @@ DISAS_INSN(divw) int sign; TCGv src; TCGv destr; + TCGv ilen; =20 /* divX.w ,Dn 32/16 -> 16r:16q */ =20 @@ -1609,20 +1610,20 @@ DISAS_INSN(divw) /* dest.l / src.w */ =20 SRC_EA(env, src, OS_WORD, sign, NULL); - destr =3D tcg_const_i32(REG(insn, 9)); + destr =3D tcg_constant_i32(REG(insn, 9)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsw(cpu_env, destr, src); + gen_helper_divsw(cpu_env, destr, src, ilen); } else { - gen_helper_divuw(cpu_env, destr, src); + gen_helper_divuw(cpu_env, destr, src, ilen); } - tcg_temp_free(destr); =20 set_cc_op(s, CC_OP_FLAGS); } =20 DISAS_INSN(divl) { - TCGv num, reg, den; + TCGv num, reg, den, ilen; int sign; uint16_t ext; =20 @@ -1639,15 +1640,14 @@ DISAS_INSN(divl) /* divX.l , Dr:Dq 64/32 -> 32r:32q */ =20 SRC_EA(env, den, OS_LONG, 0, NULL); - num =3D tcg_const_i32(REG(ext, 12)); - reg =3D tcg_const_i32(REG(ext, 0)); + num =3D tcg_constant_i32(REG(ext, 12)); + reg =3D tcg_constant_i32(REG(ext, 0)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsll(cpu_env, num, reg, den); + gen_helper_divsll(cpu_env, num, reg, den, ilen); } else { - gen_helper_divull(cpu_env, num, reg, den); + gen_helper_divull(cpu_env, num, reg, den, ilen); } - tcg_temp_free(reg); - tcg_temp_free(num); set_cc_op(s, CC_OP_FLAGS); return; } @@ -1656,15 +1656,14 @@ DISAS_INSN(divl) /* divXl.l , Dr:Dq 32/32 -> 32r:32q */ =20 SRC_EA(env, den, OS_LONG, 0, NULL); - num =3D tcg_const_i32(REG(ext, 12)); - reg =3D tcg_const_i32(REG(ext, 0)); + num =3D tcg_constant_i32(REG(ext, 12)); + reg =3D tcg_constant_i32(REG(ext, 0)); + ilen =3D tcg_constant_i32(s->pc - s->base.pc_next); if (sign) { - gen_helper_divsl(cpu_env, num, reg, den); + gen_helper_divsl(cpu_env, num, reg, den, ilen); } else { - gen_helper_divul(cpu_env, num, reg, den); + gen_helper_divul(cpu_env, num, reg, den, ilen); } - tcg_temp_free(reg); - tcg_temp_free(num); =20 set_cc_op(s, CC_OP_FLAGS); } --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670624; cv=none; d=zohomail.com; s=zohoarc; b=MLaUF4LuOj1OjApooMCxUYURcyy1aoqvoyHa8gA3MTjtAKgcrGo9/GPxoU69ED7JgEUskLZcHLKF7/i3quWzefZ7YwVTZZYpEnfh2dqPyo25ZeWlhTvmmX4wqQE6Bdms4SoPgy2C20RWUqdM1bi39WSVeLUdkqXHseKmlgjCRy8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670624; 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=ni15K8P7PnzwsRRTsJwiOks83s+NNkxpUTsfrcqynEQ=; b=LPPOx3MEFCd9gim/V2IEWtf77FtLoo93RevM+qnjPRbbhcZzE0NVojUBPe7ba3BjIn/BCRJfjjlwqlLcipVwUdVGtB90bkwxudrq36570JC6w3n3dEmw+/h1YIwn3MHyMD0yP7DoFxWQk7JoDHzQFcr2RFj9ijRF0yQhIMJCx1g= 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 165367062438764.67111840673931; Fri, 27 May 2022 09:57:04 -0700 (PDT) Received: from localhost ([::1]:56458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudGo-0004ww-JK for importer@patchew.org; Fri, 27 May 2022 12:57:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52902) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8O-0001Vy-4z for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:20 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]:38699) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8M-0005On-AY for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:19 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 90-20020a17090a0fe300b001e292e2b81bso584587pjz.3 for ; Fri, 27 May 2022 09:48:17 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:16 -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=ni15K8P7PnzwsRRTsJwiOks83s+NNkxpUTsfrcqynEQ=; b=Nb6Tzza4dcir8j+fDkBTQ5NtacrMHJMLBDVPTeh2Q6mXf9eJs3FMq5UzPYlKxgAXIz TdkC/AJJ6YJYFLtX2P6NwXM4Ps8njl0U+MSqZtQcNyLcdagKAc3+tJG6fyQgs8OBGSsf 7unzKGYwMYUYUhQfCx0o4ZMX/Fzpbkub7+nSoL6/O2Zn2E7HjSN5AEbBGjGDgmqGiRhh nudXaX+HIz5upSmFoFISMcAo9i3TvjkWioT6jVNNNGodpEZw1BuDr3N3aPC94E1edBuJ 5rYVSwQsh7i8IX+fftA1Q/Yg8XPApCNOdrWeyZI3M2cIObsDl4spEE6xM0CTPt9296Zm izoQ== 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=ni15K8P7PnzwsRRTsJwiOks83s+NNkxpUTsfrcqynEQ=; b=20tJ5k+Skwrm0BkpA0kMw07Gczlc1H17ETMDsZ4WvqYJu1+2RZUxbmHwtu5AypCvpI Z7Il/eV8BifcAsdpOVzpsazX/rw1GglBEM9V9hlqWgOIFNAMhvzJJm1Gh88SugbrgXUm FeerVdVUndrE0/qXtKhxXYQ0nF4KYFaaU7Sp6JzTRLHzcy68rksdz9e3sd0eF2rfLqUW 2z0Mb8MR06JeIai6jV+HW2jRbBHqRjxbe17h3KnaCtUCqFk2wxuTJ2nE3alRXAAQm4D7 xTmUnc+eJ0dR42wOY3pZPF97zteO1PRIcLewA9A1STG2OGOPM8X48w8TTAVYu/dlF5E0 OZ8Q== X-Gm-Message-State: AOAM530NNBqYqlmbGBEJy1itBuma0pmvBdlGp2EyrS3qSbXoBCdNiKMB 3zIu05qR3O++eiYwLxXk7nC+oZNuScyZAw== X-Google-Smtp-Source: ABdhPJwo0lCUkI/O0KXtvINBEnpJ5WVH6UPwgHQwV4xv/rxFSjBdVDTQdKS2EwkEXqBF1utGE5BnuA== X-Received: by 2002:a17:902:eb4d:b0:15e:d25c:4e0a with SMTP id i13-20020a170902eb4d00b0015ed25c4e0amr44636078pli.8.1653670096946; Fri, 27 May 2022 09:48:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 08/17] target/m68k: Fix address argument for EXCP_TRACE Date: Fri, 27 May 2022 09:47:58 -0700 Message-Id: <20220527164807.135038-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670624916100001 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. Reviewed-by: Laurent Vivier 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 6598bce3c4..fcf9220552 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -52,6 +52,9 @@ void cpu_loop(CPUM68KState *env) case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; + case EXCP_TRACE: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_TRACE, env->mmu.ar= ); + break; case EXCP_TRAP0: { abi_long ret; diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 729ee0e934..3cb71c9140 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,13 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) =20 case EXCP_ILLEGAL: case EXCP_TRAPCC: - case EXCP_TRACE: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); break; =20 case EXCP_CHK: case EXCP_DIV0: + case EXCP_TRACE: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index d775345bfa..399d9232e4 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -114,6 +114,7 @@ typedef struct DisasContext { DisasContextBase base; CPUM68KState *env; target_ulong pc; + target_ulong pc_prev; CCOp cc_op; /* Current CC operation */ int cc_op_synced; TCGv_i64 mactmp; @@ -298,6 +299,21 @@ static void gen_raise_exception(int nr) tcg_temp_free_i32(tmp); } =20 +static void gen_raise_exception_format2(DisasContext *s, int nr, + target_ulong this_pc) +{ + /* + * Pass the address of the insn to the exception handler, + * for recording in the Format $2 (6-word) stack frame. + * Re-use mmu.ar for the purpose, since that's only valid + * after tlb_fill. + */ + tcg_gen_st_i32(tcg_constant_i32(this_pc), cpu_env, + offsetof(CPUM68KState, mmu.ar)); + gen_raise_exception(nr); + s->base.is_jmp =3D DISAS_NORETURN; +} + static void gen_exception(DisasContext *s, uint32_t dest, int nr) { update_cc_op(s); @@ -1494,12 +1510,13 @@ static void gen_exit_tb(DisasContext *s) } while (0) =20 /* Generate a jump to an immediate address. */ -static void gen_jmp_tb(DisasContext *s, int n, uint32_t dest) +static void gen_jmp_tb(DisasContext *s, int n, target_ulong dest, + target_ulong src) { if (unlikely(s->ss_active)) { update_cc_op(s); tcg_gen_movi_i32(QREG_PC, dest); - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(s, EXCP_TRACE, src); } else if (translator_use_goto_tb(&s->base, dest)) { tcg_gen_goto_tb(n); tcg_gen_movi_i32(QREG_PC, dest); @@ -1548,9 +1565,9 @@ DISAS_INSN(dbcc) tcg_gen_addi_i32(tmp, tmp, -1); gen_partset_reg(OS_WORD, reg, tmp); tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, -1, l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); } =20 DISAS_INSN(undef_mac) @@ -3096,13 +3113,13 @@ DISAS_INSN(branch) /* Bcc */ TCGLabel *l1 =3D gen_new_label(); gen_jmpcc(s, ((insn >> 8) & 0xf) ^ 1, l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); } else { /* Unconditional branch. */ update_cc_op(s); - gen_jmp_tb(s, 0, base + offset); + gen_jmp_tb(s, 0, base + offset, s->base.pc_next); } } =20 @@ -5485,9 +5502,9 @@ DISAS_INSN(fbcc) l1 =3D gen_new_label(); update_cc_op(s); gen_fjmpcc(s, insn & 0x3f, l1); - gen_jmp_tb(s, 0, s->pc); + gen_jmp_tb(s, 0, s->pc, s->base.pc_next); gen_set_label(l1); - gen_jmp_tb(s, 1, base + offset); + gen_jmp_tb(s, 1, base + offset, s->base.pc_next); } =20 DISAS_INSN(fscc) @@ -6158,6 +6175,8 @@ static void m68k_tr_init_disas_context(DisasContextBa= se *dcbase, CPUState *cpu) =20 dc->env =3D env; dc->pc =3D dc->base.pc_first; + /* This value will always be filled in properly before m68k_tr_tb_stop= . */ + dc->pc_prev =3D 0xdeadbeef; dc->cc_op =3D CC_OP_DYNAMIC; dc->cc_op_synced =3D 1; dc->done_mac =3D 0; @@ -6191,6 +6210,7 @@ static void m68k_tr_translate_insn(DisasContextBase *= dcbase, CPUState *cpu) do_writebacks(dc); do_release(dc); =20 + dc->pc_prev =3D dc->base.pc_next; dc->base.pc_next =3D dc->pc; =20 if (dc->base.is_jmp =3D=3D DISAS_NEXT) { @@ -6225,17 +6245,12 @@ static void m68k_tr_tb_stop(DisasContextBase *dcbas= e, CPUState *cpu) break; case DISAS_TOO_MANY: update_cc_op(dc); - if (dc->ss_active) { - tcg_gen_movi_i32(QREG_PC, dc->pc); - gen_raise_exception(EXCP_TRACE); - } else { - gen_jmp_tb(dc, 0, dc->pc); - } + gen_jmp_tb(dc, 0, dc->pc, dc->pc_prev); break; case DISAS_JUMP: /* We updated CC_OP and PC in gen_jmp/gen_jmp_im. */ if (dc->ss_active) { - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(dc, EXCP_TRACE, dc->pc_prev); } else { tcg_gen_lookup_and_goto_ptr(); } @@ -6246,7 +6261,7 @@ static void m68k_tr_tb_stop(DisasContextBase *dcbase,= CPUState *cpu) * other state that may require returning to the main loop. */ if (dc->ss_active) { - gen_raise_exception(EXCP_TRACE); + gen_raise_exception_format2(dc, EXCP_TRACE, dc->pc_prev); } else { tcg_gen_exit_tb(NULL, 0); } --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653671094; cv=none; d=zohomail.com; s=zohoarc; b=MMQMR6+oZxcx9RYnKEmr5YrbssjRs0Pceu0CLoUZbT+gsJErKyNPIs3D6A6vzsfUcuOKlvpIFXLUgklz+kwfyjJLNVRrR2QlfxR7xFidXgQRYx5J3YbvZ4BdZmBtrW2JCl/kKKcTdrMrHYK9UF4MxkeMHdWBSQLnPnSCOfcU40c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671094; 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=CpiwNuN9uaF8J7CUE8swrx6xThfojHeB858pnr3+AiA=; b=NLzU0X9MsiDBH+6hk5TONqN7SQi9EikmoRt09RLg3MGYpv6QDpxc2zW8p3JckR1pB3IRnkcQLbkBKHVSg2/OgQUPjjLTQhLsEqYe/r5GWeLhJ/DXo17Y1MwYiBviq68lGzrPLBUm35nihiMa0F+KtqwrDvhEPjbR/uWNWFbD4mA= 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 1653671094947623.4370792157553; Fri, 27 May 2022 10:04:54 -0700 (PDT) Received: from localhost ([::1]:44514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudOP-0000JT-Vw for importer@patchew.org; Fri, 27 May 2022 13:04:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8O-0001Wz-Ks for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:20 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]:43840) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8N-0005Ow-37 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:20 -0400 Received: by mail-pf1-x42d.google.com with SMTP id y189so4764241pfy.10 for ; Fri, 27 May 2022 09:48:18 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:17 -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=CpiwNuN9uaF8J7CUE8swrx6xThfojHeB858pnr3+AiA=; b=rF8uUKHFA/lwUj7qslXyRn0RJYth79NoaRGgpwwhDKdk4hhVDBPgesoN/f8peVeQat qx92CuaejyNgD7xS8X4sWR7WL4UJv6hlEjXWPN9dxQKCFPVUYF42oYXU9+onBcL0lKbC StYPZQ8M8k7XHMesKsSk4XoWTVwYH26g7h3AkXGEREM/AvBclw60rCrvioy6lHy0M9N2 b8P4ZANC8hQA+96xvl9KNuANr4l6RQhxkHxn1wH0mO7Yes+KxECCwa88EisoPhG+oZh9 QFoqZ/ZryVT1xnSGrprQQljyJ95z/3XCiXSEJl85KhBk2d8W74DfE3Gxrya2j3QiISDF j80w== 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=CpiwNuN9uaF8J7CUE8swrx6xThfojHeB858pnr3+AiA=; b=Bv7mxG37mxWmHZjipgx/5Xnn/EPCXLAN9QTPCohdNPyEhpSwe/HSy9uwtkvyokHHwC 3R7Nt2WG7SvAr/AcD4wXiYWDqUC9OchQifLs1iQvCRmF+LnpGHo0TjHMnlAlcRUJVbEB EkPtfq51bo1xxymGqKIF3gx/mFZDx3JQG02y3tex8Lhv+kWoteQauVyx2vbRLLLunpEE cYrbViYy9MQDYwKjNOHqKm5UTQQnMr6+UTN4dPLwTsjcWSDaAjZ4IWP03Hk4qxrJFDuu TJXi6136NGlEfYOjod6UmotHK5WJcKXzxU8ozixl7c5KzUcws24XzWCTDkAKY2DAki20 ZoyA== X-Gm-Message-State: AOAM5309BSe9gTnGprMwS2cyn1RUADKKXF+kOl98F3MyL2/G0pUFHAPU xU9UYnPVfXutqdpXMQMCd4r9DJjQmH5weA== X-Google-Smtp-Source: ABdhPJzvPV8I/ZZRi2rGns9v8sWsmI+5jSomss5b3co6MYlAednFOSuv+vhapBbKp68oZ9tpcMUx0A== X-Received: by 2002:a63:91ca:0:b0:3fa:e255:5beb with SMTP id l193-20020a6391ca000000b003fae2555bebmr11378454pge.70.1653670097786; Fri, 27 May 2022 09:48:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 09/17] target/m68k: Fix stack frame for EXCP_ILLEGAL Date: Fri, 27 May 2022 09:47:59 -0700 Message-Id: <20220527164807.135038-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671096595100001 Content-Type: text/plain; charset="utf-8" According to the M68040 Users Manual, section 8.4.1, Four word stack frame (format 0), includes Illegal Instruction. Use the correct frame format, which does not use the ADDR argument. Reviewed-by: Laurent Vivier 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 3cb71c9140..aa62158eb9 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -391,11 +391,14 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) } break; =20 + case EXCP_ILLEGAL: + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); + break; + case EXCP_ADDRESS: do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 - case EXCP_ILLEGAL: case EXCP_TRAPCC: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670459; cv=none; d=zohomail.com; s=zohoarc; b=Lhmj58wbKUUaO+3BGpFgAwR/NTp5FoCgduJjaJLrhukgmDD+LytWfqDxKX7/fd3r8etd+OAybdn65mlarOffTyzbpMD0zIwta6ZlV1m8IMFW9A16b5TxwHbgZa4JA3stFAdGebK/OnF4fwENg+NXwyYtz05gECMsgGZS0+U2rtQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670459; 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=KyWq1SP5mJS//TtONTeiMPT3+Dc2kCMkrVruGMXnAYM=; b=ldYO/WfDAaRF+mi6vEQ2cFHL9En28DoWVyYJ+AKreR7e9/AABH/3TQxjcBUlOKtia2x4VbaLdtcwcAYyQ8HeAQFLm7GTxO4Uw+sLp/vvv0WxkshEmyzUsnE02uAZZYTUMvZXSabo86dy4GhaS/5vJvAYbb38SmlLBM1MdE+EHdg= 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 1653670459586503.1657864506657; Fri, 27 May 2022 09:54:19 -0700 (PDT) Received: from localhost ([::1]:49316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudEA-0008Jj-Jm for importer@patchew.org; Fri, 27 May 2022 12:54:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52928) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8P-0001aR-Nz for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:21 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:52841) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8N-0005P2-Uc for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:21 -0400 Received: by mail-pj1-x1031.google.com with SMTP id gz24so5082372pjb.2 for ; Fri, 27 May 2022 09:48:19 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:18 -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=KyWq1SP5mJS//TtONTeiMPT3+Dc2kCMkrVruGMXnAYM=; b=QKzG4W7P00g32mM+xXM2lPHztptqflVhhOHa9vdkBTs9nQJWg28DWkTHgidt0hrNea nodJ3cGK9DacCdJ/Ks1qS6MJbJcAISgFTOhKyg40ZeyASfPaZzHvaFFKrXFIRN0OTOHB 5bJ2y6Tnnb6xm4XmUAKhW50XbNNdYNrqUy2mboA2xqqIy5VlwPtqLFWt8OHUSrpQ7HHJ G/cu80QU8qwP5xo+NzdpTIsHcI5UAaJSuOEnJ0TfoWRQ2Ei0eK1fwwrIvUHxRlnle9+C p3g/8S0De8S8PUYz25hNuA8RMWJW4ZZ9u+Hf6+Rn8rVR2/PsVYxo81AP1W3rLoV1o/eT GQnA== 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=KyWq1SP5mJS//TtONTeiMPT3+Dc2kCMkrVruGMXnAYM=; b=c+2NZygux6NlS/JvtDo3Zhws5DajvXT7q/ScF4XUxTWIwo4R9Y3ikIOypaf/ylcZbQ LW9+s5P71DFjBMQLa6xbFxZDCa5/98bqY55rjZmiW03xiKA1Gbw6j0eV0VVzcJuCQ1lZ 05sHgP6xwSOKCMnWAXupZE5cSTc00M1mnpS38pgz/BS9KSV8/+3caPCNK4jtLIsMy8sL yx1QWV9ooSX8thjf+Lq8S+ByihUv5ypRu9Q0Y1YA8O8JqIODwxm2yF4vWx8ROt9V/nGf lQ5iYrRwq+41Xs4C72XggmjuC3yirDfI8f819+SCVXgJwAlT7TWRLGQByjgjv62PE4GK Ahew== X-Gm-Message-State: AOAM533X1lnH+jnnKrMfbE4RfsvkxONOQAjI8E7JVsKKcvB/k07wOKPB rhzGmlUH80M0E1AlydiIyiMabn8VJx2Pzg== X-Google-Smtp-Source: ABdhPJy2GUU2m/bGRKX0VcsDbrLFFi5bKqAmJfX6ktMfeUed2xMq6T5fUTbrM/qqjQ1xo08k+ScFag== X-Received: by 2002:a17:90a:d01:b0:1e0:2e32:8650 with SMTP id t1-20020a17090a0d0100b001e02e328650mr9271907pja.156.1653670098634; Fri, 27 May 2022 09:48:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 10/17] target/m68k: Implement TRAPcc Date: Fri, 27 May 2022 09:48:00 -0700 Message-Id: <20220527164807.135038-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670459995100003 Content-Type: text/plain; charset="utf-8" Resolves: https://gitlab.com/qemu-project/qemu/-/issues/754 Reviewed-by: Laurent Vivier 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 558c3c67d6..4d8f48e8c7 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -534,6 +534,8 @@ enum m68k_features { M68K_FEATURE_MOVEC, /* Unaligned data accesses (680[2346]0) */ M68K_FEATURE_UNALIGNED_DATA, + /* TRAPcc insn. (680[2346]0, and CPU32) */ + M68K_FEATURE_TRAPCC, }; =20 static inline int m68k_feature(CPUM68KState *env, int feature) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index fcf9220552..3d3033155f 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -47,6 +47,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: + case EXCP_TRAPCC: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index c7aeb7da9c..5f778773d1 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -162,6 +162,7 @@ static void m68020_cpu_initfn(Object *obj) m68k_set_feature(env, M68K_FEATURE_CHK2); m68k_set_feature(env, M68K_FEATURE_MSP); m68k_set_feature(env, M68K_FEATURE_UNALIGNED_DATA); + m68k_set_feature(env, M68K_FEATURE_TRAPCC); } =20 /* diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index aa62158eb9..61948d92bb 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -399,14 +399,10 @@ static void m68k_interrupt_all(CPUM68KState *env, int= is_hw) do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; =20 - case EXCP_TRAPCC: - /* FIXME: addr is not only env->pc */ - do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); - break; - case EXCP_CHK: case EXCP_DIV0: case EXCP_TRACE: + case EXCP_TRAPCC: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; =20 diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 399d9232e4..c4fe8abc03 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4879,6 +4879,54 @@ DISAS_INSN(trap) gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } =20 +static void do_trapcc(DisasContext *s, DisasCompare *c) +{ + if (c->tcond !=3D TCG_COND_NEVER) { + TCGLabel *over =3D NULL; + + update_cc_op(s); + + if (c->tcond !=3D TCG_COND_ALWAYS) { + /* Jump over if !c. */ + over =3D gen_new_label(); + tcg_gen_brcond_i32(tcg_invert_cond(c->tcond), c->v1, c->v2, ov= er); + } + + tcg_gen_movi_i32(QREG_PC, s->pc); + gen_raise_exception_format2(s, EXCP_TRAPCC, s->base.pc_next); + + if (over !=3D NULL) { + gen_set_label(over); + s->base.is_jmp =3D DISAS_NEXT; + } + } + free_cond(c); +} + +DISAS_INSN(trapcc) +{ + DisasCompare c; + + /* Consume and discard the immediate operand. */ + switch (extract32(insn, 0, 3)) { + case 2: /* trapcc.w */ + (void)read_im16(env, s); + break; + case 3: /* trapcc.l */ + (void)read_im32(env, s); + break; + case 4: /* trapcc (no operand) */ + break; + default: + /* Illegal insn */ + disas_undef(env, s, insn); + return; + } + + gen_cc_cond(&c, s, extract32(insn, 8, 4)); + do_trapcc(s, &c); +} + static void gen_load_fcr(DisasContext *s, TCGv res, int reg) { switch (reg) { @@ -6050,6 +6098,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(scc, 50c0, f0f8, CF_ISA_A); /* Scc.B Dx */ INSN(scc, 50c0, f0c0, M68000); /* Scc.B */ INSN(dbcc, 50c8, f0f8, M68000); + INSN(trapcc, 50f8, f0f8, TRAPCC); INSN(tpf, 51f8, fff8, CF_ISA_A); =20 /* Branch instructions. */ --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670711; cv=none; d=zohomail.com; s=zohoarc; b=REoMxPPbqiDhmAcI1gi6/j9BFxEPMzlSalCSGVBBacYedw7G/HDYNleSgFYu3kmRxI7Bzl9giiqHDW4/+sbYHju74uIsIekF9gx++4lpgntnwSWaypjAn51rmiTXJtFNrDORT2qQ4hMvmQDs/SuHa2tq10663/1u0HrSoIraffw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670711; 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=mJfzlbqqWQ9fRdLvn4vq10zAIiL+VAhrCO0+lipHHC8=; b=CIQBSQtt0YRZRmrgjY4qHPplv2BpusrZJcSM95J0EPc53MlvN5zCCUhUMTEYSRKKLto3lWBHwNllwIp3I5TZX0B785G5Hup8rdRv9TMgyK/Tdd9RL1niQzaiH6E0wcqMputieXClqcCRlG90sjU68xphU5NT/PSTbpMCi8YtA2U= 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 165367071143264.87115606910425; Fri, 27 May 2022 09:58:31 -0700 (PDT) Received: from localhost ([::1]:59268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudIE-000707-CW for importer@patchew.org; Fri, 27 May 2022 12:58:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52930) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8Q-0001cp-DX for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:22 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]:38699) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8O-0005On-Pq for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:22 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 90-20020a17090a0fe300b001e292e2b81bso584587pjz.3 for ; Fri, 27 May 2022 09:48:20 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:19 -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=mJfzlbqqWQ9fRdLvn4vq10zAIiL+VAhrCO0+lipHHC8=; b=vOtEP5OKy6LpEaQ2O3JgroyNu6zj/b7wakakRmvyOw42YnZMF4/WmRSWvUxcC+V2HR ZCJ7rjqNq9l+cXc7gvL3XMwo860o0wqBnuNNM+d68U3hMPvNuAEclXsUOjDbHm1lNrks Z/drQIUdPvNLHoLZ9N3hfh0EfzGAA7a7RE73NahGyFdAogTTI7v85ZIu1ifkAU8jbvjQ 1h0CeKizvyQGi3hlsDsR+0ykTc/JUx5FCa+f7P6xYnPuothyWepM5k7e6AcGy341RR22 kgsPLNSXa3HD2m4sWM/H55PuuKlspx75kjOhUgwVgV3q7ZGr4YWG/5vDxL2iM3VlVUwa vFuQ== 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=mJfzlbqqWQ9fRdLvn4vq10zAIiL+VAhrCO0+lipHHC8=; b=j1+eHpZzwbVfgGg7AaGxXNTCC2jgf5yHpuk44P7fspmUS/DqsJgrHHEbCJdziS63Rw 2uK3scuFa419XNqwQ1iTOh/BP0t9a5OLxusTg/C+Pc/wLzJX82yOchSF8YtpZ3IIAs+V M7buh5GfUPc6e5S91jzgOF1xWq1s0FhOw2SD1+AmGtpTywKrDxJypnNkznrkRZBiqkHp WJDSP7eLxb0+BNc/wojkR1KsV8TsNOmE5oQOChQs6NdCpC46SVEOZNsDxwq/vi5Grbom 6up9narxmKyzDyFggB+Z/gRG+sshlsBrLCHwPmul3iy88csPL/sQh3eJnkM5tJFhaAsp LaoQ== X-Gm-Message-State: AOAM5326q84WypxsxCw2Nl4xGX0WSkkmxvoGYIMplnLhJe7EmTECARWn JgW7RjlZF4xLyyUO0OmYPhN3RlIVkY1RUw== X-Google-Smtp-Source: ABdhPJz1Gho9CkKaPm39Hd/wWWzLC6GQWkSzCTRbjpc2tTAinjzSSaaKhJrit7zdAvx8FPTCId7Uug== X-Received: by 2002:a17:90b:350b:b0:1df:a236:370 with SMTP id ls11-20020a17090b350b00b001dfa2360370mr9338957pjb.245.1653670100066; Fri, 27 May 2022 09:48:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 11/17] target/m68k: Implement TPF in terms of TRAPcc Date: Fri, 27 May 2022 09:48:01 -0700 Message-Id: <20220527164807.135038-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670713440100001 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. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier 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 c4fe8abc03..bb5ed1b7b1 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -3075,22 +3075,6 @@ DISAS_INSN(addsubq) tcg_temp_free(dest); } =20 -DISAS_INSN(tpf) -{ - switch (insn & 7) { - case 2: /* One extension word. */ - s->pc +=3D 2; - break; - case 3: /* Two extension words. */ - s->pc +=3D 4; - break; - case 4: /* No extension words. */ - break; - default: - disas_undef(env, s, insn); - } -} - DISAS_INSN(branch) { int32_t offset; @@ -6099,7 +6083,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(scc, 50c0, f0c0, M68000); /* Scc.B */ INSN(dbcc, 50c8, f0f8, M68000); INSN(trapcc, 50f8, f0f8, TRAPCC); - INSN(tpf, 51f8, fff8, CF_ISA_A); + INSN(trapcc, 51f8, fff8, CF_ISA_A); /* TPF (trapf) */ =20 /* Branch instructions. */ BASE(branch, 6000, f000); --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670941; cv=none; d=zohomail.com; s=zohoarc; b=UasDJc1cHPJ0427UWUqQrrpJAssDmSPTXbSFim2WxJWNc97ybOUK324j8rBCmsrAqAmo4pfVZ7GVT3pgT2QRwwE+soCzz0Rr9y2p1am1Sj1G/rwudY2H1qoVcgE9jNENIrO6zn0KwsoVeWyfByV+5jn+lm9/evuUYhFPaFj9a/c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670941; 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=0nKCx0fk9E4IrZSh0Ih9XJaTHZRzsP+YmI+UgWL7HrA=; b=JJY3mfQcFbEt1MFKh/8pCHN40WCqtHZXXdCi2Bkj5mJg6GoyMCln4oyWjjrObbp/xpEWx4VraVD3uFOUCxjFFY3dystLtG9kRj+TRrK58sc5zLMUjbo/ZupjdpPx6qYYXVBLay+catQFsFJuFV3S761oibm3G5meWrT+UAqSzxo= 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 1653670941397612.8359832441479; Fri, 27 May 2022 10:02:21 -0700 (PDT) Received: from localhost ([::1]:38474 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudLw-0004b4-D0 for importer@patchew.org; Fri, 27 May 2022 13:02:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52964) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8S-0001hr-9M for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:24 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]:39775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8Q-0005Pc-LX for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:23 -0400 Received: by mail-pj1-x1030.google.com with SMTP id x2-20020a17090a1f8200b001e07a64c461so7571492pja.4 for ; Fri, 27 May 2022 09:48:22 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:20 -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=0nKCx0fk9E4IrZSh0Ih9XJaTHZRzsP+YmI+UgWL7HrA=; b=DgW6dNT6ejMGMaiKUrtE4zQR4nx+i492nbfaXaNeMc37cDq1NcMnvhtlhxvgVY8O/f z4waFga2DBngKhq1zQBAQQRHztHp+gNj9X2RgE2nSN+evK625S4sRZJGHCyKwe7fwMBe hCvc0RPvtbTHBHfmsU8HnTE2gaaC9NAcKHGYstcgE5Yo03BfLhPKs6tCnVMyOkgdNXjS vSpNyDnVIW07Em+2D0X+7D9jWNz1B7ZSGoAFsWGNvGXLZ+nMZljtfBrbjAFgQUMaMEOC kOg0/pJYAvQOX5Pqc4gZO70LHAlzEdV7qBbbO4b0litvWgbM53vwUS1yaRzhL3bNIFyA YclQ== 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=0nKCx0fk9E4IrZSh0Ih9XJaTHZRzsP+YmI+UgWL7HrA=; b=rSlojUAnrUB+UtpZ4nwRJES3/KixfG82DuCIXh6mFoOuD6o8Q/fMWKDjAp8vExamxT KxE/OANoGrMzWwSaqWqN8pIlUcL/siKn/fONSCw2DdEmCrKeG8PAKGiknqi8Y1ts7i42 pAkgheZUQ3L+1vK/5KUJYScQ2udnGE3e8rz136yV8R2jUAKDJilGbsnvlicEO3IJAE9+ rXtJcwHzipcaFn6fTpAENZBo+LX1XKQlLnxIwwE+fNp44RZGxqQzAK0dQLde581EEpoh 1UWfiGikDLdjUTRhjhCJ5qaPYDyv5l9EQCw+bBAWCddaJsqoD8ReuuHTAxjPL6FlB3FY 6KuQ== X-Gm-Message-State: AOAM531iDuwWixcrOfv25eeJOCHBJDT175X5/a+BAisyhlRTH5vgIR8B L+UkX1xUwQ2JNYKfy8RV5MYuzZlq++cSAQ== X-Google-Smtp-Source: ABdhPJy5z22d1xb8wjdtmRaSazqjlNQSR4yZjCnXWjgb8H/3BIxrBZCYwGJsXlHvwV0KwSP8WlMqSw== X-Received: by 2002:a17:903:11c7:b0:151:7290:ccc with SMTP id q7-20020a17090311c700b0015172900cccmr44332716plh.95.1653670101358; Fri, 27 May 2022 09:48:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 12/17] target/m68k: Implement TRAPV Date: Fri, 27 May 2022 09:48:02 -0700 Message-Id: <20220527164807.135038-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670942850100001 Content-Type: text/plain; charset="utf-8" Reviewed-by: Laurent Vivier 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 bb5ed1b7b1..0cd7ef89e3 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4911,6 +4911,14 @@ DISAS_INSN(trapcc) do_trapcc(s, &c); } =20 +DISAS_INSN(trapv) +{ + DisasCompare c; + + gen_cc_cond(&c, s, 9); /* V set */ + do_trapcc(s, &c); +} + static void gen_load_fcr(DisasContext *s, TCGv res, int reg) { switch (reg) { @@ -6074,6 +6082,7 @@ void register_m68k_insns (CPUM68KState *env) BASE(nop, 4e71, ffff); INSN(rtd, 4e74, ffff, RTD); BASE(rts, 4e75, ffff); + INSN(trapv, 4e76, ffff, M68000); INSN(rtr, 4e77, ffff, M68000); BASE(jump, 4e80, ffc0); BASE(jump, 4ec0, ffc0); --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653670881; cv=none; d=zohomail.com; s=zohoarc; b=fD6huCUSpJO9T9TdGNKn9N0jDI3Y2UoP7tZajSPZPsEUmHFrHq2PRMTc4P0GfQA0CE7SZCHiPM5NTkDjE+C4isEH3Ia3lfVQIN1iDbYnk6YnfdoS/g6C+r+kDZqIWxygK7KJ9+lhIbfL1IPvu7S2r07WTf9GMr30MHMbaF6CZDA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653670881; 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=iwCHC5zYGGXmRt70+BuzxFh5vRmOK8/ztMHW5zGIQq0=; b=OyCzbdQqE/uZvMXO1nbPa3mG4wYUCuuGMpbEUAYg7WJJfIaxlsHh1/nk1IBk9CATVHxmdn9+1eq1Ay5gaeIK1KKIhlT+wYx/Xffvg9yoxD8ALznRxXlavdrmnB+Cl4IRhliLv/hkRbDEPSgDlAbtAvHxIBpvVeKLrnIed4UdC6o= 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 1653670881674282.6808245867659; Fri, 27 May 2022 10:01:21 -0700 (PDT) Received: from localhost ([::1]:36138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudKx-0002Qf-M9 for importer@patchew.org; Fri, 27 May 2022 13:01:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8T-0001ll-HV for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:25 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]:52058) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8R-0005Pt-Kj for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:25 -0400 Received: by mail-pj1-x102e.google.com with SMTP id gk22so5085972pjb.1 for ; Fri, 27 May 2022 09:48:23 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:21 -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=iwCHC5zYGGXmRt70+BuzxFh5vRmOK8/ztMHW5zGIQq0=; b=QcdlxC8USzFrAxtqMEhAKZj/KtCKlXTnKDZYLbDgzyq2MrAZRuNSY+c7ehP3oyYSrE l60J3rbOpAAkdHnOE66I1ho1WVP52fe9QSqkhLBqNe84Ek9wPUleiHmmGWHHVTyU2znJ mqVqzqlLinVxLgDK/WZrgThHFQNGDQWMNgNHHg4aHxE/gURcz0GsdkhG2zLmA7WhnaCD ajS3Jymc6sO4vQrLLtubaHOJmjvmXxP+NyfJE8oYf7veibHWcO1LaDFkWwB2lF+akKJ8 1D72BGByNk39ORy1R9QeX3tZaizGWHQdS82t0b5J7MlbW3kDRY8qO+ACln7tg6JBvz0z +2bw== 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=iwCHC5zYGGXmRt70+BuzxFh5vRmOK8/ztMHW5zGIQq0=; b=EcsI1NN77vX2msnUt5iEIsI4/AJo//wa8CQlw7q6tXj//45apXKSQZu4sFj3K9OlD2 tZMOoBgN5yOMy0OUWD69B/EOVy9v4BGcaFeQkate3f+0kyup+c0/Nk9FMJqt+va4RYeW HRnjW8urSE73bk8ezb230H/O0RVlGTnfw6FqbLleGk/jVZcX+bdPuzPkAiR6R9UQq1bD Njx6UZOqPw7DgJwrD0HoThu5XIQxI3y9s5jWDUUwSmTPja9iuA8ZV7qz/7RUeoS7EFT3 ruMf3RAIS5a8KcbjEDqzSo7bocNDpxgxKuBRsAiNZ8rgoovgIaZopPZDMLmrx8WF68YI KdOg== X-Gm-Message-State: AOAM530RukRc3j6ATxBhhbWHn+Yi050Z7BwbUxLtw9squoZ9xt0G/+XP zMrZDOeAWr/APygg9Q0qdKx1D2x4WQajKA== X-Google-Smtp-Source: ABdhPJx/m2nvUhQ/P6F2hnrvuJAhMTZnuAWsQDIDLlJ+4dmZnslg3f3S8RdKKxrpu4ydKLqS0u14AA== X-Received: by 2002:a17:90b:1b08:b0:1df:f11a:7d51 with SMTP id nu8-20020a17090b1b0800b001dff11a7d51mr9465736pjb.190.1653670102395; Fri, 27 May 2022 09:48:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 13/17] target/m68k: Implement FTRAPcc Date: Fri, 27 May 2022 09:48:03 -0700 Message-Id: <20220527164807.135038-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653670882779100001 Content-Type: text/plain; charset="utf-8" Reviewed-by: Laurent Vivier 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 0cd7ef89e3..a3141d7f77 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5567,6 +5567,35 @@ DISAS_INSN(fscc) tcg_temp_free(tmp); } =20 +DISAS_INSN(ftrapcc) +{ + DisasCompare c; + uint16_t ext; + int cond; + + ext =3D read_im16(env, s); + cond =3D ext & 0x3f; + + /* Consume and discard the immediate operand. */ + switch (extract32(insn, 0, 3)) { + case 2: /* ftrapcc.w */ + (void)read_im16(env, s); + break; + case 3: /* ftrapcc.l */ + (void)read_im32(env, s); + break; + case 4: /* ftrapcc (no operand) */ + break; + default: + /* Illegal insn */ + disas_undef(env, s, insn); + return; + } + + gen_fcc_cond(&c, s, cond); + do_trapcc(s, &c); +} + #if defined(CONFIG_SOFTMMU) DISAS_INSN(frestore) { @@ -6190,6 +6219,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(fbcc, f280, ffc0, CF_FPU); INSN(fpu, f200, ffc0, FPU); INSN(fscc, f240, ffc0, FPU); + INSN(ftrapcc, f278, fff8, FPU); INSN(fbcc, f280, ff80, FPU); #if defined(CONFIG_SOFTMMU) INSN(frestore, f340, ffc0, CF_FPU); --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653671434; cv=none; d=zohomail.com; s=zohoarc; b=XCfQiHG0hDCecBmogXFFQPptoYX+zHmvzoVqmruDgv/tuJfIrpO0Qy/uygAn6ZE4k6kdZxLesMoL4tDR5F3kzW3n3teeWmUpDNxHkazfUZ8Pka+dTOjK6DnQ1RPqbH+QRyVJaiiVtcoOV/Spq6CCKsP0g860rwnSEe3Ay/uJ93Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671434; 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=Ec0dbY3Lo89Y5jy2prv7uGoDI+hJWJ+BkmpUFqfWdho=; b=m8mkQDI5c17ZkIeUGL828D2lcgCSGJdgxUZYbxG1VZop5nHmD1wOeSDrV7chBf6s07BRmTsJ3ngChioCb6jG2FfOJZW7RA7u4lqbmx1dd+/xc8VjPIHVKJJ0xz92la3FxG29NlSnpnSetfZnJA0VT1O8n+frtBX/LtSUnztgNTQ= 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 1653671434372753.2060072361115; Fri, 27 May 2022 10:10:34 -0700 (PDT) Received: from localhost ([::1]:55380 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudTr-000867-Ai for importer@patchew.org; Fri, 27 May 2022 13:10:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53098) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8h-0001yS-Ts for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:40 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:54816) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8S-0005Q2-VD for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:39 -0400 Received: by mail-pj1-x102f.google.com with SMTP id cv10so5057799pjb.4 for ; Fri, 27 May 2022 09:48:24 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:23 -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=Ec0dbY3Lo89Y5jy2prv7uGoDI+hJWJ+BkmpUFqfWdho=; b=vVw1Mejzw8+8rdBfVEImJBecz5ij7tUQ0+26Qyi0HP6gjBnPpyZOet0VN6siE3rUnL Rr+QOvfdu/5Bq/vHXMwbtiO5NfSChR1c/IH787q26B0jfzQlQxMQhDr0KHAjh/lr5uo0 wxwQ1/sqkBEsj3/+2qPoya7wQO7iDsf4EfHCV1EoysUOYEwOOlE7objRTgzoMsyh7Zpg svmzfzZNPDLy6KMANC5GwHyu4huWS8rBYYiev0hM4k06Z/PaTDiyx0oQ04xSOCV0Gs3n 59boz+aBWB7hOEVIORQ234vv4/AhNW2v4DHyd5Vwg7/LO8s6NQXAo1EpBF5IQep5T5mY d8VA== 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=Ec0dbY3Lo89Y5jy2prv7uGoDI+hJWJ+BkmpUFqfWdho=; b=oJGl18ZtciadFlmU50ddG6hCa9PwF8O4MX49/fH2r8PV1LxxC7dtAma+RNIf05QTVa PmVkyDOdumPUc1/Z0Y9X5OOkaplof4cTRVOrhHAS5NwDtFuvJIJo9XYeggxWCx0+Yh7I 7Wwg79ijTAOuQCRno+hYU7bXDm1znlE7FuNAss1OwPZT2/nzq9VfztAZdGqE69V5PULO shNkgAOBbw/m9VpRAqn0pNN+bYEMtOiz9Vy4IXuld5HcoM5GG7Atf//BBvPcogDXcenB q8Yop7GChdnFFMEsHGQpx7kTwW1VnBZRP4ETjwDYcILfMkiz4U69vHakgf0OSL2NVceH Lkvg== X-Gm-Message-State: AOAM530sCojf7mMRloSAFdNBMTFb/fNeu938OctAbJzlZBBBEVgUgQAm BypsOU/dL5fqb4MkxSR31x7M4f+n92+L4Q== X-Google-Smtp-Source: ABdhPJxoqbG9/+x6HEFYbX5mz3Wt9v7w+uGyjvWwyNqO+eDnR7WhIbgEk0COUJokhebE++JK9kh3oQ== X-Received: by 2002:a17:90b:390b:b0:1df:b3dc:514a with SMTP id ob11-20020a17090b390b00b001dfb3dc514amr9361789pjb.25.1653670103653; Fri, 27 May 2022 09:48:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 14/17] tests/tcg/m68k: Add trap.c Date: Fri, 27 May 2022 09:48:04 -0700 Message-Id: <20220527164807.135038-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671435355100001 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. Reviewed-by: Laurent Vivier 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..96cac18d4d --- /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_ILLTRP; + asm volatile(FMT0_STR("trap #1") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #2") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #3") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #4") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #5") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #6") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #7") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #8") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #9") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #10") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #11") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #12") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #13") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #14") : : FMT_INS); + CHECK_SIG; + + expect_sig =3D SIGTRAP; + expect_si_code =3D TRAP_BRKPT; + asm volatile(FMT0_STR("trap #15") : : FMT_INS); + CHECK_SIG; + + return 0; +} diff --git a/tests/tcg/m68k/Makefile.target b/tests/tcg/m68k/Makefile.target index 62f109eef4..1163c7ef03 100644 --- a/tests/tcg/m68k/Makefile.target +++ b/tests/tcg/m68k/Makefile.target @@ -3,5 +3,8 @@ # m68k specific tweaks - specifically masking out broken tests # =20 +VPATH +=3D $(SRC_PATH)/tests/tcg/m68k +TESTS +=3D trap + # On m68k Linux supports 4k and 8k pages (but 8k is currently broken) EXTRA_RUNS+=3Drun-test-mmap-4096 # run-test-mmap-8192 --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653671304; cv=none; d=zohomail.com; s=zohoarc; b=IA6bsTyWmYgXOuRUaCYvLVyOK+TnTS1FZVDHxw9MRIHevawZziLbaDK5ekTfoa9W/rx8PzVGo/1Dg2D+dwgS9QWEdHzzjJabQHCRe5v47q2x2xOoKwLl+M6gng44MENCYngDE1BfEe9EuCfC3FymTQJ5BktWBc+0JBnpOqgtRrw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671304; 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=37l0ckMoMVGJpBF2TcV75mrqlQxEuC7DjW9Iu6LSXsQ=; b=iFXfoPB5r1IdQNxqxKlPEIIALtD+3E+boByTawR42obZw2pvLST4l8LEqFiR5AoVEXu8LDLs2+qK4x3qDVSiWJXpvBkQevE4HLELX3BqpvSPpq+wLTiiAtqulE/3eliUHueHdphsS9NESzzZGSG9nroU9YXlMebc61DN3lunjnw= 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 1653671304071119.17684420885143; Fri, 27 May 2022 10:08:24 -0700 (PDT) Received: from localhost ([::1]:50990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudRm-0004pu-JO for importer@patchew.org; Fri, 27 May 2022 13:08:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53056) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8W-0001pb-Q9 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:29 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]:50795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8U-0005OO-J9 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:28 -0400 Received: by mail-pj1-x102d.google.com with SMTP id d20so957662pjr.0 for ; Fri, 27 May 2022 09:48:25 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:24 -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=37l0ckMoMVGJpBF2TcV75mrqlQxEuC7DjW9Iu6LSXsQ=; b=ueFR14+ijZS+k2WNkkM1f0iwi4l02NH40SnKM2A6Qt3oHDjpci6YNpgbrBrTjGvWb/ uUrIpxuOeYv8o1S0EIaO/62EvF2qqj39LV7K6Qi+mPvjfsH20I+ipJg4IzOVxnWbeQBv WTkXuBQh7L3rLsB9ZAML4dFiPVE6Ki67avuvOxJSwsWyjhCxQ44tYWB+X/NqubMqXFLz inNjn5etOjKNcu53ii/rEQsOAWlkVHO7/ky+T8Hoy1Xs56tx3i1jgkzHErostw/mLYWo G36kKjMetVfmozDaoN6qA7N/29KqXH5aVTQHKXGnVLbPyjwRgllUsxrCo+1fKlwr9o+4 NtUA== 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=37l0ckMoMVGJpBF2TcV75mrqlQxEuC7DjW9Iu6LSXsQ=; b=jec4k4w/GEsdITiUFILufpywVl8+0/1CmdjrBOpAx43TRSH2+IjbOper+N1u/in0yJ 4RMP6tuNuphMbYQITpvyNT0sUfXXA6if3bX+oyfPl8Z51kz+gt9uT6fuUQT4A8cAfXkd bk/2gvAyt7ugtYzyDkPq7uK8hSG7t/sB6hYunrcNGcBn0Nkw5GqVD73Aqqhio04Zw/M0 rShg8vmhiu6c9MA2kOOwPvaFRH4lXCZA5wCywLMzHcJ1yQgJkCJdkGgCW080rV8aR2pY DeTY0ag4godrDgkSXTp1dqs/ivbajcUBfpamXrR0SNL7RX1rdBxF7IcbWdHzhY/IqGml ZXFw== X-Gm-Message-State: AOAM531jwpSNd9W/6NOWggpr9nojkm8/hisBVebi1UmYfd6m0NMYjmUY IH1dsi1aVZqWoGA9OyO8yiF+WP2mDnbRzA== X-Google-Smtp-Source: ABdhPJw41X3W8gs9CIIKt7tP1kiFv3spMvifIyEQP0O5ABaSJYQvzhYItBZu6OAI5a1qeQxK6uRcEg== X-Received: by 2002:a17:90b:3e8a:b0:1e0:51fa:516b with SMTP id rj10-20020a17090b3e8a00b001e051fa516bmr9355922pjb.151.1653670104710; Fri, 27 May 2022 09:48:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 15/17] linux-user/strace: Use is_error in print_syscall_err Date: Fri, 27 May 2022 09:48:05 -0700 Message-Id: <20220527164807.135038-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671306262100001 Errors are not all negative numbers: use is_error. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson Reviewed-by: Laurent Vivier --- linux-user/strace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/strace.c b/linux-user/strace.c index 9fa681dea9..7d882526da 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -689,7 +689,7 @@ print_syscall_err(abi_long ret) const char *errstr; =20 qemu_log(" =3D "); - if (ret < 0) { + if (is_error(ret)) { errstr =3D target_strerror(-ret); if (errstr) { qemu_log("-1 errno=3D%d (%s)", (int)-ret, errstr); --=20 2.34.1 From nobody Wed May 15 20:35:59 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=1653671060; cv=none; d=zohomail.com; s=zohoarc; b=PbtS2f6HW891r+fjcJNr5D/X2zf12mS7Vc5jkb3PR3+KBCohFGeRkc/KWVD9aOgEZNfRwTUphBwh+b6kiBhTaBLYYBd8jUB3Dw6KIPQ09Z03eu1i6aoBIsXfCwaGEiVBPBD429hSQpNzIRS3oJ1KTzc+pMVoBOxkgYGW0YAEBDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671060; 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=frtjY4kXdf+btOwpubtlaBEs6SblJPqCp8QSyGl5a7Y=; b=TFgjwlV2DpYUkZY6PMsyeJ73zmz7NQHiTu7ZFnudeQnyzWrBPPwsbbOyzwwggKD3MfQqnuI0vqIZpapFb2Mn46I/SLUnJb8sxSUnOfYDN7aCSRtiJBwBh06PIPC/zkWHFX9zLNdoKiBcjDVnR3NjVkEco4kljFkG4Ht7R4bFjmE= 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 1653671060874531.2275438542307; Fri, 27 May 2022 10:04:20 -0700 (PDT) Received: from localhost ([::1]:42578 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudNr-0007Sf-Lq for importer@patchew.org; Fri, 27 May 2022 13:04:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53058) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8W-0001pc-R4 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:29 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]:44564) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8U-0005O7-Ju for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:28 -0400 Received: by mail-pg1-x536.google.com with SMTP id v15so4356157pgk.11 for ; Fri, 27 May 2022 09:48:26 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:25 -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=frtjY4kXdf+btOwpubtlaBEs6SblJPqCp8QSyGl5a7Y=; b=a+PuiOW9io/F7nmg17trSxtOLBRkL7HBe3cPKNBdOjpG4r0e+gn78E/iFqfBfQUoUN vjbhILJXT7Z2bwm86GIyEcKrNiPdtK3XtUiy2kuBIOf2TkRTkEQErStV/XhpyLxEUweP IJzyH45iFaqOUiOTZCsYIT3ytLSXx1Q+23xA10MMir9zm4Jn3rRm1kxhRLpI/WqWPE1Z MN7JqbQXG3OKPxsvJrV0J4dD72jiDUX6CKpHUftnEO2mUa+54rabj8iB+z7LKujChYqA a7I/ZwNhSQCVR96ojIoZD68cYnv3Hf1cz6ekud/6CVdxY3C5FFewjB/RYbnIK8Vz3/Us /Avw== 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=frtjY4kXdf+btOwpubtlaBEs6SblJPqCp8QSyGl5a7Y=; b=EcmfMpqdAIMUDG0yRVqx2PZInJH5L3Wjeo7fWkeUmKDx3MzVTAdcRRNRXyGUx7HmP6 m9+DBU+vjAM6j9GrSbG8kYGAZ8UROTlmAIGBuXc7TWRdNqfl0+093midMsEOcUOQtjJL km5CJHdvZ43Z3GtSpkFTsT2zqS8fAfOAETVgkgk2pc6GkN/OxGX4eqGuI33pdgY2XDaa mlB9WgCkq97Kzh6ewDQuTkUGsh8JirUgxc0ap6WJVSbsORKUfa8wsCSkb1YclKuK24dx pZxY9IUwbkum57bFYYuoeCJCqfDzAslT+IRmhAfflTE3x6NZdD+S4W3/DUKlkh8QMFm2 keGg== X-Gm-Message-State: AOAM532YgNM+r05tbYLP0+0LFQELPRYfo+H4YMVWqHvfgMVSXQ+VsXAc Qs8xjHxZVXLDvurY3q8qGaYVado88/OjXQ== X-Google-Smtp-Source: ABdhPJx/K7C/OZEtJQan0o/rlcw4ApUrb4OmjeS7swspWY+7SQGS1dJ4DjpU5SGt2Wat7nK6JkTh4Q== X-Received: by 2002:a65:47ca:0:b0:3fa:e914:9643 with SMTP id f10-20020a6547ca000000b003fae9149643mr11383776pgs.430.1653670105884; Fri, 27 May 2022 09:48:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu Subject: [PATCH v5 16/17] linux-user/strace: Adjust get_thread_area for m68k Date: Fri, 27 May 2022 09:48:06 -0700 Message-Id: <20220527164807.135038-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671061593100001 Content-Type: text/plain; charset="utf-8" Unlike i386, m68k get_thread_area has no arguments. Reviewed-by: Laurent Vivier 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.34.1 From nobody Wed May 15 20:35:59 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=1653671236; cv=none; d=zohomail.com; s=zohoarc; b=KdAK3MLB7E9/7zXgEzzYH1BU42bQ5LHckw2KZu9NGalaXpT/SlpzYN/yXJp9Z+zvTxdgpdNXahGniPJraQ+L+0aSOYqC0kBBLUql3aDiHZTqy6jpeMABzmUtL/f3iLxMUrI5XWd11/A2xH1s4LxU4likRxgYom6hyXE++Lh59LY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653671236; 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=IPe9v04jpSOnM1YqKXysVjOVagzaKcyYJ8pPspoxKJ4=; b=lwrJKX7McJV7/ATkBM5/946SHAVBWDy50+40+qUIkQaKTbV358gwA3ftVldp+Hr8M2ERrJTBqT2lQSXhFRM+KnSFwhVuUlfb/bfiZActyeRj9l/pWk0x45i+c6eZgA5GRLqcnUHFH5RPyXGnHGVgl5zAsgWErFmExcK0lX2FEMU= 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 1653671236619888.5739688758702; Fri, 27 May 2022 10:07:16 -0700 (PDT) Received: from localhost ([::1]:48864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nudQh-0003MK-Dq for importer@patchew.org; Fri, 27 May 2022 13:07:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53088) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nud8Y-0001qm-9U for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:30 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:44576) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nud8W-0005Qe-F9 for qemu-devel@nongnu.org; Fri, 27 May 2022 12:48:29 -0400 Received: by mail-pl1-x62a.google.com with SMTP id q4so4586788plr.11 for ; Fri, 27 May 2022 09:48:27 -0700 (PDT) Received: from stoup.. (174-21-71-225.tukw.qwest.net. [174.21.71.225]) by smtp.gmail.com with ESMTPSA id j11-20020aa7928b000000b0050dc7628133sm3861420pfa.13.2022.05.27.09.48.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 May 2022 09:48:26 -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=IPe9v04jpSOnM1YqKXysVjOVagzaKcyYJ8pPspoxKJ4=; b=cc3NKSUyf68C+FpOY+vt/bLGq6/KfQZLXny3CuQf21xgPgg11P27E0nqf1nwugHWqo EEA2bhl4UQr/wJ1TUf3kPeEC4hpFXaFErMvN+eVu/KTTby4EP5JaWkRyRKMAwSlP3uVw 6ZweaDVI1WQxIKlDQF7qlQRETZE2lcnOxLKIgFGROB+Y339ABe+lgKf9xy9V4TBfU5zw IAdQRCdtUotLoUQXwFF1ev6bEewGgRJN60gPkNx96Bw5fAMnaIZYXM4vLAmEXd8xfy56 hjnpv7P3ep244J0isxOoWACcgjP3NciMJXBEg9H9PpGyrK7reegZzgJIcGRtw+8cPk+u mtBg== 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=IPe9v04jpSOnM1YqKXysVjOVagzaKcyYJ8pPspoxKJ4=; b=aWMrQrBVarFDu9proDnapAEHURQcdDZK41HAmvndst55OWuceWOeCVdZ9XRfNvv7kx 49TPz0tj9UBtSHxfN/slPNoHYixXKY2ontYUUUFOrpaaHeUDcXbBTtWrv4pTtYjhBYkV g2VZDsKl6/hgGr6YMyQ6UCZiPCkCKCJqTv7ES/sE/Ea/0P7irkY9VYjgB7N4bZ/9yCUt nYVp0BSrYK9Oowp+xQvP9FkAsqG5k7Rjc+dhWfYgRmoqYdG1nzwBxYEkP28mQANOE/o8 JaEsIqjIRa5BqO2fww+BxE8MNiKdIcjg+7gBRjinWl2iBQ4S7AMG9oRdo4CCEMwIhnM4 6Olw== X-Gm-Message-State: AOAM531RSqA+61ztzg2Nii+WKaF/K8jw+bYxZDv5ECS0tFnR7RDrRF0p XKmKRhK2IEx8UUl9bTFgR9ck5FaWRpWcUw== X-Google-Smtp-Source: ABdhPJxA8QHNzfD0y2RwPDBEjLOqjeWMJHnjr/yjTsmr6dqsd7mqL5TPGPhtBFNGuKkS14kuRT4SMA== X-Received: by 2002:a17:90a:a385:b0:1cb:bfa8:ae01 with SMTP id x5-20020a17090aa38500b001cbbfa8ae01mr9239774pjp.116.1653670106834; Fri, 27 May 2022 09:48:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: laurent@vivier.eu, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 17/17] target/m68k: Mark helper_raise_exception as noreturn Date: Fri, 27 May 2022 09:48:07 -0700 Message-Id: <20220527164807.135038-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220527164807.135038-1-richard.henderson@linaro.org> References: <20220527164807.135038-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1653671237812100001 Also mark raise_exception_ra and raise_exception, lest we generate a warning about helper_raise_exception returning. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laurent Vivier 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 61948d92bb..d9937ca8dc 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -532,7 +532,8 @@ bool m68k_cpu_exec_interrupt(CPUState *cs, int interrup= t_request) =20 #endif /* !CONFIG_USER_ONLY */ =20 -static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) +G_NORETURN static void +raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) { CPUState *cs =3D env_cpu(env); =20 @@ -540,7 +541,7 @@ static void raise_exception_ra(CPUM68KState *env, int t= t, uintptr_t raddr) cpu_loop_exit_restore(cs, raddr); } =20 -static void raise_exception(CPUM68KState *env, int tt) +G_NORETURN static void raise_exception(CPUM68KState *env, int tt) { raise_exception_ra(env, tt, 0); } --=20 2.34.1