From patchwork Wed Mar 16 05:58:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551822 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp3106mag; Tue, 15 Mar 2022 23:02:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx82rA4bJ3llqJ0I+GNdNyBBVAsv7qmqHhSzbRDBIfnRynX4AlnOTchUCTQ879xV3y6QqVu X-Received: by 2002:a05:622a:148f:b0:2e1:e8de:bff3 with SMTP id t15-20020a05622a148f00b002e1e8debff3mr1360521qtx.555.1647410578592; Tue, 15 Mar 2022 23:02:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410578; cv=none; d=google.com; s=arc-20160816; b=EdIExK8XLsMxxU5gcP2xI1vwm2xFO5a/cCjl1ifogzsNhwvFlGJQj0/+ooKUDfVFyp MKoEXiZbhg8qNxyqsUHoCPQTNTIUeLTkyDumFEruq9cK4+cxvEBbUDoWMChVPwGT3R0R 6MODo8x6Kxm1pswiPAXmf1NW7dsAMTiUw0V3L+RuQiEJdkl8ksCkuZRjR+2/c/CSpt0/ 2Im1ojuy+YzSvKnsXJS/40Z8LQJzdLeAYAfPsrzV5wQG2aKix7rhdiruI7uezIpMnlIp rqH1c1U4jzq7MRaskTajuh2yOGIHd8kROS/96FoHAORGNUNBtJ6lFbbINud9eFxCCATF uFMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=Ut8uguFZ1yRsbxT2m6wfri5izyJWk4sd0K7AzR6oJ0vn+S5PqmT+9ToJ96a73mW/WK qQDyPK3mMHtP/xqG9hLf/8IPcNk679OmoHTarpyPhzEtlyAPuB/PLgM91K1XBMJWUz7d z9RibY5SRvQHTug5G1xH5Jr77VWLAHXhFeyc+4PsugNQddoiZco5ZVVhBUNo7FoN1zWR ZwWFxgiixFlOvyK989WVOe4WGbeO8bpiVTwZa+odnG196AUkLvtrPE/nkQ7HRK6JMinn jumdofKa37p9YIHJDU/tb2aZlkLuRd7yzOrRIGaRePbW+aTBV+3ECP+vq3PIu4J3r6ko Bt+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Q/6+5ZXz"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id v1-20020a05622a188100b002e1a40c51e9si230992qtc.370.2022.03.15.23.02.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:02:58 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Q/6+5ZXz"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:56780 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMkM-00085p-3b for patch@linaro.org; Wed, 16 Mar 2022 02:02:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0002DM-4N for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:46 -0400 Received: from [2607:f8b0:4864:20::1029] (port=53155 helo=mail-pj1-x1029.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgG-0006R7-JS for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:45 -0400 Received: by mail-pj1-x1029.google.com with SMTP id v4so1322443pjh.2 for ; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=Q/6+5ZXz4w3B27yO6K+ylyzoOIxqes3/hpNbFpIzdXSAdBuCq3Dt6I981mL6p1fk2F rQ7fvR7dKVS/0PcmbjIlqqrPZ+XVJrlptgTMpyPKYyGtjBIQBfBS8Qn/6ZO0NGdrT7uf zQOrZu9jc0Peh9mkE9fM1ETlA3972COEcBLdMb6d2HnPm954J2tNILQQLMqLrT/KeMuF 2Fqu5FCC8zpYQd8aWhDI0O/lu9XxWdYnYWbk2M6hPz86Uabdzn/telQF8lDRR570eNaP ntkacRPA7REN6Uh417LzFh0n9YVXbjq5WBabGVRQlH8zf1EOELes0xy0Wn1OL7sipZ+P Jpew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Y5E3xDJc6+sMrDQ5ji+qXAf2mzFdQEZPRXEYBWpijOg=; b=x63GAkeJA6vrRvvxrD8pdjr76Aui5flFu7HoRBW0jllhHKbDTEtRHVIGLBLiixc+Y/ NawKthHja65hysPINLxSQiTrACvs3M4K9sT1mIaNXTStfWyckZK8v6j5XBivie/U0Jr+ kqND3u9za/RKWe7AWgB65ap4bCyxs1Dwjj699E//20RKvT5wdiXlC59fTuYQU48Kr09C fCywo6vcLaci78J9svzahOkiCEL1FL8YJEYwEWMTve3xm+Ll4oyMzZtyuQwyGeBjfKNw tqTFbzM/3+d09g9Qo8OvFuhlxdZTsPcoX8giWmeYUei2KIs15B1yJKdDo4EQRIf3WRnq aEbA== X-Gm-Message-State: AOAM532sXK7Gy4HGo8IaUF/wMDI3qyIPeYoSStPTZvUj19Y6E/t3o7YX h5Q+JDfqa0ooCryPNzdgQKHmmCmvtcCxCg== X-Received: by 2002:a17:90a:5797:b0:1bc:56a9:f6c8 with SMTP id g23-20020a17090a579700b001bc56a9f6c8mr8648971pji.12.1647410323194; Tue, 15 Mar 2022 22:58:43 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 01/17] target/m68k: Raise the TRAPn exception with the correct pc Date: Tue, 15 Mar 2022 22:58:24 -0700 Message-Id: <20220316055840.727571-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1029 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Rather than adjust the PC in all of the consumers, raise the exception with the correct PC in the first place. Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 1 - target/m68k/op_helper.c | 9 --------- target/m68k/translate.c | 2 +- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 928a18e3cf..a152567624 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -57,7 +57,6 @@ void cpu_loop(CPUM68KState *env) { abi_long ret; n = env->dregs[0]; - env->pc += 2; ret = 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 >= EXCP_TRAP0 - && cs->exception_index <= EXCP_TRAP15) { - /* Move the PC after the trap instruction. */ - retaddr += 2; - } } vector = 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 += 2; - break; } } diff --git a/target/m68k/translate.c b/target/m68k/translate.c index af43c8eab8..af3febdd48 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4860,7 +4860,7 @@ DISAS_INSN(wdebug) DISAS_INSN(trap) { - gen_exception(s, s->base.pc_next, EXCP_TRAP0 + (insn & 0xf)); + gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } static void gen_load_fcr(DisasContext *s, TCGv res, int reg) From patchwork Wed Mar 16 05:58:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551818 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp1225mag; Tue, 15 Mar 2022 22:59:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxUFJwhGTV+Gn+iG8g+ZE+6tVfU+x1VINqRrcp37wJE4vnT1IPJG+ay8IYEng0MBOjOmEc6 X-Received: by 2002:a0d:efc7:0:b0:2db:d952:1f7e with SMTP id y190-20020a0defc7000000b002dbd9521f7emr27925115ywe.117.1647410371130; Tue, 15 Mar 2022 22:59:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410371; cv=none; d=google.com; s=arc-20160816; b=PiFiMRJw41wHYDuB1pKm/lbSsxgtohE6mmtSqVaW1uJz6bfiEWlv/lS2ii/a6CwASa M5nzIic8Q4zvk3XyVAzx/QpXiYogv4mp0wiIqJJ74AG7rVZJGQ08mMuLvN0ac9U2IwWa eOK8ZTa4GgbWRLJBa3cTsGfBjrZPRKgxAHuUmgidWkCCe86G5voyPnmA0EG9ypGqRsli W/suYihmc9UF6tASPQ23/slZq9UK+JcKf0B7jhG+9e6QWXDFYrgf1D3+i5jUpUxKDI0w w/QB0vdDsja1iHVqWQR8NwWvjf/DqGLeh+B+iV5W27JV1UlNyg1c0l9V6OJzzb2PEWVW 7+6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=d/GZeENNAdp30ANsfTR7N6PPQfbKq8gxXHCbi2hZlLbpNZbrGiBSzCD9Hq0aYGNouM 7q9hr35yGNoDqhmb9D6dnpudZ2EOifuylOYCplzf3Y9c0PqShwGy3fWNoh1azALHvnHk vVsChIwqVULdfXa09lm5DYNmkFhRrBl3EywXVGcvLO444OTYgmbQrlNyMyhmnRaHXhQ9 GmZgtcl8VQ1OmVY2qjEpexAw29+AZv8ft8L9ftszfT+dpyvYFTgiVgu1K9r7vR4QQ8wV B8MDeGYdvUwPaohkRFqf37YFe9vbgbjMS26O2V3vAL+nwHvocS4WVfSIpVJ9/jsG4GVG Ni/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ooEevScC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id k63-20020a25c642000000b00633745ae8f4si1214835ybf.139.2022.03.15.22.59.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 22:59:31 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ooEevScC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:48308 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMh0-0002Hm-HR for patch@linaro.org; Wed, 16 Mar 2022 01:59:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58690) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0002Db-TS for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: from [2607:f8b0:4864:20::102d] (port=51790 helo=mail-pj1-x102d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgH-0006RI-9A for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:46 -0400 Received: by mail-pj1-x102d.google.com with SMTP id gb19so1328429pjb.1 for ; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=ooEevScCNJdN2KNP0mFKh5SumxCiRh1CW/j8c9u4fst18QSJU+jwt0Tf0ToKiWeaKg t+neeTQba78HSZ3h+WYfVFkdrBftEose8kxQUEMUXdBHMD/SfhZq3ncjV0LJvZiZUdSd uwAvc/lVSB2RRYsMMP2JJ5TNTBNUH272Ls+4c9NMRIZp0VscTzgArN04nF5cROfIswNO a2UlccKIEk3uNlyi8n5Ex+PjnoUZpttpZD18/XtnMrAPb0/Cms7oMuzSzMbiZ9pdJpXJ eqMlVBmspYNX7Rjssqv2O43cIHevOuXGSMavYK8Z8zah2mpflmOiKPlux/AaquizYhXn U/mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z50S1ANY+qogNRBEcXvOj+j9JDtWXU4rP5QfdInSzso=; b=qrs210f/0/3kboUOcxnTuwSCXhrYny7P9rO2hwCbo/IrLmgOk7yFCGC4EkbLiIevnF 7VKrRe4NbGKanomwpsaJj6D0tv7/1vcCKSYv2Xlzlx7S2Gz5hmjFfWylLQgzbZWCaHAg vef6AoegoQGIs8Ea2fYPrS+giiId8VgqvTJengkJ7RQhUqciBxKcNhWI5d5f4QPykZ8U BNOUpW/tTtmfb0hPbwVUvIhvIbKdfWbPiwISQaWSFRNckYSHBxqG+xpA+4IXMp2xkf1Q eIKNbGW9v6kWUcBzMJfJvArNwidhlhF0YJ+NOm0AMfHDwtAwQW9XaNcHokqb1lH4Nfr7 borQ== X-Gm-Message-State: AOAM531vVToauoNxIplHDXq36C8KgDfXFBR9fyKu27Dg4yEDtbRy5Hgs szybxjrpriN2rswSVIYWCNrcOJxqBFCYbg== X-Received: by 2002:a17:903:2341:b0:150:2371:ee59 with SMTP id c1-20020a170903234100b001502371ee59mr31212199plh.57.1647410324033; Tue, 15 Mar 2022 22:58:44 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 02/17] target/m68k: Switch over exception type in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:25 -0700 Message-Id: <20220316055840.727571-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Replace an if ladder with a switch for clarity. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daudé 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 is_hw) sp &= ~1; } - if (cs->exception_index == 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 == EXCP_ADDRESS) { + break; + + case EXCP_ADDRESS: do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); - } else if (cs->exception_index == EXCP_ILLEGAL || - cs->exception_index == EXCP_DIV0 || - cs->exception_index == EXCP_CHK || - cs->exception_index == EXCP_TRAPCC || - cs->exception_index == 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 >= EXCP_SPURIOUS && - cs->exception_index <= EXCP_INT_LEVEL_7) { - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); - oldsr = sr; - env->aregs[7] = sp; - cpu_m68k_set_sr(env, sr &= ~SR_M); - sp = env->aregs[7]; - if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { - sp &= ~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 = sr; + env->aregs[7] = sp; + cpu_m68k_set_sr(env, sr &= ~SR_M); + sp = env->aregs[7]; + if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { + sp &= ~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; } env->aregs[7] = sp; From patchwork Wed Mar 16 05:58:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551817 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp1208mag; Tue, 15 Mar 2022 22:59:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRFDnbmt+aZOp9YRrtvlIsF1K2Z+S0JLxyVUtIBQjZ4kYcJ9N6C/wbbjB1MEbNPqeax7G7 X-Received: by 2002:a05:6902:3cc:b0:628:73aa:9c7f with SMTP id g12-20020a05690203cc00b0062873aa9c7fmr28233711ybs.632.1647410369895; Tue, 15 Mar 2022 22:59:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410369; cv=none; d=google.com; s=arc-20160816; b=y8klx80iKLq6KAuSSOZojGtRqE/hV6bOzcJUxaAxF+YYvXxL2yAYTsB+9lbZqJvMFv dlJEMKKTYWR3LJvvGH2NbLUl0xWYGHFibsdGeKMQgmTYGX3CCq9QLEeXeV0yqV3Obsxg 76cD9iyQF1fL3XxLFnL0wQf0acA8fcdK1rUnidgnoksdvp/gJs3uAWNTdmiRvtZI6nvP BzfrvvzZWo1zYwhHVKvNbD9360l8zqBbnJKb8PZ9s+H+gDt/BSEMhPVbuazko3FOkry5 zwheTfQkLHyGhtE7CeDazdklQghONyi5c8Mo6wqVZe9b8xmQMtrSXywVTInFVWJu1lZc jsBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=rNjoThTglVDcZbKOXTVJhGSU1K2xOgBHF52vM5xE7HYKVTFQ8sLTLbu1a4AFi1A4/k mTFLnsCXO/gqsaxHyrXaqBq2fRlS/KJDo/v/wStFZsVFf9Mtw68Se7xNSsmgeaCnyhZF bsDlUQU3z1a+cM33VUawyn0l2GfdxIuOF7e/8xXgeEKNav1eZOtzb8ILB2zgC5w0vd0x Agvb3jLsnlnAlbmxLcHBosFWNR9iFIUGhJlmlFo1qp4msDhAkE0kLn3+s+iykkhB1Rml 0w5rKZ1KQYrskHEcpPF7UHNfOYp/HN27/zh/gyLgKGOqGmAufC/kw6ZL7Xu+i6dfJtOf 5cnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="V/Gmw8eJ"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y4-20020a25b9c4000000b0062888f4d6d0si1028060ybj.362.2022.03.15.22.59.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 22:59:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="V/Gmw8eJ"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:48262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMgy-0002G3-WB for patch@linaro.org; Wed, 16 Mar 2022 01:59:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgJ-0002E5-Mp for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: from [2607:f8b0:4864:20::1032] (port=55283 helo=mail-pj1-x1032.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgI-0006RV-7j for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:47 -0400 Received: by mail-pj1-x1032.google.com with SMTP id b8so1303028pjb.4 for ; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=V/Gmw8eJiU25V1Kr8BDZ/HZMTGWTucmN9cND5W8m6wfSb5bAG45ovLjgxutXIq88Yt ZZQTvGqKThBIU6JR3NK6YNJ3hOrOqrUBGHGGmPTL7hItoDfwe5u4mnfMeL6MkLDVzQr2 byCCwaK2ImElaf7hZoTkp4KXnNB2eJscdPSJPmBwK6qgqtUhHWhU7EYKu7dKIqag+pv9 kZftYbA6U38yJcl8mhkdqF6ofp1vS+4SMwyciUMlbzsKDqddsXOSl0Q4oQA2ElmtRcbA lOhkCARIWXOfpFYCyuPB+MMinESrAQl15tUiXujfZVhchlSPu64Eo0jnnI/rRRQ4F71V VSPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uzx/rQUMOE81+2YuxRoc7gBccURuvdO8lUHsdT2k1Vo=; b=eBUS91oPPCvDN12uJMrb+tkNhXdlG3m/v2xb+UUhcotdiOzuVbdE9nBnkDO+aV8RsP rmoEeEn9rYCJJVjqqjVcfL6Zmb47B04HiPgnI5JOzleOBFI4Gyl/NfRF6qw1QtmPm5u5 1p3WivnqFkhTY+tijnAre2iLHz3Zzubpo5NXSGdRs/wzPBHRv4LoHb7CTxM22LNOfPbC SBdgRgmw909V8WfPsowyb3KP+nlJAclXuK9UVRmXQ40itpvFcWV3ENreMOwtp08HLj4n /+u+vVrWYZFCsgDrknSPHkZq7eSXd3m31AiNlQswvLgTriC8iAiNcJrq3DlshhvbuL92 MIKQ== X-Gm-Message-State: AOAM533MO0H51Tgb8Y9rQ+3J0krAacHy3JiewZyKdAxe9woI4ZmCGpyP 5soCx1pK7pzrwUPiz9GcLr1qlRE9SUi3ug== X-Received: by 2002:a17:90b:4d0f:b0:1bf:6a2:5637 with SMTP id mw15-20020a17090b4d0f00b001bf06a25637mr8588430pjb.106.1647410325025; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 03/17] target/m68k: Fix coding style in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:26 -0700 Message-Id: <20220316055840.727571-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1032 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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é 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; 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 = sr; env->aregs[7] = sp; - cpu_m68k_set_sr(env, sr &= ~SR_M); + cpu_m68k_set_sr(env, sr & ~SR_M); sp = env->aregs[7]; if (!m68k_feature(env, M68K_FEATURE_UNALIGNED_DATA)) { sp &= ~1; From patchwork Wed Mar 16 05:58:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551825 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp3125mag; Tue, 15 Mar 2022 23:03:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQgZHBU/Z6QzvVN8AeCcRTF/cPt5Mbw0n8Sj9wdRB7wfUHwHYwiKAtu+BMujz/kmoOn/uT X-Received: by 2002:a37:a4a:0:b0:67d:fd9e:c766 with SMTP id 71-20020a370a4a000000b0067dfd9ec766mr5239854qkk.455.1647410579880; Tue, 15 Mar 2022 23:02:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410579; cv=none; d=google.com; s=arc-20160816; b=cICAxPhentivSCh+zw7yroI7dmMmLstJbDTDLAm00ivzJdhV8/iVz12O+sluTenkVQ KFCtQOVuZpGbgFAdGHJVVXIqw/4LWSdyLzY622wrj+kiiw4BI1d+J+VxqOEb1uwpeRKw Md8uIMZRKMBJ/h/LKZ2+dBPWA7dbCNJ6pvZCNufoFdA1SxgZwN79ZyEwv959t0KatG+x PXd2l9+fy4HVC97LZP6TzVPhnFwZ/MulEjYjmhh5rrwNPJHep81Qvl6+BbFS06X8txVR sKDxVNrif1HQ2KCfR+mdZMXCQsz08kG8KpIMAXIOR5Vz4DuJNhh4H9lFLwCcHFoDSjIy I14A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=zpMT8QTEguTG52Cs1VjkfWLVAz2aDx1tAxxWbP4/C+aAZTID2tCteO3/6o1GPaV00k U1/Yv4FmxDJLg3DiNFbJWUB0HFcnX479My/VDB1AfqjDe9uPHWv30Olm7p9IcGfR2Mbg oZ3aqdMXy8RLA53c8kdmjhI3kluVX6JUyCqKF44bToOdvH48JzIKUi0thdo++/A7FWA/ kn31/m256btrohTzr6iL7ShxfM+I110eSQSGLu+8vMK24ESYCO9W4KAjtHuhBhXNDjAt 7oBpS97ZOy13qBrCnityBN7/9P/7sf2oJXHWI+mlHgypQtIv0jeJ4381M1dlbMC9cuCL 12Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y4G0I8CN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id z11-20020ac87f8b000000b002e1a65868e9si219281qtj.559.2022.03.15.23.02.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:02:59 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y4G0I8CN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:56890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMkN-00089s-Eb for patch@linaro.org; Wed, 16 Mar 2022 02:02:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgK-0002FB-Nb for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:48 -0400 Received: from [2607:f8b0:4864:20::635] (port=39567 helo=mail-pl1-x635.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgJ-0006Rj-74 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:48 -0400 Received: by mail-pl1-x635.google.com with SMTP id d18so965355plr.6 for ; Tue, 15 Mar 2022 22:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=y4G0I8CNjJRzy97+08JKSQjT9njWensRXfXMXQK3neAoKgK/Od0bgXwwBLTa1wPW0E 4afwwuLhchzEgI4VGTngeKwP9H0uWwm3HUeLeeLLuQPyjtX7NtECpp/mTUYGR0SyA7MZ 3HyO1mbPAUgCg7AHNrYr+EuvF4cm2ieX39cOTwN1cmM9wY49Ytd0jPJNecEROabOpl60 nDsU8k3dWGyQNTzPmvUyBhuXBkOKpixy2+tbCFiBoHKYCbak3B5TAEApdERZ1B01iwmd soFIbV8rmIoPbyvDvFyljvKbLHmqIzFNpiBB6WPqVwhWTrtr7m2JSWskPTQzXIF5r3G9 BlMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3ehpxZ29mtpv/DF1Yig/a5VXZ+HirfhJWuKpWkD2o0Q=; b=Y1bQkkTSM/exmU5Ol/VDWncktCICuBIraorYZZwOOcyN7msVdq02DRMyuUOQ9GIeCH jhJ/CxX+vkyVkvyFY47NAko9mHzEho1dH1wSREN8dsInhJ8zUP/btYCrSMzCESAjGwzG t10tnAKbKfosZB16rM5Qy8rDQP842EXbtgLAZ71kjNcdtRE4nOC7qJKpi19wO6vPhBhs o9UoZx+ZsLJO1R4LURVOqroB/PLWgQ7jVmEUS9pi2Wvnu6p9WOvBt17/SStn7EG9usmT ZyEhXEZdbcnMsIyjZepk8TWvRSn5pwh2KOpxTELnnCN6E04HX0ORW7eE8ksXXpgoC6vF KxUw== X-Gm-Message-State: AOAM531N3r06gRnGSDIgQs3AXJ/PcxapKWyQOtNH3niOg3sLm3kYh4/e Xm+6HWKxTaCQZJRjl2cKz2FLzRC5x3sNFQ== X-Received: by 2002:a17:90b:68c:b0:1c6:308d:81b3 with SMTP id m12-20020a17090b068c00b001c6308d81b3mr8528104pjz.65.1647410325975; Tue, 15 Mar 2022 22:58:45 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 04/17] linux-user/m68k: Handle EXCP_TRAP1 through EXCP_TRAP15 Date: Tue, 15 Mar 2022 22:58:27 -0700 Message-Id: <20220316055840.727571-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::635 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" These are raised by guest instructions, and should not fall through into the default abort case. Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index a152567624..ac2555f47b 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -45,6 +45,7 @@ void cpu_loop(CPUM68KState *env) case EXCP_ILLEGAL: case EXCP_LINEA: case EXCP_LINEF: + case EXCP_TRAP0 + 1 ... EXCP_TRAP0 + 14: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: @@ -77,6 +78,7 @@ void cpu_loop(CPUM68KState *env) /* just indicate that signals should be handled asap */ break; case EXCP_DEBUG: + case EXCP_TRAP15: force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->pc); break; case EXCP_ATOMIC: From patchwork Wed Mar 16 05:58:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551823 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp3109mag; Tue, 15 Mar 2022 23:02:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfIJyBeS0Yrp6HhOQUA7MT8YJ2mJKKuEQ/I9pV0xjlyQMEBP1cSvXfbVtoETC/EPv0/IJK X-Received: by 2002:ac8:5a83:0:b0:2e1:bbda:3b17 with SMTP id c3-20020ac85a83000000b002e1bbda3b17mr18602538qtc.236.1647410578742; Tue, 15 Mar 2022 23:02:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410578; cv=none; d=google.com; s=arc-20160816; b=eYj0h94X5FBWYnhSe5mzoeDnIQnbK6MHRqkoX452AYzvD6pWc01UAYfoBlbNYIUnZ3 dWJpRcrunlUcvB45zHbPjy/kmOGHGpAvxy3UjYXg2y+czPKC70ERgaVKra6GgJTAcwX3 EYteEzPajl4EkM3b7N2h/f6pqK4ESORPbCsvLB7vGcSNTrJpUFDJoBB1HpuhAl7CuoDj flJsn6Ks3rdwEsUPii0Z4hlKozmV30E+r/QDjA3//3ygSlmt1/9ryA+MER29stxlVNd1 QLsHwjE4A8Q/53cyFlLeODuRs1+rHENdC9I0K85KUuxj6kqB6imIbN5R90xrX4WR+xKk pejA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=KOH3zw39twnvh712BHe31XE4laRaGsvnMnljmfW2PuwFZYd1Kdj8XW8h9N+TEvuzfI 8ZRboDwLQNseonW3C6gqhXDHOQnTBG9B2VIg/tYvqmoRbwPK148wnUF3XL3pk2luG9kK 2n2w7Mf8Q+YWOXw9bJJVh4UNmMEaFE34i3RbBJojr7/4apQfrOPKWu/0ChkJaqpnLCHe cgAedgAIdJCn1bqiCw5PY5DxjCziU5EpGjvhdVCs5YpDrFJcn3bJp1D9vuXrZiBAccGT dL8MtgMMVMWjUmY5YT4i8k++5asdmqcJ67ME9AI7cScykd+PPjN6ZcM6IpfVHKL0Uo5l N8NQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vZnFHq+I; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id fq11-20020a056214258b00b0043d58dd8375si275827qvb.426.2022.03.15.23.02.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:02:58 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vZnFHq+I; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:56682 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMkM-00081z-9c for patch@linaro.org; Wed, 16 Mar 2022 02:02:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58740) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgL-0002GC-Sa for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:50 -0400 Received: from [2607:f8b0:4864:20::636] (port=39568 helo=mail-pl1-x636.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgK-0006Rz-B5 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:49 -0400 Received: by mail-pl1-x636.google.com with SMTP id d18so965382plr.6 for ; Tue, 15 Mar 2022 22:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=vZnFHq+IIbqItDylP6+lvjrFO+2baeqXweVOScytmDv16FOkZSfLv7bHxKMlP+r4BJ TrYRDpHqsMN3l66PP6ChU+EcB8Fv1+3vI9mcXCnyvlc+p4QOIYmZ72QXpbIWlReDMAf/ sqXG5hUbNtoIyCYUSHFw0oxTp2p5iHlSXjL6VNFZt+gpDN44HxMsQrM3DBEGVx3BjUf9 FZwCNZdNtJ1tXNArHxmS0HX4SLKB84Vp10Vpv7dVfLsvACLs480YnK0+RjJoL9bOVG7z trRHiAXNtWzg/4JGEGKZlzrgRUJDKem+G0UOZhbyRSxzjMXTpFhyUIUTWBv4JFXB+2wQ 451g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=46ufPNCBtrD2443ESlCBM/IFeVZu2U1LqCPdzBzWRlc=; b=Z4HTxxNNM/64+NvksgCBrWp8MxkN/Zj3ElQJqikn+uGJ6THvg7Ke6seW2aCdMPB+Bc SQvLF+xqoll+YFMzapBDmihsezyAO9uG/TpeSVQFO3oKKMgfjvKqGVMmUiaUCzzkzXJi Vl23s4MxP/RUkHdkktQM3AU8lRAe9mAAWJ1NIHczILxSG5EPYsvGbkWBO03GBSPkXLsT jC072hDniaHZG6FWpPsw30t0nldQabE1EEVUsy252CNrtMXGhwwm5axjmV8Ly9OGMdC6 uhteR8s9dFOMhmQfU8onKrIkSFVR+ne3/PayBHwtgsW6ofDlUeklPlIer9xJ0DuNgKmK nBaQ== X-Gm-Message-State: AOAM530jCVPsyNxycx9Zjb74OMIhNb/Ux6LihAaZbSdiXf2lgxpbwZEI bZBgVhvqAeePUBfCT3Up9mBElEJht6BZDw== X-Received: by 2002:a17:902:7296:b0:151:62b1:e2b0 with SMTP id d22-20020a170902729600b0015162b1e2b0mr31721514pll.165.1647410326781; Tue, 15 Mar 2022 22:58:46 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 05/17] target/m68k: Remove retaddr in m68k_interrupt_all Date: Tue, 15 Mar 2022 22:58:28 -0700 Message-Id: <20220316055840.727571-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::636 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The only value this variable holds is now env->pc. Reviewed-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daudé 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 = env_cpu(env); uint32_t sp; - uint32_t retaddr; uint32_t vector; uint16_t sr, oldsr; - retaddr = env->pc; - if (!is_hw) { switch (cs->exception_index) { case EXCP_RTE: @@ -385,7 +382,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) sp -= 4; cpu_stl_mmuidx_ra(env, sp, env->mmu.ar, MMU_KERNEL_IDX, 0); - do_stack_frame(env, &sp, 7, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 7, oldsr, 0, env->pc); env->mmu.fault = false; if (qemu_loglevel_mask(CPU_LOG_INT)) { qemu_log(" " @@ -395,7 +392,7 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) break; case EXCP_ADDRESS: - do_stack_frame(env, &sp, 2, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; 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; 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 = sr; env->aregs[7] = 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 &= ~1; } - do_stack_frame(env, &sp, 1, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 1, oldsr, 0, env->pc); break; } /* fall through */ default: - do_stack_frame(env, &sp, 0, oldsr, 0, retaddr); + do_stack_frame(env, &sp, 0, oldsr, 0, env->pc); break; } From patchwork Wed Mar 16 05:58:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551828 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp4663mag; Tue, 15 Mar 2022 23:06:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxzw2BtcUlaQdjr5It7G6E/QPrx0o/9/J03VwenxdDnKs5xVVKKshesR3684yEHVTBIZXhN X-Received: by 2002:a05:620a:200f:b0:67b:3fb7:8784 with SMTP id c15-20020a05620a200f00b0067b3fb78784mr19413776qka.336.1647410778776; Tue, 15 Mar 2022 23:06:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410778; cv=none; d=google.com; s=arc-20160816; b=k5r+J6dRjHqp2hoCPaUudzaNnMmiS8stt1CAiZEzFBjPj5Z4Gmm+RLSEdqrb0c5DNv NkKrbMTn/KBcHbAOpihHoZLVa7gvHGYaI/HfCiBwp3PfuxriJYDk7NwRV9FuIcnbnQjP S9xE/ZVOzDaLwQyr7eCP0ovAvbA1rbaSL40QpsuKrsVRp+7SzwzgjhHZaQ0ul6eyAnoz He0zFI5xmcr6UOMMWh0hn4PM0h2SSMqQoP0bYo/c48I4Km04wx4LZhAuDdOjVJ33qXZB Gobs6aKgZWUTgfSVvupd6PCeFmDvoNYIOBY31RVYRgNg+RXTSS2ifJtxLiKGMqaYdctq bfTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=UDya7ulwY+ciqFzYT6gmoQ40dQRLklOaoP/qVJKMZJy/Blv2QHPwHo1wNP8R7BK3sS i+Iad7sQDIfSuPfhrPpJZxodnvIAVtRJ6yXp49WQHhvjP+s9SgK5WrzqS955wJUY6WCp CeRPHGJhcI/FjqEXB9THfavhuFX2jTaAqdT4o2iGLxDBv2dnSN5aJtxWcxerYC1l8euU gT+M5p4vVPq5niwXe8zKG05+Cw4HrG3GnpHV+cITJVfdd8lASyL0TW4HpQdZEmnAvioV Ebx51wzg7tXcyC7oA45WHsqvToz+EZZwdppgtTieqwd4mW4n4QU5gRCm6JQCp9qgRN4R QDTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AqZdt7C1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id p1-20020a05622a00c100b002e1e40d447esi227434qtw.330.2022.03.15.23.06.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:06:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AqZdt7C1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37124 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMna-0005V6-A2 for patch@linaro.org; Wed, 16 Mar 2022 02:06:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0002JC-Be for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:51 -0400 Received: from [2607:f8b0:4864:20::634] (port=40468 helo=mail-pl1-x634.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgL-0006SE-81 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:51 -0400 Received: by mail-pl1-x634.google.com with SMTP id h5so961552plf.7 for ; Tue, 15 Mar 2022 22:58:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=AqZdt7C1T65NGGgfpRKfHzRGKYHzaWtxw1518pH1cB3ihc+EGCOj3QSTIetsYdNXaU iwTXSD7RaAkZ279OQBGtcJHsjjWOnH6L7n0nMjD4Buvg7NMmDlHRJhcdsr1BwvT3NCrN YSUsBKlKkg2Nq5mQWamfywAhLiSuxAbAzi3R8pWAu+cpvphotbrbQvavWeEEyvNtsvtS imxNy/wF+Y2FGQpeTAYIeTd/FCl6hhRU7Rfl5nwVIwlnroXB3P7RS89B9kXL0QZ+QJx/ VQ5k61sv6+msD3uHq63AkYEfd182mNZsCPDXcBLfnS7Vn/gcSWHf4SYESmeLXnaV25At hB9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DThk5ngpwpGvt1GxCRNuf2gEP+rgC2MmpmILNWrK4ZI=; b=f/xmNEBT0rVIVdTyCMHCKNcAniANCicPbQnj1b6KxmwZ+4l5sCpTF5C4Xotu5Jv4N/ TWHeNBkS5on24bkcMWCAQetXQfPYah43XOt8OLQxM6ms8CFGS8x2BHMpP/f+zFxKMlY7 YslIUorQwABEbDZ1bqUyKq9JseWUh4TzCwEIOwE4ZJqUX8BGSvK3jy1Yvx2IevZg9NyU iJMY/zZ3XU55X9GJJZ3Cn3418W+xOHaaKnxFAsribOslH4WAY/RS2l8WFyHIBK1A93Ic VSaTmO0T/LBymrtkEP0/+xoTQbJ0FKl/nKCSG+2VaLdwHs/+XnvSfTaY+uPZ8Uwz74GS nxdA== X-Gm-Message-State: AOAM530aBwFKk2bUyC7rQ9elOb0HgQ9KlCnZGpZXYicBAukCgZYOJgln 2Nfb8x1JCj8cv04nYg7chwyUFFsFBi4ikw== X-Received: by 2002:a17:903:240a:b0:14e:dad4:5ce4 with SMTP id e10-20020a170903240a00b0014edad45ce4mr32200387plo.125.1647410327795; Tue, 15 Mar 2022 22:58:47 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 06/17] target/m68k: Fix address argument for EXCP_CHK Date: Tue, 15 Mar 2022 22:58:29 -0700 Message-Id: <20220316055840.727571-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::634 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), CHK, CHK2 (and others) are supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. Create a raise_exception_format2 function to centralize recording of the trapping pc in mmu.ar, plus advancing to the next insn. Update m68k_interrupt_all to pass mmu.ar to do_stack_frame. Update cpu_loop to pass mmu.ar to siginfo.si_addr, as the kernel does in trap_c(). Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- target/m68k/cpu.h | 6 +++++ linux-user/m68k/cpu_loop.c | 2 +- target/m68k/op_helper.c | 54 ++++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 872e8ce637..5469d5dace 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -121,6 +121,12 @@ typedef struct CPUArchState { /* MMU status. */ struct { + /* + * Holds the "address" value in between raising an exception + * and creation of the exception stack frame. + * Used for both Format 7 exceptions (Access, i.e. mmu) + * and Format 2 exceptions (chk, div0, trapcc, etc). + */ uint32_t ar; uint32_t ssw; /* 68040 */ diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index ac2555f47b..e6b06841aa 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -49,7 +49,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 777869790b..0411e2208a 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,16 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) 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; + 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); } +static void QEMU_NORETURN +raise_exception_format2(CPUM68KState *env, int tt, int ilen, uintptr_t raddr) +{ + CPUState *cs = env_cpu(env); + + cs->exception_index = 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 = 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 = env->pc; + env->pc += ilen; + + cpu_loop_exit(cs); +} + void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) { uint32_t num = env->dregs[destr]; @@ -1065,18 +1091,7 @@ void HELPER(chk)(CPUM68KState *env, int32_t val, int32_t ub) env->cc_c = 0 <= ub ? val < 0 || val > ub : val > ub && val < 0; if (val < 0 || val > ub) { - CPUState *cs = 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 = CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc += 2; - - cs->exception_index = EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 2, GETPC()); } } @@ -1097,17 +1112,6 @@ void HELPER(chk2)(CPUM68KState *env, int32_t val, int32_t lb, int32_t ub) env->cc_c = lb <= ub ? val < lb || val > ub : val > ub && val < lb; if (env->cc_c) { - CPUState *cs = 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 = CC_OP_FLAGS; - /* Adjust PC to end of the insn. */ - env->pc += 4; - - cs->exception_index = EXCP_CHK; - cpu_loop_exit(cs); + raise_exception_format2(env, EXCP_CHK, 4, GETPC()); } } From patchwork Wed Mar 16 05:58:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551827 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp4637mag; Tue, 15 Mar 2022 23:06:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/n062Z8yWgh4d3N8Q4Mwpp99AXmGBIn5ijV/6bLhGXIvcU8kHx7lZ2HvNEaY6HpsiN2Dg X-Received: by 2002:a05:622a:10:b0:2e1:c3b3:4317 with SMTP id x16-20020a05622a001000b002e1c3b34317mr17360648qtw.39.1647410776543; Tue, 15 Mar 2022 23:06:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410776; cv=none; d=google.com; s=arc-20160816; b=vV9uBR53U95XTSM883eEzrSn6BnmmAZiLKAVnshsNXLRDPZBI6TiZLiN/IB5+LQnHP FGABjzQIVcM0Nbxujkj+jYuEt722K0QblxfDhwjakrywvUX5Yv3ZyVigG97Q/qPcqFUk aPTxGgT6yEB1YrBXLax83Lsylt1jyLy503DwzU3kyjO7pxbIINMA9Gg/BSr62Tf026lx GUDuP/4ndYmvtnt3rqNnq6HW2MHyFysq29dI5ldVsPiqoa+KdHOrqcj63IjeV7Y1ZzHy 1LCLcoKMoKhzQ6UNFyqHGpmE/psTFnoJKBaK+FToB80FoYNukskXPuU/KTTtF603xINy jV7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=iJ9dQ/Z2APY/9EaDIjWAOEdr8JZk3cDCdGhxdG20Xh659yAhlfsuX0rQroW+LpQAtp cIyL1kEENph0qYkAmB8XFyDDveBGXJwhboSs5GZ1DBsPAU/i12MXqBdE2sfTaq5rTbsl 6FT039Cqdr3jcTtPzeKgPGdMUd63omc1MIdZ5P1a3qx791XlMFAIf/f7TgPpQPEE1Jys ml3GYNa3QNuxwR2VYdMWkXWm7uG0kqV/IZKMuBb2gdS8F2C2wHZfYTjiHfTQmrNiw1Sf ImWmxIKTfhYzeSQG8bU3Lh+b8kQXiiLPmug97AeXIT0Sg1ClKOZJDcEHffiDo42u8Jac djYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NK9cHmOn; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d18-20020a05622a15d200b002e1cde11661si217970qty.667.2022.03.15.23.06.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:06:16 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NK9cHmOn; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:36988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMnX-0005PR-P0 for patch@linaro.org; Wed, 16 Mar 2022 02:06:15 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0002N8-KJ for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: from [2607:f8b0:4864:20::62c] (port=45679 helo=mail-pl1-x62c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgM-0006SP-AE for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: by mail-pl1-x62c.google.com with SMTP id q13so940508plk.12 for ; Tue, 15 Mar 2022 22:58:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=NK9cHmOneaCIefuCA89+m4bmxBtIqnGNYKfvET4Vbfuv84gabAxXmaLD50hL2KM2YV 9zLTSc9UKhHz1j6AcinMElz5cAY/aAxyW6fFjO/TL47PPNW5SJAAKPO1r9wcpPpg1xWt ouNrg8hNy8qzh3qmokyyMrDJBDgRejT3pjVf1gbeHNrSxYhUdrJfIrcbbIC8tVDxQQuY 5y0U+wdD06QTvbtWX0/jP3gC4uJwOMriV81svEEsn4EMurc32oXbPRmf9v1hVfp87T6v VRD1Ybt3TjQTSiPyFvoscvtPS2+OwAuU7IqAzATIdO8KNA5l8AkTkTthMlD9l4535cEn CwVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b+Ui1nFEQRWCS519gjSUkcR7xJHKhZOfVglJBSDXN2c=; b=C2k2cEX3LqdcQU33nd1YhsKmBUL5g7JIVCiK1ELK+KzqjqlNbGY96jjEpglReZtAzE QlzSlxU9X+uvTG2WWOJRyb3DnPAGki0mvujMknoOaKPwqJ9xpo7gqOInNrwtL0Bn7NeE PKQURQ7Fvy7AWDWKNGVBTywW6lq4i6mxbuAvQBt561ESJnbyS78RmAe82dHBJ+1kOVXX ZXdg5Ytg9bRqJy2IIeZx+QZgxQE/mDsJfjcwBI5J9bEOeYE4dBbHWh9rYGEs05KVF5jq cZh1wDcmaVYkQrn15Aw0m4UNlZ/DzWaeAbHxSH9Ei59SRjOgAFWMaA/izM/g8dQdO67F 35cg== X-Gm-Message-State: AOAM531AxqG5+HXWe3FrxQwsfDA7Ds/bELWtYLB74R2g1b2DuQbialVm Yaecwgv+ePDQ5BpPNW6FY4na+ivSUorD9g== X-Received: by 2002:a17:902:e891:b0:152:c3a:a601 with SMTP id w17-20020a170902e89100b001520c3aa601mr31439983plg.170.1647410328853; Tue, 15 Mar 2022 22:58:48 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 07/17] target/m68k: Fix pc, c flag, and address argument for EXCP_DIV0 Date: Tue, 15 Mar 2022 22:58:30 -0700 Message-Id: <20220316055840.727571-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62c (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), Zero Div (and others) is supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. While the N, Z and V flags are documented to be undefine on DIV0, the C flag is documented as always cleared. Update helper_div* to take the instruction length as an argument and use raise_exception_format2. Hoist the reset of the C flag above the division by zero check. Update m68k_interrupt_all to pass mmu.ar to do_stack_frame. Update cpu_loop to pass mmu.ar to siginfo.si_addr, as the kernel does in trap_c(). Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson --- target/m68k/helper.h | 12 +++++----- linux-user/m68k/cpu_loop.c | 2 +- target/m68k/op_helper.c | 48 +++++++++++++++++++++++--------------- target/m68k/translate.c | 33 +++++++++++++------------- 4 files changed, 52 insertions(+), 43 deletions(-) diff --git a/target/m68k/helper.h b/target/m68k/helper.h index 0a6b4146f6..f016c4c1c2 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -1,12 +1,12 @@ DEF_HELPER_1(bitrev, i32, i32) DEF_HELPER_1(ff1, i32, i32) DEF_HELPER_FLAGS_2(sats, TCG_CALL_NO_RWG_SE, i32, i32, i32) -DEF_HELPER_3(divuw, void, env, int, i32) -DEF_HELPER_3(divsw, void, env, int, s32) -DEF_HELPER_4(divul, void, env, int, int, i32) -DEF_HELPER_4(divsl, void, env, int, int, s32) -DEF_HELPER_4(divull, void, env, int, int, i32) -DEF_HELPER_4(divsll, void, env, int, int, s32) +DEF_HELPER_4(divuw, void, env, int, i32, int) +DEF_HELPER_4(divsw, void, env, int, s32, int) +DEF_HELPER_5(divul, void, env, int, int, i32, int) +DEF_HELPER_5(divsl, void, env, int, int, s32, int) +DEF_HELPER_5(divull, void, env, int, int, i32, int) +DEF_HELPER_5(divsll, void, env, int, int, s32, int) DEF_HELPER_2(set_sr, void, env, i32) DEF_HELPER_3(cf_movec_to, void, env, i32, i32) DEF_HELPER_3(m68k_movec_to, void, env, i32, i32) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index e6b06841aa..bb7ec09fb3 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -52,7 +52,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: - force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->pc); + force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; case EXCP_TRAP0: { diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 0411e2208a..568292e037 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -396,7 +396,6 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) break; 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 is_hw) break; case EXCP_CHK: + case EXCP_DIV0: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; @@ -574,18 +574,19 @@ raise_exception_format2(CPUM68KState *env, int tt, int ilen, uintptr_t raddr) cpu_loop_exit(cs); } -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 = env->dregs[destr]; uint32_t quot, rem; + env->cc_c = 0; /* always cleared, even if div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; /* always cleared, even if overflow */ if (quot > 0xffff) { env->cc_v = -1; /* @@ -601,18 +602,19 @@ void HELPER(divuw)(CPUM68KState *env, int destr, uint32_t den) env->cc_v = 0; } -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 = env->dregs[destr]; uint32_t quot, rem; + env->cc_c = 0; /* always cleared, even if overflow/div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; /* always cleared, even if overflow */ if (quot != (int16_t)quot) { env->cc_v = -1; /* nothing else is modified */ @@ -629,18 +631,20 @@ void HELPER(divsw)(CPUM68KState *env, int destr, int32_t den) env->cc_v = 0; } -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 = env->dregs[numr]; uint32_t quot, rem; + env->cc_c = 0; /* always cleared, even if div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; env->cc_z = quot; env->cc_n = quot; env->cc_v = 0; @@ -657,18 +661,20 @@ void HELPER(divul)(CPUM68KState *env, int numr, int regr, uint32_t den) } } -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 = env->dregs[numr]; int32_t quot, rem; + env->cc_c = 0; /* always cleared, even if overflow/div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; env->cc_z = quot; env->cc_n = quot; env->cc_v = 0; @@ -685,19 +691,21 @@ void HELPER(divsl)(CPUM68KState *env, int numr, int regr, int32_t den) } } -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 = deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); uint64_t quot; uint32_t rem; + env->cc_c = 0; /* always cleared, even if overflow/div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; /* always cleared, even if overflow */ if (quot > 0xffffffffULL) { env->cc_v = -1; /* @@ -720,19 +728,21 @@ void HELPER(divull)(CPUM68KState *env, int numr, int regr, uint32_t den) env->dregs[numr] = quot; } -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 = deposit64(env->dregs[numr], 32, 32, env->dregs[regr]); int64_t quot; int32_t rem; + env->cc_c = 0; /* always cleared, even if overflow/div0 */ + if (den == 0) { - raise_exception_ra(env, EXCP_DIV0, GETPC()); + raise_exception_format2(env, EXCP_DIV0, ilen, GETPC()); } quot = num / den; rem = num % den; - env->cc_c = 0; /* always cleared, even if overflow */ if (quot != (int32_t)quot) { env->cc_v = -1; /* diff --git a/target/m68k/translate.c b/target/m68k/translate.c index af3febdd48..ae9f5a5222 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1601,6 +1601,7 @@ DISAS_INSN(divw) int sign; TCGv src; TCGv destr; + TCGv ilen; /* divX.w ,Dn 32/16 -> 16r:16q */ @@ -1609,20 +1610,20 @@ DISAS_INSN(divw) /* dest.l / src.w */ SRC_EA(env, src, OS_WORD, sign, NULL); - destr = tcg_const_i32(REG(insn, 9)); + destr = tcg_constant_i32(REG(insn, 9)); + ilen = 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); set_cc_op(s, CC_OP_FLAGS); } DISAS_INSN(divl) { - TCGv num, reg, den; + TCGv num, reg, den, ilen; int sign; uint16_t ext; @@ -1639,15 +1640,14 @@ DISAS_INSN(divl) /* divX.l , Dr:Dq 64/32 -> 32r:32q */ SRC_EA(env, den, OS_LONG, 0, NULL); - num = tcg_const_i32(REG(ext, 12)); - reg = tcg_const_i32(REG(ext, 0)); + num = tcg_constant_i32(REG(ext, 12)); + reg = tcg_constant_i32(REG(ext, 0)); + ilen = 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 */ SRC_EA(env, den, OS_LONG, 0, NULL); - num = tcg_const_i32(REG(ext, 12)); - reg = tcg_const_i32(REG(ext, 0)); + num = tcg_constant_i32(REG(ext, 12)); + reg = tcg_constant_i32(REG(ext, 0)); + ilen = 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); set_cc_op(s, CC_OP_FLAGS); } From patchwork Wed Mar 16 05:58:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551829 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp4766mag; Tue, 15 Mar 2022 23:06:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcxF1dDNqv/auVNnjlqj2LVNpeJmhSprb8O2Qm7tyh92UvpKW+Gdiwek5iZfgghTwTQyWL X-Received: by 2002:a05:622a:8a:b0:2e1:cc29:d757 with SMTP id o10-20020a05622a008a00b002e1cc29d757mr13806439qtw.81.1647410789541; Tue, 15 Mar 2022 23:06:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410789; cv=none; d=google.com; s=arc-20160816; b=Bw73ItTNR/itHkvbhqwErAP9y7AOncZynp80EXjnmLEl/aVB7RiglSBjmA0y+fTXAY 7oMNS7aV0BUcnY1LFhnDeq2sN7NbyzNE7ix9EXIi7IN9+WrORdTaCkMgogLpWt44ebk9 9lV/sdULP2midq0zJZ3bsHj6m8IEYkBfxpBnOjJeHZl6orefcTDCKu8jIPHjzuiM8VjD jKouf25ceM5qFg+Rdsr2P3o9OZZWJIGUofIwz+gGNM5zSk7AI5sytH+QQVrX/GnegsfT hluN4+Rivi7hP06S/f8JRSwLm8xsOXRWlD0upxh+7t0QHboEAs8ZebhAhogb91kewPYj g2HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=K2uqGKbcHtXtlNfpwNoyWZnPbC0ou5peyAXbBFOpy7VPi6iF33RjeXrw1hkX4o8I6t FqYxFZPSj7Kmn1OZphAWJpZhxI8xf2Hr1oXaP4cNtVmdcmbbVD4iTcsJMTfzSO7S5xga sGqJlVJ7hRjFzW66x8/aI1aR6pA8wMjonlWMndGUxfmqTHQJy/68G9MCOA+/RrZaJvC5 D45tqZsX+zgt2RvYtPYrHnTpF13Yhjzqlq/fHMWd1XoCv4RP4NqiKZnEr9PbFZJCr1nY 7WFiHHR6aFPC9e/EvRPTmwTWyILREdzqRcrwu1PHjjz2WfboDPG0Df8owwkke3oDtI9G AzIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DkoRqTZ1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id js1-20020a0562142aa100b00440cdb14dcasi277889qvb.569.2022.03.15.23.06.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:06:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DkoRqTZ1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37212 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMnl-0005Yx-39 for patch@linaro.org; Wed, 16 Mar 2022 02:06:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0002Nz-TC for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: from [2607:f8b0:4864:20::102c] (port=50912 helo=mail-pj1-x102c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0006SZ-1d for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:52 -0400 Received: by mail-pj1-x102c.google.com with SMTP id m22so1358915pja.0 for ; Tue, 15 Mar 2022 22:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=DkoRqTZ18L/6SYJwnUbjpNZO86TGTlfaE8HSAzbIPHr1guWvrpjVymKjetEHQwLFwC FuO2TK5lFPq5g0svSq5XOgmDBolA9uL1erTd6kXCrAI9KfhgGVuKrEDNHV6wPeGupR69 J2wuvRFYdAEsl2jUGQ/GD8p8poK5t9rITOuEv1kTeH6jRkuA1FzI5rhUsVb+iNotCbEE aopBU4SlhZeLVV3i1/I3tF5N4qkN7mW1ARuCqZWkkypA4GRt/rHAuvLvMJMoqNTEGPWW g8wAUCBI2oexe7GgRl6eE/ec8KISFwliQuaT+wWqE8PwJ/vtYJ2m01x1H5RUGnx6Ca6a Zf7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1h13UKbDPypwb9cnxJqx8cCdJ8LHRO45cgnV/TpINpM=; b=ejey+eMXJbXIxiTugt46bjNHpB6k+iGhkZ+eXQp2mkWa0kBMbDwFV8x8NVAoABiU76 62ve2FmcoQwR5iCNLqXwO4IfEvA7H+MHPm1xlrqjaEKtFcCy9byb6DyiH7nLwhx5OA7Y 4Zy7mEX4wsLXQIHgCcxF5di9ZRat/uvE3jIhsHQRWF3zJyXy7xcoDvOmpz9lpBMY1oI0 671/turvcszyjGwNVjHwj+U2Iv2EKJbpilovo2trpGafICfihysTgf6Hu5P47bIv+RZo jrMykm1BXOshqp3PqiHkty9GbSH7cApZEGZy4nCJMPVZQsoqdGL7aigXkgD2kAbMU2oZ ot8Q== X-Gm-Message-State: AOAM530k4EdKMRRl3VgRO0ArQJ8YYLY5NUFjRE/F36KiK/GTm/X/CTfp v9xJdsL06OWcj0QvsbEC+neEpXFwDeWENw== X-Received: by 2002:a17:903:40c7:b0:153:b0d:f8a0 with SMTP id t7-20020a17090340c700b001530b0df8a0mr31672847pld.156.1647410329692; Tue, 15 Mar 2022 22:58:49 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 08/17] target/m68k: Fix address argument for EXCP_TRACE Date: Tue, 15 Mar 2022 22:58:31 -0700 Message-Id: <20220316055840.727571-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102c (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" According to the M68040 Users Manual, section 8.4.3, Six word stack frame (format 2), Trace (and others) is supposed to record the next insn in PC and the address of the trapping instruction in ADDRESS. Create gen_raise_exception_format2 to record the trapping pc in env->mmu.ar. Update m68k_interrupt_all to pass the value to do_stack_frame. Update cpu_loop to handle EXCP_TRACE. Signed-off-by: Richard Henderson --- linux-user/m68k/cpu_loop.c | 3 +++ target/m68k/op_helper.c | 2 +- target/m68k/translate.c | 49 +++++++++++++++++++++++++------------- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index bb7ec09fb3..9b9aabccc6 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -54,6 +54,9 @@ void cpu_loop(CPUM68KState *env) case EXCP_DIV0: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTDIV, env->mmu.ar); break; + case EXCP_TRACE: + force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_TRACE, env->mmu.ar); + break; case EXCP_TRAP0: { abi_long ret; diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 568292e037..4140f65422 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -397,13 +397,13 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) 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; case EXCP_CHK: case EXCP_DIV0: + case EXCP_TRACE: do_stack_frame(env, &sp, 2, oldsr, env->mmu.ar, env->pc); break; diff --git a/target/m68k/translate.c b/target/m68k/translate.c index ae9f5a5222..0bfc1a8ddf 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -114,6 +114,7 @@ typedef struct DisasContext { DisasContextBase base; CPUM68KState *env; target_ulong pc; + target_ulong pc_prev; CCOp cc_op; /* Current CC operation */ int cc_op_synced; TCGv_i64 mactmp; @@ -298,6 +299,21 @@ static void gen_raise_exception(int nr) tcg_temp_free_i32(tmp); } +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 = 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) /* 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); } DISAS_INSN(undef_mac) @@ -3096,13 +3113,13 @@ DISAS_INSN(branch) /* Bcc */ TCGLabel *l1 = 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); } } @@ -5485,9 +5502,9 @@ DISAS_INSN(fbcc) l1 = 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); } DISAS_INSN(fscc) @@ -6158,6 +6175,8 @@ static void m68k_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cpu) dc->env = env; dc->pc = dc->base.pc_first; + /* This value will always be filled in properly before m68k_tr_tb_stop. */ + dc->pc_prev = 0xdeadbeef; dc->cc_op = CC_OP_DYNAMIC; dc->cc_op_synced = 1; dc->done_mac = 0; @@ -6191,6 +6210,7 @@ static void m68k_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) do_writebacks(dc); do_release(dc); + dc->pc_prev = dc->base.pc_next; dc->base.pc_next = dc->pc; if (dc->base.is_jmp == DISAS_NEXT) { @@ -6225,17 +6245,12 @@ static void m68k_tr_tb_stop(DisasContextBase *dcbase, 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); } From patchwork Wed Mar 16 05:58:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551819 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp1281mag; Tue, 15 Mar 2022 22:59:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx81Xvz0FA2dkiHchohuyMbYukOf8vq9w+2imoJ6nT7UXgaVeqBSLdh+tPUMCLzfnCo+cwW X-Received: by 2002:a81:3492:0:b0:2e5:ab19:1e75 with SMTP id b140-20020a813492000000b002e5ab191e75mr367831ywa.513.1647410376798; Tue, 15 Mar 2022 22:59:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410376; cv=none; d=google.com; s=arc-20160816; b=dnQaREP1T106ysIMhIPhmEDfjSqpSZIb2uBFZB7wnFiyoN3lqlHiQ9KipUQRFpAT0h qytUrZ1fvQgL5PD9+LlPe0tXvvX3LPqfIF4InTGm9T65AwEmF7AQwPtmmcyN2+pCTVxq VHXnJTbknnbitylvD0CXf6sxtAl2obhjCPNXWhlm+9fuK8eqznB03ciahygiXUEodfE+ GGVbWTfK35CV2KdtP4StiGEHNFZOCQDePjpAqJuZr69Z0VImXPVCXq26x1STJkjd+NoR mtNyYkSTi2K1AUQ8R8k9KZKmu2hDMS5ITWC0CT+tMdfgfy59Cjua1jX0AFJFkGJbFchE gIaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=ewcHovDujzzf/pFs89PIE4OPq/cAq6Jvut5dV+qE7/uPU0xGVJr/Oa6/q7krtU85x2 24mdgmsKx5ebS/k+F5Kfl0l+5HxRUwT8AL6fBoK9Y+NzxjaGa8cUPBOKnZDzSdrvb7O3 rSJhHrE+4d2nddngnQqZLsDCqqczArpdbRk/O4SXZOVwsxTx/LD1dPhNYfGgaYKfRy7+ nXlp/qVJalDfxYdj/WlbYX4LliA+otPeKQsf3JwiKZDsmrdny7K+3mSTMW7gleP9qBYc eb/ZtGu+KesMmwPgk+9u4leIZnLSD3j4LMBXt+MamMOQ+uD8U8GPF3dtxW6B0OUX5Vn5 8Hng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xeinbUzs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id l30-20020a25b31e000000b006289e832c4dsi1105932ybj.370.2022.03.15.22.59.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 22:59:36 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=xeinbUzs; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:48730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMh6-0002Yn-6t for patch@linaro.org; Wed, 16 Mar 2022 01:59:36 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58848) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgP-0002RI-RK for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:53 -0400 Received: from [2607:f8b0:4864:20::630] (port=44675 helo=mail-pl1-x630.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgN-0006Sf-PM for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:53 -0400 Received: by mail-pl1-x630.google.com with SMTP id q11so944582pln.11 for ; Tue, 15 Mar 2022 22:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=xeinbUzsIGya5s+DnNSUN6n3gnZy9sttP4EPAEYzMb3ZyJKp4C9js/7hV39SWyvQql HazjuZ+vOuSnDckRGgmV1pND3NyLdIY5ddo+dCizmTua+yn9f9CiUBOh6ZqOMv0Lm7Kv cOAgxm+zQ40KoFQ7R6bT73onj3BdcZwauNCQVVHfHPaio7uRje635qT4lMxHGe8B9u7y UFwrOX8z1rygBo8DT3uYsoMnccMxp+bd7JBVY1btQ4ttacjt9Hb6yFptXxViy/eBF5TV C9XFG83/EQI8TqeeCx3N5PwQJE4TXy6JdzVcOj5fsmxqoUhnVKHFoB6Smy09kQjJZ47A /6Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rvV4NjaUkhI/j5swYe2ptLLF6nfhOIUNvVwyxn8c7gs=; b=0kPUaks9gL1CttJTbENdteJAbhafnZcSv1CBA0ovZZWQ1L6T4t3tY0/IvxfwLaBQEd vg6jAnapCk6/IfyI0oQZx44pM30fqrcBwYfy0sJ7hPRVQyCMrnjSXjtilpc3F2z+0RrC n0tCOpWcKpG7Ti5bLXr1pg3hGMUiGcGM5FThvqKi8Cmw+pC0A+++zyZy6ENqr/sqUH+3 xakT9vVFM2mGup7d4+DIXJpQq2qJ3NYU8fd6cSJ8vjfgISjKThwfWbqJi4CZA97nMWTU JGZ+nf1uD4n49Ke9eaQ+VC2arFzbozqmhqGZOsqIhVJC+cfj9MiI1+9iXOdxTIfZtaMu isZw== X-Gm-Message-State: AOAM533ALwWZyDg/YD44+hMvltK6DhL4JnyujwHhLN5qO1OHsLfTmRCd /+10A5mYzKhsjGoJA5reFpa8m9TKLiRjtA== X-Received: by 2002:a17:902:f684:b0:151:93ab:3483 with SMTP id l4-20020a170902f68400b0015193ab3483mr31759845plg.4.1647410330533; Tue, 15 Mar 2022 22:58:50 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 09/17] target/m68k: Fix stack frame for EXCP_ILLEGAL Date: Tue, 15 Mar 2022 22:58:32 -0700 Message-Id: <20220316055840.727571-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::630 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" According to the M68040 Users Manual, section 8.4.3, Four word stack frame (format 0), includes Illegal Instruction. Use the correct frame format, which does not use the ADDR argument. Signed-off-by: Richard Henderson --- target/m68k/op_helper.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 4140f65422..6aebf9d737 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -391,11 +391,14 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) } break; + 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; - case EXCP_ILLEGAL: case EXCP_TRAPCC: /* FIXME: addr is not only env->pc */ do_stack_frame(env, &sp, 2, oldsr, env->pc, env->pc); From patchwork Wed Mar 16 05:58:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551831 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp6143mag; Tue, 15 Mar 2022 23:09:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJylzi9r7FWsHmGDyy0yVAkHnXDF8BuwzEr2SQOlX/BTtlvXDDSsLlmWIYEF/baDYItrx65P X-Received: by 2002:a0d:cbd6:0:b0:2e5:9bca:2363 with SMTP id n205-20020a0dcbd6000000b002e59bca2363mr4171955ywd.272.1647410959411; Tue, 15 Mar 2022 23:09:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410959; cv=none; d=google.com; s=arc-20160816; b=tvp6usf1LgFSrLnaDlmhgkwKSB2bkw0LcSByzvGPn/ENTIwJAzH3fBwZA/QoY8QdFA gU7l6vymbyJv5GqCTylfnfisRvGWmNlIyMmpqcmWdfZb28t+AnU8zrTln1VLWK3mpf6l qEGYKSOJ6XZnOIP1jJQ9Q109cZ20PDpwPhrXuOzkTYyEfHpTYUrVjUjoFVPitgGA16VW cHiaL4jNaHDzwRnR2Tt1DjmIuRSOjlYFvUFKBL98MYZ7QPLxbho/3NkVMkcxjYqG5hqw q71BpNitaXE2iZKt1px5Vd7rDo/XBE7//Fa+wW+xul6tdCLx8rXrQJYS9HDKoISCshGr HgBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=O90Y3KLvhsxX7cpjFEk4LRXvqY58tkKiJN9a6OKx+qW7uSTacUXlQzMemkIB/mqmNW yFlGZscxDxbCoIYU1P4hF/I1C5t3ZtSbY962u/WxWGvfUYdU00PyRwipSA5M1Yw91eHh thkDCHp2z5koZPXMB3dqWnm8WdNQB87cKxA7WWqhA76dSrAjWHBcoj06QKvtF/s7RGLC 0N58C+MssuGEU0RAXsKmEA3KVqvm0fLISeFVTcZCcLv+USeExcTrURoEh2tP51lmJaNx ImozI/4+MCXlTAjrwDjCWPFro3J9Pyhje+WeW0V+ieAsUDq5nFPC9Q9H2Zf1U54kETSk wPAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HKx2I766; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 188-20020a8117c5000000b002dc08d98021si894651ywx.28.2022.03.15.23.09.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:09:19 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HKx2I766; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45600 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqU-0002vf-SY for patch@linaro.org; Wed, 16 Mar 2022 02:09:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgQ-0002UE-MT for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: from [2607:f8b0:4864:20::102d] (port=40636 helo=mail-pj1-x102d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgO-0006Su-NO for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: by mail-pj1-x102d.google.com with SMTP id mv2-20020a17090b198200b001c65bae5744so428416pjb.5 for ; Tue, 15 Mar 2022 22:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=HKx2I766vKlV9VpBe7fFijoR9ZNAUiCzQmGUUlfp5Cuesy/M2qzsaczITf5G9GqgZ3 pTrgFE3uxhxgbxymrfBgkot89bKvLU97X85efbXqgdi7W6d+qzWkn7gWFg8UnA8fYb+T 4Xj8zU8Zi77gSPhDcwe0ckSY6R+GddelwItHWi2unQftnl+ukVknW6DQ1B7VVwv+EFIx 4jcNWUyGz2VqBs+htXhxyE9tTKg21BjPqwL+zm2kmI9ianNAOPe9pR49GuH4pFt+ivWU v7F50p2TlymCgRuikV/AG1p9hHLyTaX4EfNUbDkJf6W+NevluglBykf+03fx0Hjbed15 kOvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Pb8IOGOu4mKxNeiHFDXVhpl0044jfTtYIWIF2tDX6C4=; b=xzKLSV6uDDU8JOTfsyGbx6pJ1anf482DHYZiXgD6HNuvWtJdq6S6vFuDx0zX+vrPTd c7+6C7kLYqm9yvofNM+D630BlIEmHwWGZ60AxanH9sxx1tZfomRvz55VnI1usjwTWUvG xeVh6B0sCduObpQYMBwhzGQw9kTe4XS6GU6rgkbtLRlZoB+6LTtic4aO4T7fUjc5r3wX LodPYpHdbof4lcHCN8WMldKmf4hQCBrwWN1Rykp9y4ZFSeTMvxxBCVc+4hMqzXNFkwne W4DbctmaxMkCfHZtkbCEbQ7xGoYWLh+1y3MB1fpOeIXE+yi5tjz3KKyiPWNDSnUvVfwt yOWw== X-Gm-Message-State: AOAM532dGPc9LA9Hq0/Mf8FjsY3HzsfOnUfzFgvBP3ljPXoytrp3ghFj ErLWuLwxg4ErObs3K/7HUa7aXEARM/F83w== X-Received: by 2002:a17:902:8691:b0:153:6f49:1a23 with SMTP id g17-20020a170902869100b001536f491a23mr13741204plo.9.1647410331406; Tue, 15 Mar 2022 22:58:51 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 10/17] target/m68k: Implement TRAPcc Date: Tue, 15 Mar 2022 22:58:33 -0700 Message-Id: <20220316055840.727571-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::102d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Resolves: https://gitlab.com/qemu-project/qemu/-/issues/754 Signed-off-by: Richard Henderson --- target/m68k/cpu.h | 2 ++ linux-user/m68k/cpu_loop.c | 1 + target/m68k/cpu.c | 1 + target/m68k/op_helper.c | 6 +---- target/m68k/translate.c | 49 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 5 deletions(-) diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 5469d5dace..1901a35256 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -533,6 +533,8 @@ enum m68k_features { M68K_FEATURE_MOVEC, /* Unaligned data accesses (680[2346]0) */ M68K_FEATURE_UNALIGNED_DATA, + /* TRAPcc insn. (680[2346]0, and CPU32) */ + M68K_FEATURE_TRAPCC, }; static inline int m68k_feature(CPUM68KState *env, int feature) diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c index 9b9aabccc6..828dac5e50 100644 --- a/linux-user/m68k/cpu_loop.c +++ b/linux-user/m68k/cpu_loop.c @@ -49,6 +49,7 @@ void cpu_loop(CPUM68KState *env) force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->pc); break; case EXCP_CHK: + case EXCP_TRAPCC: force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->mmu.ar); break; case EXCP_DIV0: diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index c7aeb7da9c..5f778773d1 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -162,6 +162,7 @@ static void m68020_cpu_initfn(Object *obj) m68k_set_feature(env, M68K_FEATURE_CHK2); m68k_set_feature(env, M68K_FEATURE_MSP); m68k_set_feature(env, M68K_FEATURE_UNALIGNED_DATA); + m68k_set_feature(env, M68K_FEATURE_TRAPCC); } /* diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 6aebf9d737..0de4743d01 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -399,14 +399,10 @@ static void m68k_interrupt_all(CPUM68KState *env, int is_hw) do_stack_frame(env, &sp, 2, oldsr, 0, env->pc); break; - 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; diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 0bfc1a8ddf..e15b317ddf 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4879,6 +4879,54 @@ DISAS_INSN(trap) gen_exception(s, s->pc, EXCP_TRAP0 + (insn & 0xf)); } +static void do_trapcc(DisasContext *s, DisasCompare *c) +{ + if (c->tcond != TCG_COND_NEVER) { + TCGLabel *over = NULL; + + update_cc_op(s); + + if (c->tcond != TCG_COND_ALWAYS) { + /* Jump over if !c. */ + over = gen_new_label(); + tcg_gen_brcond_i32(tcg_invert_cond(c->tcond), c->v1, c->v2, over); + } + + tcg_gen_movi_i32(QREG_PC, s->pc); + gen_raise_exception_format2(s, EXCP_TRAPCC, s->base.pc_next); + + if (over != NULL) { + gen_set_label(over); + s->base.is_jmp = 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); /* Branch instructions. */ From patchwork Wed Mar 16 05:58:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551833 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp6156mag; Tue, 15 Mar 2022 23:09:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxr8IhC6NjhR09prXjmH7PG+GvtjO+eNq/ogfu4Q6R/TZTKLur+FsxWPoLUGisUvCXf0sVU X-Received: by 2002:a81:1191:0:b0:2e5:a509:82fa with SMTP id 139-20020a811191000000b002e5a50982famr1095462ywr.402.1647410961431; Tue, 15 Mar 2022 23:09:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410961; cv=none; d=google.com; s=arc-20160816; b=wdhPEM702ESrQJl9NgiE8iJtPmaSXTDEu3p1dmqsSMOwBU544rJe494+UyLGSaGR9/ DxaV38wbNnfwRboHDFNzHPu7H/MjrJgJQ9NXNwsfnl3XORJEfueRv6zY4CF/gPh9kdUt FzkjBRUEyq/e6AWSw8EOUJoCMKlGq5G2KlJ0tZFl7WNKnaMImRZ3Z+sRL4MZkMyRE5AN XB4M+otOJju4kqD7ZUAQWTp4odHR++KX6goQPvk+SvG+gIek6o6n+KTHeTxUKOygPJmA 3HPIc/QdHP9HU2eh04u/+ITPZ+BoF8AjgVKVU8HhFhRnDWuPxZccHfDTAb266gfBLHR9 O6iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=on172Cdzi517Sbt0tQdznpuFJMI8I00zA+hv7C1MEUZaTN6edTeeS6eHE51lDwk5RP u7mtncMeeH6JihbeA7oKKnd9dr3EvtQjRgGaZvv5oStYZkU9zrYw6p8ESz8cdoSiB+yu JHG9xwEdExFBqs/fZ+PSgcxhU9+cLgleT5HpGRm2n0jt10ybFzpmNbixJWRh2sPrhOP4 Eskt/UyK7+qH7n9UDhJHLAlcDbCHJGaVMxnCdVf8qs7bCX/6SVkDs8+TEKMNoPn994hu 5Y0gds8ZGasNWm9PnV/47Zl5S/reaZbWidQVDwS6lQvfVGJvkqZmGNwnqQ7e563hvxO6 I6jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Jtg+qJ9+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id bu11-20020a056902090b00b006287d01649bsi1226101ybb.393.2022.03.15.23.09.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:09:21 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Jtg+qJ9+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45744 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqW-000315-Ue for patch@linaro.org; Wed, 16 Mar 2022 02:09:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0002Vv-31 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: from [2607:f8b0:4864:20::636] (port=38667 helo=mail-pl1-x636.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgP-0006TD-J4 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:54 -0400 Received: by mail-pl1-x636.google.com with SMTP id n18so967545plg.5 for ; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=Jtg+qJ9+ZrQ6yar+c5O4w+2XDtDas1FuQknsEvfkPpAmmmPwiPhTk6zsp5f2e31U80 ATU/oM1XQgDP935R87YFijjuOjxxVy54YU9u36AfZuuSqc9EFj7SSIUirMZUqrlpdhLn HYzcUz936fRMDFulBpypCjByL7ksOij7dY905SjeIGnFsmTaqu5k3xFivkdNDtIOGyUH Z2l4jEKpRiYA8Yk/bf7H5neEE7iDISFWwaJSisPAcCBfLOz15cNXn1TWuSVPgw9CTHY9 pOx1vIUyyPsDRhBgDwQVh1UImMwVVblBMff2SCgPsSSdyIg5ZgEknTd7HPQothJjqdjO O4SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CgkorKQppvT/5EqF5TZdReeeVVST0AYPM557ltMmWGU=; b=M7h8vKe1c9QAtTO5tkH4WklZBv4ww54yLbpZMBkPfAXqXyslgno0H6Fw9B6qKVnM0A FkTDXzvWjcw5ruayqalUPJEqwdDQ8x0w95XeFKts5BGSxTXWASyh4aHp6A9mdSPVK7gs uhNAUCH18xmHGpYHX3HR0zQSAW9q3NPZbxte9ESLe75wWwWguiIKu29IauInLE1BJPE+ up0FJDLCWfLeIawp8fK1PWISnPrXTEEMbY6RYbCy4a+cKx85sMMYz/P/R3G3+ebx5sI4 6S+694jk4/OhFZlTLonJOm52Taamo0Bg5lZw82TnU/WDTzjRXt+N3UKtDTghrLyqPsuQ lD+A== X-Gm-Message-State: AOAM530tv0V8LaJI3Kk+sVh7/YVc4aiDyzmI4JzPr08s75pK3F7yOxMz Dmcm53sSfmXnkhiuHMvblBp28KAZ89O1JQ== X-Received: by 2002:a17:902:ec87:b0:151:c3f3:ddd5 with SMTP id x7-20020a170902ec8700b00151c3f3ddd5mr31518171plg.154.1647410332337; Tue, 15 Mar 2022 22:58:52 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 11/17] target/m68k: Implement TPF in terms of TRAPcc Date: Tue, 15 Mar 2022 22:58:34 -0700 Message-Id: <20220316055840.727571-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::636 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" TPF stands for "trap false", and is a long-form nop for ColdFire. Re-use the immediate consumption code from trapcc; the insn will already expand to a nop because of the TCG_COND_NEVER test within do_trapcc. Signed-off-by: Richard Henderson --- target/m68k/translate.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index e15b317ddf..86e5e16f71 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -3075,22 +3075,6 @@ DISAS_INSN(addsubq) tcg_temp_free(dest); } -DISAS_INSN(tpf) -{ - switch (insn & 7) { - case 2: /* One extension word. */ - s->pc += 2; - break; - case 3: /* Two extension words. */ - s->pc += 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) */ /* Branch instructions. */ BASE(branch, 6000, f000); From patchwork Wed Mar 16 05:58:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551832 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp6145mag; Tue, 15 Mar 2022 23:09:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWbsnGgN/ZWS5TE8Rl1Wd/q0qHhdChnTcm74aDoRQsEaAYlQaFOSEG2Y1myWft500dOz8c X-Received: by 2002:a05:620a:2904:b0:67d:db5a:b27f with SMTP id m4-20020a05620a290400b0067ddb5ab27fmr7345638qkp.529.1647410959851; Tue, 15 Mar 2022 23:09:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410959; cv=none; d=google.com; s=arc-20160816; b=AGqeNSQcKZS4++/AEZcr7JHe9nb//KWhFj12CZfyUDKcAAUq5eX+xghpqd7nStTrky lI0FPDgTpS1O8B/xn1esuKt3G6Pnf3/BKYLcZdkGbL82k6EYhxzEtTWvYkBFIdQJQZbl Kz/TSaS0pdco7tJljxQvnMIEvn0pWcKG5Ep3PbbGgdEhs5MoUKxpGpgfFejeaKX1K1SD 6Z2ARTlVn5yUvhVKl2UlszG7984f6tuqrVt0pxKmfHQkjchnqHhSAucVkFYidEkwXkwd cev4dTXeJMdh69mcwEzGvD4u50m4iz/AXHe1Ris+KyMRFtlHTDQy/7iPfpYsBOPG4sr3 v/kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=dAt+UA7CIjSWVgNk3zvJvqnCzEmY0YaxNXGagj4XATWNEuxqDmYjjqFQLPcbDi+v5E h5EyZo+nZwuelVrcpiEUm4iINL2dO0EOVC5oO0xI1Z1aQnhU9w+hyHOvFlH/RDgQk8MG rz5brBxpg4eQXyg0i8TV50QrkypVxiH6vrIuOxT1nNFELeFDoIEUA0YHXrPK8HjDS/mw Pz+b1Dlh1IRu6g4SAUL+KGcjcg65R9eds/ELIfvgGcPHNORai/5O4fZ1xyB5B8G9aeG9 9+1rP8/ccuJS4tpK4vtiWLrSsZKlXZqx+SJipwtFBx5mb2DLePhfj78aiQ8cx0l8Fhc5 DEdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UGpebiJb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c1-20020a05622a024100b002ddd9a8ef4fsi229635qtx.552.2022.03.15.23.09.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:09:19 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UGpebiJb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqV-0002yu-Cl for patch@linaro.org; Wed, 16 Mar 2022 02:09:19 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0002YI-QE for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: from [2607:f8b0:4864:20::42e] (port=36563 helo=mail-pf1-x42e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgQ-0006TY-C1 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:55 -0400 Received: by mail-pf1-x42e.google.com with SMTP id z16so2568217pfh.3 for ; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=UGpebiJbBC4qCDeXRvgaUrpna9hs+ZZlVYLRiBWDjNoNpxyJQaSanZB0nPE6xaQeEy pgIlHAk0N7T/BZEkJPZ9IVAzV6l6BIhvd56IVTi5k5N9gncwDvwMYaZahfR12b4GoQUD I8eJ8Hz7vI+/gkPvVO8oqPr9E7pJRIbd1ACnevA7hD0tXAoEsCbJrqO7jbS2RvZb93T8 6pciwKCktPttrlpKOaTIIhDHO2HhMMtvKrhPfVFmWXcQPr1GybcXXZehCFb3Egqxms4Q r2AUeYkLHPgxcf+VT09ibeY+rlIw31tv7hMPt6JEE5ygqb3OX2R8povvmhsvJlIBea5V crOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mnSb1dxSO3Acb9OpkT5IqwkwlD06Fhi2+q3inDP0gio=; b=FjvU0X6rtbZE8lHanCdsnUA+bxWaJdh4Ay56NP9dBaH0QnCMqJns5erMDDG9Z5oWhP QguYcFZtPvUmc3BmfNAE5uv7GBdF43W8aPukRGlRGtH7++2G00cFy/1qqLItomkfq6Uu l3MkVBkZUIOQeSSR4j8ghY454QLRzSSpD3/7xGNl4vCv1dxm9iwp8B3rIiF/qOeaoGXO rlRDMGL4zUSabWkmjlRAYAvb8Z759PeSCrgPC6bG50TAj9kXaVM1EQ5/KbYpdecUHi51 q7DWtdceSJdvK1Z6pzFGO/tVZniK//bb2VekRaQz1xk50zsMWa5W0Ot47RW479H7T5DO ETqQ== X-Gm-Message-State: AOAM533Wajna4e1AMfibH/C8oubC2S7GRSy1JQKxPq84hHmJlT9u2EA9 xvr0Z/2rXAZo1hCYFuKGagMBwVKh7cWb9A== X-Received: by 2002:a63:f816:0:b0:37f:f252:9f12 with SMTP id n22-20020a63f816000000b0037ff2529f12mr27571747pgh.318.1647410333157; Tue, 15 Mar 2022 22:58:53 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 12/17] target/m68k: Implement TRAPV Date: Tue, 15 Mar 2022 22:58:35 -0700 Message-Id: <20220316055840.727571-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42e (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- target/m68k/translate.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 86e5e16f71..6118f9fcfb 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -4911,6 +4911,14 @@ DISAS_INSN(trapcc) do_trapcc(s, &c); } +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); From patchwork Wed Mar 16 05:58:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551826 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp3164mag; Tue, 15 Mar 2022 23:03:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxR7Al1ZHubsis6u1jgKKuCon99SfQl9Y92nM/B54zl/jObv/XcE+TgqqG9iRKSRpPg8i1v X-Received: by 2002:a05:622a:1aaa:b0:2e1:a40d:8253 with SMTP id s42-20020a05622a1aaa00b002e1a40d8253mr24169212qtc.135.1647410584562; Tue, 15 Mar 2022 23:03:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410584; cv=none; d=google.com; s=arc-20160816; b=U1vIlxCHrZdCGUg7GnfluQcdzpi5+ibMCsgs435q5lGOsz+kPna1wXA0hsY3YbNOBO pITCLEYHc03wpuD516uDQx0dCd8trz65/ke3qoiYjd9OwmTQAUKx26jCp7DgH1idHVEX heP0ijwCr2vmWYolFgGn50h+aFLl8g71i2LUQzQx1l4qNhwo3XsTEH9VBEZ1PWfO4H3k FJUtenziilm8Siqlc5aeWQHXEXQsEyNpiOIrlrN9J1UBSOzjbAha2/TPLiK4yVIBBoJF gdE2DkFdl+PEThx/2wsfJ3Fp64R/UD2pIhAyboVutcelyp8W5O+wP8QwOE1dqRuA50Ep 624Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=cPIDkYC1FUd2Ti2oec699w3rg0T9vm/4+YjmYKqH7sc+JmDyyUbTBBbsWPvcImQ7MY y6vupXHNEBWBGDUrtgypTrn3ro/lWVBJEUp2VLrioKylDOoFI1a1gk+BZLSZl4hHHaTW ODsDVn/dtK+7id4IV4dp8f5jmwkS1V1FTF+BM96F/VCazC5OBPRGTlO2s7i4mrxpOIMl 3SK+pYF3t9Mp2tf14SAS7yIp9s9XFh5TpkVjBICeNLVPnl+fSuMFkQQlEPzkqTDfwvc0 pdKh4LHj2tk/DQONGYPGJk/+ZaRljQV8eAd+XlVic/Vf0BQAxJT+HaSPZn2i9wiY9vaK O9BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=u3853nR5; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id q2-20020a05620a0d8200b00648d0f8e9b9si240684qkl.346.2022.03.15.23.03.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:03:04 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=u3853nR5; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:57424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMkS-0008Vg-51 for patch@linaro.org; Wed, 16 Mar 2022 02:03:04 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgT-0002du-5k for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:57 -0400 Received: from [2607:f8b0:4864:20::435] (port=34533 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgR-0006Tp-Km for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:56 -0400 Received: by mail-pf1-x435.google.com with SMTP id l8so2578037pfu.1 for ; Tue, 15 Mar 2022 22:58:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=u3853nR5m3h08NFrm+m8GrNNpyssPJswQilEpY7ypVFnuwdyXi2i5FmumaFNqV7mz5 mCBVPJrCRHWN7T6ii/nxxro9s/ElVqZ4EzLnpsmDEXphsiwYYLatRTR84NouhMsmZvCW 18hHfJpkaWwQE7Feobco8SuH91hpfoJ/9uQTjTTzNGblhvJla6m+eWYRut/oCRwe0nNJ X7f43wnKPGVp1MKp78CzhfRonBF1JAGjJI7NfdgdFSVIIMV0CTFR11AQ0vJmTezwWmOP q7YemvdVJEV/LAPiSSWhTjfz7+eTNvVFWGe2d3E2uQ4QuNL10awy1v2v71vvDYXlfa3v Iazw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=35HcCby7Mn+2agrxKO46W+juCyRSjYj+577YArHBs58=; b=k6lmnmX+XJNL+0biEF+mnnl5MOo0Q25byU1SMgA0j6BFvkIF3PdcJVGY0lXRxXLGyX DfGNM0TxM0gU0f/YbYiuv/HdHsbhmNvu2c+Q2dUjZALzxUbpjPitdFLNRNKCxfLj6s1l dQw6KySU7p1oVVag4bMKhif4gDZhmflt3OdLBgqRPf7S1CBu+wtzxYp75DVDnu0Y7PAJ UidzTnXBAHr5gcnKx/xd4hDXsAxQQA+jlamnoV8PB2GkgLOLpCnOfYuokJG5opzwrrP7 +LhGpd5VNFXjSlFtDhk3q0aMCD2ccnKONXwAnY+i8ZgNC36g2nASvcnYN98ZJel1Bb89 /ZdQ== X-Gm-Message-State: AOAM530k0QJ6cC7CHRni3JkIGOTKoejabWrC7u0InFEUGtdL8MFsB3oX +ULiVcc50btbaEras72frapBRAt9KaHHqw== X-Received: by 2002:a63:df58:0:b0:381:6713:6a49 with SMTP id h24-20020a63df58000000b0038167136a49mr5352058pgj.198.1647410334158; Tue, 15 Mar 2022 22:58:54 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 13/17] target/m68k: Implement FTRAPcc Date: Tue, 15 Mar 2022 22:58:36 -0700 Message-Id: <20220316055840.727571-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- target/m68k/translate.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 6118f9fcfb..14f8c702c1 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5567,6 +5567,35 @@ DISAS_INSN(fscc) tcg_temp_free(tmp); } +DISAS_INSN(ftrapcc) +{ + DisasCompare c; + uint16_t ext; + int cond; + + ext = read_im16(env, s); + cond = 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); From patchwork Wed Mar 16 05:58:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551830 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp4838mag; Tue, 15 Mar 2022 23:06:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzYD3DzldQ/5jqtVyVFs5BknyUNindbnDfirdaTIv0wOa60zlv0fzWlu+xOeggIDDP/7Gw X-Received: by 2002:a05:620a:4016:b0:67d:b85e:3405 with SMTP id h22-20020a05620a401600b0067db85e3405mr10510573qko.185.1647410799020; Tue, 15 Mar 2022 23:06:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410799; cv=none; d=google.com; s=arc-20160816; b=cwCe93xzUTiV980kmyETXK11FCFlJnWg3/9KziGPQGmRC+E8QPZJBDM5ouQrW99SHq ASoovz1/L8v+0pItRv7BD1l6ZJ7LYKumozeEa1BfaHi0HuK1+U+ejF/35v1djwMpxmAh h5E0O3y33TqxdhSdA9Vl9jNVduIdHzPXzq8iM2FE6GglC5l0itU87g6CtJoSeZSBmNNz uRfsWYPnlZMnFyqg7lUjoIjpBX97dTVYHXqxVn6wkaJZRx4xtw1/ImYYjDtm4yHUSeA2 QRN+PhVtlC0+btJkXPkHti067lNS6nXtcZB/jjfKK9OWJPMhh2nF38FKSSzXTwo1e/BQ GNrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=XcXDoT/rdnbPhPC/v/q/c9HFlIVYyYm7I+40STh+Iiwo5AB5PrK54PqTrPuW21Pnml bOuB+DLS9wmsdfT2GmgGPd17VwOoILjfJG3awtkEF//ZIIaRugi1uRpptcazhGey9RDh bXHsat5/+/grUqh/ruOLlfpuLfbRNthuhh8nRIWVAYyb6tbRjRrt6v2PR/tWpgh28bPN qHgAunzv/L9oNerCIImseSlF8dixiMjYD6FylHh+jqePMAl6cai36IaDwkIrdjKA2E40 DHrgGkBj2u1nUJOc1B3T7Khp/tMd3vR1sFdVRG7WMvHaV1ECHK/rwnagPO3f9rVLEmvt PU+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wO35ImkL; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id z20-20020a05620a261400b0067d9e0d7d28si235077qko.62.2022.03.15.23.06.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:06:39 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wO35ImkL; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37682 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMnu-0005ss-K2 for patch@linaro.org; Wed, 16 Mar 2022 02:06:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgU-0002ik-7k for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:58 -0400 Received: from [2607:f8b0:4864:20::435] (port=41884 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgS-0006U5-IQ for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:57 -0400 Received: by mail-pf1-x435.google.com with SMTP id p8so2523499pfh.8 for ; Tue, 15 Mar 2022 22:58:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=wO35ImkL7UGqvRCNK5zbCHxn7DFO9syy/34zn+WfJxSB0UR0vmnBhNNTEwAl9BsRKj ZhmZWy6r3yxLPOWd6YNeYzYGR/rHQ7m2ffgLktSJbVbO8U6Dd6EW/Qbe0Qm5dwvnqKrq COD1wYm9lYhkTkhMfqTfNggZc20v2Z/GNhaUOIbuR6hlJOMnNvg85xZTgrnw2SHqYn1l OJ20rLtEtVK7siS+6RIcKLdH79Tbs+beNgH0XThiZtuaEI4hO61Ui7q5c46zf/r71MWW Ac+wHsttBODRLAqPiQisvHbjwV8wyJWRr8d6j0z7zEKjWxkNDCUbszqzNoLI+7ZxxbBY 5Gqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1iKqCq5gnBEuV7yETH5boxm9MvdrrB2fADfIX32vfoE=; b=uzeeMnz5EZiUBpwGspFUeS9pvj88Y/rjn1ndtvSI1tTYOu2seLqxUMC929iJDgT2Lb +nkgliZgLrWvaJ8txTSO1avJfMp+Ssy8oXKsVLMs+t/LghvSbPFUntKylkYLxozkLUaY 6Sg93j7UjFJiZzRpf/w4JxsUMNrrwFyTBpW7BIHC4junl4vsdH8gM4leBQ32tDgeqy93 AKtpyet+F9Cdxm8irMm/iHR2bdcBphwMkmO/tGTYBUmfTmMnutC4z+IR8C5ydyIYH8CH JGLy/mjvyMLY6H8tZjdIkaCbJONmvsaR3N7vDw+AAs90Vv0YOJSS8sNZRzojoI3KjbbG hJSg== X-Gm-Message-State: AOAM530/Wd5r0Ht/NVYpGzORN/w6dqXKn6+s+zTVMTtJBqlAuq+9BCiY onnoK7vFOfTR4EiAFZylUt5HkNao5KR3XQ== X-Received: by 2002:a63:7cb:0:b0:380:f89f:c9a2 with SMTP id 194-20020a6307cb000000b00380f89fc9a2mr23383684pgh.264.1647410335389; Tue, 15 Mar 2022 22:58:55 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 14/17] tests/tcg/m68k: Add trap.c Date: Tue, 15 Mar 2022 22:58:37 -0700 Message-Id: <20220316055840.727571-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Test various trap instructions: chk, div, trap, trapv, trapcc, ftrapcc, and the signals and addresses that we expect from them. Signed-off-by: Richard Henderson --- tests/tcg/m68k/trap.c | 129 +++++++++++++++++++++++++++++++++ tests/tcg/m68k/Makefile.target | 3 + 2 files changed, 132 insertions(+) create mode 100644 tests/tcg/m68k/trap.c diff --git a/tests/tcg/m68k/trap.c b/tests/tcg/m68k/trap.c new file mode 100644 index 0000000000..08ab56b2ca --- /dev/null +++ b/tests/tcg/m68k/trap.c @@ -0,0 +1,129 @@ +/* + * Test m68k trap addresses. + */ + +#define _GNU_SOURCE 1 +#include +#include +#include + +static int expect_sig; +static int expect_si_code; +static void *expect_si_addr; +static greg_t expect_mc_pc; +static volatile int got_signal; + +static void sig_handler(int sig, siginfo_t *si, void *puc) +{ + ucontext_t *uc = puc; + mcontext_t *mc = &uc->uc_mcontext; + + assert(sig == expect_sig); + assert(si->si_code == expect_si_code); + assert(si->si_addr == expect_si_addr); + assert(mc->gregs[R_PC] == expect_mc_pc); + + got_signal = 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 = 0; } while (0) + +int main(int argc, char **argv) +{ + struct sigaction act = { + .sa_sigaction = sig_handler, + .sa_flags = SA_SIGINFO + }; + int t0, t1; + + sigaction(SIGILL, &act, NULL); + sigaction(SIGTRAP, &act, NULL); + sigaction(SIGFPE, &act, NULL); + + expect_sig = SIGFPE; + expect_si_code = 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] = { 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 = FPE_INTDIV; + + asm volatile(FMT2_STR("0:\tdivs.w %1, %0") + : "=d"(t0) : "d"(0), "0"(1), FMT_INS); + CHECK_SIG; + + asm volatile(FMT2_STR("0:\tdivsl.l %2, %1:%0") + : "=d"(t0), "=d"(t1) : "d"(0), "0"(1), FMT_INS); + CHECK_SIG; + + expect_sig = SIGILL; + expect_si_code = ILL_ILLOPN; + asm volatile(FMT0_STR("trap #1") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #2") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #3") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #4") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #5") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #6") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #7") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #8") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #9") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #10") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #11") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #12") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #13") : : FMT_INS); + CHECK_SIG; + asm volatile(FMT0_STR("trap #14") : : FMT_INS); + CHECK_SIG; + + expect_sig = SIGTRAP; + expect_si_code = 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 # +VPATH += $(SRC_PATH)/tests/tcg/m68k +TESTS += trap + # On m68k Linux supports 4k and 8k pages (but 8k is currently broken) EXTRA_RUNS+=run-test-mmap-4096 # run-test-mmap-8192 From patchwork Wed Mar 16 05:58:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551834 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp6171mag; Tue, 15 Mar 2022 23:09:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyduB5aEBOFP/f7VKLlH3h4SDDcOmjpbqG5GtMvzQQX2xX0iuy8fk6m0nLr9pb8jFwdOd/C X-Received: by 2002:a81:1a4e:0:b0:2dc:aac0:36c9 with SMTP id a75-20020a811a4e000000b002dcaac036c9mr28613460ywa.252.1647410964203; Tue, 15 Mar 2022 23:09:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647410964; cv=none; d=google.com; s=arc-20160816; b=g7humjz4eHWSvZLMRCLxDfPdYGJ2sDgsP5GgxNhq5TSrGIB6a9W4tk3U2cy5W8/qSm Iv36/zux3+1ZCtpKrSllf+SyJYUZNSMX5PP7Dxv56y9lOyXe2ODXGxxgf3AEfqbih3xj oGDqJVW7uD/uUBPs19lvo8KnKX68C7jocIRr2Yzsrf82pY8cxoZKilxmYLLI2tGGCKvV x9zLJWunA7yt3ZC1ugXU3i1GuUdN/zKDDeqwM8S3rfNSFUEJSJJuxmrG8cloCfYh6oy9 QcMnCzINjOTM9+rFFqtm/6Fmxt2M2fc9uT+C11xrsxZ97wPvn62L2ld3GkQtA9NYcOs0 erWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=d+fj9mtJ0C071VH7YpTqiDt+nrB1DFgApBsUoi0PlCHrNarAiTq1rW1zzTRZP3zCRB vp1oswRBBVXjQiDm9Sxk7uGha//YTUiVxWxq36BEiPbWgFOI6o5Xt1KzwuEy4wioujfu OcUjJKPOo1GU8x29rdgQV6Z7nfPSbc4QPE8AX236O/Q0IAv6mfCk8k/jfvi23WKAFxGR d82U/J7PbPYWe5y+C6RTcNEr23hfb1nc0DCAk8tez6Tal139iw3NHdmzHPOt7sJv7Xji zZEqGO5FxPvu15Mg/vHxFlemAZO4JFExLLbzIb0/Ct7K9GJe9JlVwlDsEXSevP7BJwSh kZsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y3VL7dxb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id s14-20020a25830e000000b0063391c4496asi253223ybk.298.2022.03.15.23.09.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:09:24 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y3VL7dxb; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:46126 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMqZ-0003Gq-HF for patch@linaro.org; Wed, 16 Mar 2022 02:09:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgV-0002mo-7o for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:59 -0400 Received: from [2607:f8b0:4864:20::430] (port=37786 helo=mail-pf1-x430.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgT-0006UH-Ln for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:58 -0400 Received: by mail-pf1-x430.google.com with SMTP id t5so2555715pfg.4 for ; Tue, 15 Mar 2022 22:58:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=y3VL7dxbawsuNElVlAzqQiOuvcWEl44aiEPZ+5+mbX56dByS/YXXF7QudSbKs5055a jc4Jutqt5jyRMykrQkk8pxE/hZXxXrysXHAjlFkXtSCfUvP52BKhU1wifrFh81DUlYHu 9v7eSWPjt3YeZhb9NZu+BHFCkCZlyQIh0J7W5M90RdpYrw7RjRk8ignBYT9MFZOzsENQ igALtrnFP2Y/8eGOZIcRHrxkYxJt4rIjzZCFhMXWPpTgvluVs+PWIxm3gJ92O0n08z3Q yi1kqOQElvkVnbtqzzFYbkRrdv1QPCBzyLRoDHXa0Dak7NtB9yoP3QVWlHGerrm9Rixc LdqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LMgZ+9vBXxkL3ObSKn51zXKkedsdNPSwBIC1O+HtQSg=; b=NXFko/Vm8EJWBT1UhJ7VPQo27/zGc7NR1EtzsxX9eYmoHG62XgxmmaBddH7nY9duyT KVmayfpmbPafmr3Mc2x1ywarj6hsC3nGsW/66WzvXssuggIbppzj4GumkwO650SBnDJh HIL3tGKGlJHW1zVwh7twD6AqaNRoiyFdoMZSgIBHwjfVNwVkYNY5fbCJPj2J6ifcRBVY 7M/zvrMVfehsRd97qGZRvejydapUuv5503N+Ritxf9d2mxRqsvkHNEbMhHMBN1Bzt13F rNB5kMZBS3obdhoxVnWoLOrLjBmLikb4mKkQuYz0QZfA3V6BUUbLb/eK5gUfX39nNF+M LsTw== X-Gm-Message-State: AOAM5334KSIJDLxtNaL4/4owClCh6S6w+Us3r5UEIxc4WkHSJ+lmSNiV 0VBgZEgHsAiOdZQ+QV3+ljwO20hhP7qqMg== X-Received: by 2002:a63:4e:0:b0:37f:f3f0:2d24 with SMTP id 75-20020a63004e000000b0037ff3f02d24mr26897821pga.526.1647410336437; Tue, 15 Mar 2022 22:58:56 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 15/17] linux-user/strace: Fix print_syscall_err Date: Tue, 15 Mar 2022 22:58:38 -0700 Message-Id: <20220316055840.727571-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::430 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Errors are not all negative numbers, but only the top 4k. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- linux-user/strace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/strace.c b/linux-user/strace.c index 2cdbf030ba..f235118fb6 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -684,12 +684,12 @@ print_ipc(void *cpu_env, const struct syscallname *name, */ static bool -print_syscall_err(abi_long ret) +print_syscall_err(abi_ulong ret) { const char *errstr; qemu_log(" = "); - if (ret < 0) { + if (ret > -4096) { errstr = target_strerror(-ret); if (errstr) { qemu_log("-1 errno=%d (%s)", (int)-ret, errstr); From patchwork Wed Mar 16 05:58:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551835 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp8099mag; Tue, 15 Mar 2022 23:13:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyW5uEAgGHLMUrAMWLwubNozyz02L3M4A6rXIgbPOTc0TIeK893PcgtC+vhMyhfdLBxjVZE X-Received: by 2002:a05:6214:234e:b0:435:944f:44be with SMTP id hu14-20020a056214234e00b00435944f44bemr24037735qvb.45.1647411216517; Tue, 15 Mar 2022 23:13:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647411216; cv=none; d=google.com; s=arc-20160816; b=eaV0JLcwT3nl+hGi9eOwjS3ym2VPzYHXz05/ziA4vdcPiaKUKDKlZjG6c6kd0H1HbR 7BdD03HK9dx72ZzLpyUeb/ImHLQUS4be6+iU63VHSp+fM3UIkoGAsNNE3zYZAt0OE4sG JbLMCutkm385F2Eq/p4As+HoXPGleV5LdKh+cNNdQE0OIaMdYcHPnOYLio09lkjZaGzO ajgN3vGzrtwb4BaSRTmh0/pJ9E8yY1EJEupzfUjE41It91z1GBSgqdbKqCOxhU9WiTtk 2LLEP/13X4HKEGs45/aSm/oL+UxV+QF9GUohS+ArzrVlBMsgsKjeTYD2FkV70raSAmmj JR+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=a52v6a5YCxzb415Fgs/fwzbNacI56i9AQbuBekJQX+8O5Sj1rw1c82mDw68/UJl5AP b/nX+MN51fWZfApPJqWZnKco+OSvfMNsoF69oR+4+P/Ii7O3w1P29iwYmB4djlSyZ2u1 g18cD2G/WekmMmFgJVCsy73zVhyGbvMjr03HWJY1RnIWVvxuUoiQuiloX6dZe4Ld8ZOZ BO605yngGGZbSrMUTEJKoQxGmWO5iZ/4cRMedDMVM90BI5L2MC/aWgXwlHDMqNRQ1u91 9nfSoho6moYW8bUgJq3fFcKnTSWsHkxzrt+UkrjjLSj+90e7gdoMAYLSmTZxtQwxcaWH H8eQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QavHItxK; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id iv6-20020ad45ce6000000b00435920cfe12si283769qvb.583.2022.03.15.23.13.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:13:36 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QavHItxK; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:54170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMue-0000Lh-3p for patch@linaro.org; Wed, 16 Mar 2022 02:13:36 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgW-0002qp-2q for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: from [2607:f8b0:4864:20::42f] (port=34528 helo=mail-pf1-x42f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgU-0006UW-L7 for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:58:59 -0400 Received: by mail-pf1-x42f.google.com with SMTP id l8so2578182pfu.1 for ; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=QavHItxKnGLg7l3wI+xP9mWbiHSOlXiCS4g0093ctY0djcbS+rQ010qN+Hc5qWYh4P OtYMmO44pEo9NSpBg6JaPNOmWh2wuXNMi2ucGgnI5aYQWCj1GcnJo2kL9F1V/VT5CXOb qe6tx7JJZynPMfiPc6OrhTp0bGSg0+fMvwJ2rWqBZTAIY/JLJUBhMP/Hp6ljq3uOuN6Y qntWAuZJNvVdcRNzkjdj0lFq7xuUEBiM5Mj3RAzUe0dZr9cHhiDAj0AHSLHYTRu2Yu9J f457fgEjlmYpll0LBlOtXTPVrs/yimr6zvb4L3a640R4oPXyS4GfN4X/sUCImLS4BawB Ygqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z9CNoFSrWjAjukly+g7lYy0zjZhRUxJXZZvZuVjkY44=; b=qfZs9wVjn/guBRY6pOrP/1yvBdwIYn34hPjRtd/b+RAv5g7tByyYuORnIa/bGoE6X0 oOOxwbmicWZsOwcD8xrbVrK3IZHJ+AS13wlv4GNeNiaAOiOL3TdhXSy0gNw12KUWfG8r iPwxHrB51NWhIbpxNqQr3oN/7tSuqTzN9yTRsgdE9u4QkauUGiNy0cwP7N7g99DweMXP bnL0z2Tg6M9OSoTtDxKYkrfc0bsAsD7a3k2eVhBjE2xPImDuXCVgDoGKdHX3Xf6GKzqT wQFsZkA88tN6HvmhTL+ihseMD/Bjg9K1hnc5O8XuZ/I3aNis79TDfg4NrCavSF/zv1o7 AUBA== X-Gm-Message-State: AOAM532pHp0MlgTNrlooDWySyJWYmPtk7TODGzmyJyxmZqZ2xeonF5bA xD+gDfbpcud4TGMQABnq46Yjnegz2cyDLg== X-Received: by 2002:a05:6a02:182:b0:374:5a57:cbf9 with SMTP id bj2-20020a056a02018200b003745a57cbf9mr26613861pgb.616.1647410337302; Tue, 15 Mar 2022 22:58:57 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 16/17] linux-user/strace: Adjust get_thread_area for m68k Date: Tue, 15 Mar 2022 22:58:39 -0700 Message-Id: <20220316055840.727571-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42f (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42f.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Unlike i386, m68k get_thread_area has no arguments. Signed-off-by: Richard Henderson --- linux-user/strace.list | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux-user/strace.list b/linux-user/strace.list index 278596acd1..72e17b1acf 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -384,8 +384,13 @@ { TARGET_NR_getsockopt, "getsockopt" , NULL, NULL, NULL }, #endif #ifdef TARGET_NR_get_thread_area +#if defined(TARGET_I386) && defined(TARGET_ABI32) { TARGET_NR_get_thread_area, "get_thread_area", "%s(0x"TARGET_ABI_FMT_lx")", NULL, NULL }, +#elif defined(TARGET_M68K) +{ TARGET_NR_get_thread_area, "get_thread_area" , "%s()", + NULL, print_syscall_ret_addr }, +#endif #endif #ifdef TARGET_NR_gettid { TARGET_NR_gettid, "gettid" , "%s()", NULL, NULL }, From patchwork Wed Mar 16 05:58:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 551836 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp8150mag; Tue, 15 Mar 2022 23:13:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwDzeLnzwi8eA1190Yszc19D1upHdY+QPQrV0YjtV9A9JtlwBsX74rJURsjzA/d/DCn1JIe X-Received: by 2002:a05:622a:609:b0:2de:a1cd:7cd5 with SMTP id z9-20020a05622a060900b002dea1cd7cd5mr24412753qta.663.1647411223386; Tue, 15 Mar 2022 23:13:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647411223; cv=none; d=google.com; s=arc-20160816; b=w2FFpENfGfDP6ouXndEDsp+vIIhPWnCTK03ToyddOssN1zdQBdCyvp4OA9TbNv+QvU GEGH4jX5hy9EBcuYiJr9x0YsdAQyI0jyOExgm4sGhkNljsQ0uxEeK2iddKVWqSYNqMPr WwunduO+huZjFQwX7jW/wSThW1AT3YhABbirGWF/qecPt5fyWm+jqOqY76YloHBmDLLj xLssWk2WNVWqAuei7lqN7WhX7mZHooZGL4fEwX/mmNyUBKCqVq3+RS+yUW3aYG7wg7g6 s4iqZc61npFupQ/8KN9We0W5deCm+4oC/HoiwR6ca9PgJ0Cx3mj1x0XNZzHNlrJQB/G4 TiVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=Ah7D2ig7ndphbrXf57QCk7Sp+mepsLlU/wPIe2JVplsYkTlj0QUkAmydKh0kf4qe2U lDVTZkjb0ga16+iKftZLLdmbbxFmRlyzv+WGnuQBh7M0Swaqh+wUUc+a5MnHLACHsAJU 5GlJaXtfs8G1kkCR4Hp9Vmzv9bqQXkC8MWBJdZv7z32PonGW7MtWKKWJcVnw0YBxl0fB JTIqANwbhaA7iexUad+KWI+ZSVcK1tZMbJ9F4d6ShErrd9EqB2NJjuNIG0oQS77HNn6H PQ6EFBLASrsz7yZ9lsmZQJdHDnRnDDd07n2086kQb20q5Qf5fYVYzTQYQ5/IDn57oOrP Zyeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=c4Bj3hUt; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id g6-20020ac84806000000b002e06adf0dc0si213129qtq.534.2022.03.15.23.13.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 Mar 2022 23:13:43 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=c4Bj3hUt; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:54392 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nUMuk-0000Wj-W7 for patch@linaro.org; Wed, 16 Mar 2022 02:13:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58974) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUMgW-0002tu-Po for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: from [2607:f8b0:4864:20::435] (port=42558 helo=mail-pf1-x435.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nUMgV-0006Uk-BT for qemu-devel@nongnu.org; Wed, 16 Mar 2022 01:59:00 -0400 Received: by mail-pf1-x435.google.com with SMTP id g19so2513963pfc.9 for ; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=c4Bj3hUtBd0LzD1TMQRURdvn22Veadd8xzhGj0lmzIdvneY7Cei2YWNm1JiB2ELe3n bPgRcLyV8F9RLj6woy+As4AtTb5VZIn9YcEBKuqrUTVKiciWAGkYf96utrAq3noTohF8 TY2OA/bvJHavFTtuy7bt8Hc9UR9qwhiz3EJByjU3SrndMc/PEyTbb06ddAvkgyFoysg1 9Tm//7JSMvOuSDxcgBenPEMGia5NGY4rlexlQ9WL+pZ6Q7eG0vYFdkFcgr74px63igpd fkMq9HTSjR4UEchJkSaEG38LhuajlECnKBKlRzNLpmlZVqh6bdEPdXRG2aOKRN+vqIyC I5CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xHtUxL7CUQJX7r2KCi36AJwWM+Hpww6frztwUIExIEM=; b=BWpr3ccT0EC5h/9ck+30ZOXHIiPw6FRwqrot3twhJN3/vRLolGfVp8x7WB3c8d0dlq 3pix7x9Dn7RlRm3KHzuh67ircBBLFGotFpe7PvabhMnWka4vOKU4BWsn9OHf3Ikhp5vv q7yYfw6rAAxdvCuAYodCfPVCvmWo8RpiaUDb58Tb543eUJ0M9A2l62SoPvPv9s9IH/R5 9UY1lWyCP1qi28Z6D3OOj+j3SC2SuBZAM/hneHedpP5poQsMA3FSaFuTc3iQj7LiK2wb hzhjFDY14zUTaOllnVuOoSzZMXCm/OiSaEcqkaI1TWkGrxfde27FlYLhhjOBF8gMf59r VB4Q== X-Gm-Message-State: AOAM530+R2i7P9C1qPc3qNoxZc3pTYuoyyc56MdVskIV6/TrDs5Norfg SOq9sD/TAFYvQg8JkgAximon4STORWVXqQ== X-Received: by 2002:a63:5051:0:b0:374:5fd0:f131 with SMTP id q17-20020a635051000000b003745fd0f131mr27485079pgl.431.1647410338246; Tue, 15 Mar 2022 22:58:58 -0700 (PDT) Received: from localhost.localdomain (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id i24-20020a056a00225800b004f6edabc9f4sm1236290pfu.72.2022.03.15.22.58.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Mar 2022 22:58:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v3 17/17] target/m68k: Mark helper_raise_exception as noreturn Date: Tue, 15 Mar 2022 22:58:40 -0700 Message-Id: <20220316055840.727571-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220316055840.727571-1-richard.henderson@linaro.org> References: <20220316055840.727571-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::435 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: laurent@vivier.eu Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Also mark raise_exception_ra and raise_exception, lest we generate a warning about helper_raise_exception returning. Signed-off-by: Richard Henderson --- target/m68k/helper.h | 2 +- target/m68k/op_helper.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/target/m68k/helper.h b/target/m68k/helper.h index f016c4c1c2..c9bed2b884 100644 --- a/target/m68k/helper.h +++ b/target/m68k/helper.h @@ -109,7 +109,7 @@ DEF_HELPER_3(set_mac_extu, void, env, i32, i32) DEF_HELPER_2(flush_flags, void, env, i32) DEF_HELPER_2(set_ccr, void, env, i32) DEF_HELPER_FLAGS_1(get_ccr, TCG_CALL_NO_WG_SE, i32, env) -DEF_HELPER_2(raise_exception, void, env, i32) +DEF_HELPER_2(raise_exception, noreturn, env, i32) DEF_HELPER_FLAGS_3(bfffo_reg, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 0de4743d01..374fdcad87 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -532,7 +532,8 @@ bool m68k_cpu_exec_interrupt(CPUState *cs, int interrupt_request) #endif /* !CONFIG_USER_ONLY */ -static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) +static void QEMU_NORETURN +raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) { CPUState *cs = env_cpu(env); @@ -540,7 +541,7 @@ static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) cpu_loop_exit_restore(cs, raddr); } -static void raise_exception(CPUM68KState *env, int tt) +static void QEMU_NORETURN raise_exception(CPUM68KState *env, int tt) { raise_exception_ra(env, tt, 0); }