From patchwork Thu Jun 2 11:58:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 578101 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:5806:0:0:0:0 with SMTP id j6csp483582max; Thu, 2 Jun 2022 05:17:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNTFQQZFIn24mAyPuWHdTA6s3iWizwwa6AkNS/xxgAkPHUZ1h+ML1X8zwP3b0FlamGLDnL X-Received: by 2002:a05:620a:491a:b0:6a6:73ce:ee72 with SMTP id ed26-20020a05620a491a00b006a673ceee72mr2537675qkb.343.1654172227703; Thu, 02 Jun 2022 05:17:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654172227; cv=none; d=google.com; s=arc-20160816; b=w2P/EV1Gs5ziUlsoYEecXQvZfUVi3dg6oqyuFptmlj92NjbcA66++C/KhOz0/Nm6qe XC1Ixa7EIbbsaWUQH01maYvJwma/Gfbs1+5le6b12U0nHX4YSrntdAov8dnQYzpG1Zvo AIUEuhXQFAWvOV+a3zDxxPx0n/FXjBX3dZz9dCQAShx3PFQnRXaFRCJQ2GeNzgFoTij0 QE19W6ENOnjx+GdWy5PBNMeiVocvHmkZNpJ+rQZyTf61xAct/J7wgGI3MXgNVjUoxwnn BvjN8HJEWJz4QceseSopDfJZ80h/X8TkiL6HW3lsgdMEAmoK3L/fVz0uQjuFEn8Cv7Ob xOcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to: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:cc:to :from; bh=KbtKI5iIBBfrPVdvCr670TWSeS+XTGWUxE7ys7Nz+E4=; b=u0RaZ2ylbowL5R4zHTou9jnAF9806cp9ZDRaoRkOSBsXJY3V8YKCIyV2Ir9t7pdMRM 3RINt3OWYYQ8BAnccL1GgiucPdoB2+JOEboesHHRRu4cUlJk6Mtg7V9Waq98+6xq+TX7 xyl8NiKWTb1axuBsT2phI3nJ2E7/oTaZ1V5rIQeSpKlzkPFBrUGQNsiOQ32Bg9x+h2tY aetPDi+Z0giemRQxw6ok/xdu21VVAKoZmdjl/W8bMNsBGK9zwwBWOa5Iz7N4Wae8SUHU 8jKO1No9ZjMd7pGvKGTU6zniWn70zzulXAublBFau34BszTLViW79u2cmAZhwuJsx4ga SGHw== ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id o8-20020ac872c8000000b00304b6c5dc45si1824358qtp.623.2022.06.02.05.17.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 02 Jun 2022 05:17:07 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; 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" Received: from localhost ([::1]:46594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nwjlC-0004UL-TR for patch@linaro.org; Thu, 02 Jun 2022 08:17:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwjTU-0000ca-PM for qemu-devel@nongnu.org; Thu, 02 Jun 2022 07:58:48 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:59465) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nwjTT-0001ET-47 for qemu-devel@nongnu.org; Thu, 02 Jun 2022 07:58:48 -0400 Received: from quad ([82.142.8.70]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MvsR7-1ngzAp1dg7-00szRP; Thu, 02 Jun 2022 13:58:44 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Cc: Laurent Vivier , Richard Henderson Subject: [PULL 11/19] target/m68k: Fix stack frame for EXCP_ILLEGAL Date: Thu, 2 Jun 2022 13:58:29 +0200 Message-Id: <20220602115837.2013918-12-laurent@vivier.eu> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220602115837.2013918-1-laurent@vivier.eu> References: <20220602115837.2013918-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K1:u4GDy3CSL4HtG1XGhMv0X9GfHFZt16h8rO3u/h4KWxlTJnU42np bZDIGs0kybqGk9IerBf4YU2SVUrULVWr8UYX5Cf8W1hqkwivGNYbEIInuL4S5kHAXeMYmuI rnSEAzX4v91hHLSXIARehFjnH5xYyi5Ls36A4S+K7U2MK06gmhKklEz7OW8np3OAjhQo3O7 Vv/Z/9S4kBAYcv9E1dK1A== X-UI-Out-Filterresults: notjunk:1;V03:K0:j2MNrR6jPFw=:m8/3baLnwBX76LkVb4A+2/ wSYzO3SHUrEQMVx3jAkxxoZY0UyVo8bpteOAyKJycVToL6hc8n17UBPtKlCsicPgWsfkT9aje Aq1eGw2bpDVUvForNfK34uCrJ7cpZqapeKOT1VQWItTykf79w6aUmwHXDw4mZpjBEkBFToMoC 0mm16M5bCCAwN+0FHO8eK/3DklwYcQLzVOLiQsuDorpYC0BpsnWSzx7aL+l7OYT6tM4uRVIIr Bo7eADi4rkv8+eEgjrFvb+0rC9RDAvbQk5h3jIOCkNKk8XvIfIu020fx79xFGhhukIfISkksf 44Qs4ac+sf1yqpDFQfGgMLd4+sUywIaQdnvES+3vVgpmAdEKvzJ4f4+fgZYPeXpjCZWKiwNBL YdHc0y3H7Vv0SHsGZAjLqNCUInUc/e6IC9PtauvX9JbCDaiysy8o64fG3aIIZssHkoabCbg3w swxZ2xaoAe/73CL1bRTXrZ1/dq9PHeG3QxBBJ8gBa4jdVTUzoUPj0ZwtU1JE1VWJE4ffr0IcT iy8DwzAKznaVwQpRLAdDw4y0uiik4T2ZBqdi7YFcH5Y4zfTfZDQQSJq6HDJD7nMcQEqFQdxAr q/heqQw40jakwA7EizJ3p8eiVjgZy1TL0EdwccrIy4BLjuuogHyMAiySHGfuxX2Ogk567wESc +C0LOz2oEPMWWMOSiekWmMJi2o9yk8ha4FRyUkR5gu//IXZ9nzevzKFluXdYIB6eoKM92xTUP 0FRSSbXWYwe7d/WWRHJsQwhbXkY7+eA1lhAD5w== Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson According to the M68040 Users Manual, section 8.4.1, Four word stack frame (format 0), includes Illegal Instruction. Use the correct frame format, which does not use the ADDR argument. Reviewed-by: Laurent Vivier Signed-off-by: Richard Henderson Message-Id: <20220602013401.303699-10-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- target/m68k/op_helper.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index 3cb71c914003..aa62158eb97b 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);