From patchwork Fri Jul 17 18:16:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 235746 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp1939311ilg; Fri, 17 Jul 2020 11:17:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxpX74t1SMtVbsKwX5OyGVehABKSlgeThSEQAgpZTaxLb2PJhK84i91zp+rISP+d6T3Phy+ X-Received: by 2002:a5b:3c9:: with SMTP id t9mr16763714ybp.55.1595009841676; Fri, 17 Jul 2020 11:17:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595009841; cv=none; d=google.com; s=arc-20160816; b=tDyBstpy+Hop6luvI4Kq4vyBK7kJWjjlT8mvsPZzMi/lpBgXtscvqj8Jei+Hb3gbIe iUxwf6LLjB7DvwAmC1vTCIhxxY5rIV30F7PhoaCGjZ36hVxPG/Vdzv7IeXguE/3KJ5Cd FQF67ZiayCtVs6cssCzIs/uXTznXp01WyvALVANzhaD0ADfjPh2aPG814Qz1i/H/KAO+ 4Mbu8Qc0VdHUoUD2iZn8JrATDLdcs0L8oQQBsmNO+wIGIAiN0/HfTR4spVNvJHzRTZV3 banboRV+m3tq20IHylnbmM5Fg6BMupZbwoXT9xb6EJufoNotu7/2OjRYJcajT8vYRHMH P8GA== 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=1xo/F7/aAE6h7nPyZHFzXrWII41wbW4AOQQ3nfWZDVk=; b=MC1Zg27I6aW9OtHoxcadk7VqY6IKeakD0JIwGoHx6C3XyMtBiNXi2VyE0LxFezzvgO ZUYhX0FYft7bLVY793Ye9nNcNqzOXAB7AEbx4ppbfLWaAbauo0Q+7pzDxj8IX9PxmLI3 biJl+tXxIincJH/U2DL5h6kqHpMmlo5aYwOu4obJd88NIztLV5ocsz3Mv/3qM77z2k1+ E1usX4K5iemoKNVtdYa5HAaKhs53AkfxEzmrEcJyBeRKFX7C/3wKWVtKEQRiSKxHp4KQ tIlkEPNKd+GBRqEYiWuhSQEFCO0bX3W9jVSm/C5w5Uzq/27VrQd4rMgRpr4NuxRy7gOh fUzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QiNeEiMG; 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 p203si9452637ybb.263.2020.07.17.11.17.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Jul 2020 11:17: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=QiNeEiMG; 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]:35160 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jwUvA-0008V5-21 for patch@linaro.org; Fri, 17 Jul 2020 14:17:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37088) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwUuO-0008T4-Ap for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:32 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:52907) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jwUuL-0003Gj-2s for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:30 -0400 Received: by mail-pj1-x102b.google.com with SMTP id gc9so6924495pjb.2 for ; Fri, 17 Jul 2020 11:16:27 -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=1xo/F7/aAE6h7nPyZHFzXrWII41wbW4AOQQ3nfWZDVk=; b=QiNeEiMGpGrZ6xkpRErjKyWf1u+hT0g/Ix+B3362CKVmQqfSAzX4t+JoSwiK7rt1GI PnQ/pVwJrurcQkw7qE6YUYJxkPGuYq6jUSOTO7BHN97KKsXLG6wtcvNtLIcOoEpUlpkD om1dg+givkjG5/F1y/pt/J5o+J0VF/7hi3JnGjAx335eNbKMo1BFWmXo7b+sDEy3TfBB 03o05AQQsvklldqX5+hYmzYFkiJ2OlfP/3CiGnx6SWivmH3lYErloUydfvVUXGVoXUED oTliO4CGviN7kb0c0f92ZrxS0UzLzVph29PWK71gsYo+H1XLk3rxKOEYiUboQ3CUnbZw vT7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1xo/F7/aAE6h7nPyZHFzXrWII41wbW4AOQQ3nfWZDVk=; b=Wot4jBr8gf0t4Sg+4a7Xa8Qxil0/Yc1Gv7XHSSsxa5zlplL24bQMViT+9+6Yn4XBkg 8pnrAGWHp+Jnz52EMY3RgWTcvS9/DYt405s0Tf8OLLcNlLO8o2or5TjJJObR4af+gDLm 3eOZn36/Fsgxi0FMu0rjYPzMRlpKnGjO+TTc5kWA/FiT0VOd0BXw44ncbhXjyZnO/BpF rDrAfs4M1LwsjCsF6LMosremSgqUio9HKr4f8lGfKjCXqaW3zfVYHZdunUuqCPVgJtAd eCNWYvyD/Iny2vUVj5TSujJKPFGv5x7e49dKcFFBoJRmoRyMTAjUj3a4Kv/PGBEaxoQQ JYgw== X-Gm-Message-State: AOAM5327674h/nyZ8YUQ9IptIj3wziiOguWu8aBwmE+dU2UOtKb/i1dS 2ZtvgBCENi5J6DcX7Px8tjq9XJIGg/k= X-Received: by 2002:a17:902:d392:: with SMTP id e18mr8347442pld.139.1595009786311; Fri, 17 Jul 2020 11:16:26 -0700 (PDT) Received: from localhost.localdomain (216-160-65-90.tukw.qwest.net. [216.160.65.90]) by smtp.gmail.com with ESMTPSA id r7sm8698578pgu.51.2020.07.17.11.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2020 11:16:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL for-5.1 1/3] tcg: Save/restore vecop_list around minmax fallback Date: Fri, 17 Jul 2020 11:16:21 -0700 Message-Id: <20200717181623.2742758-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200717181623.2742758-1-richard.henderson@linaro.org> References: <20200717181623.2742758-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Forgetting this asserts when tcg_gen_cmp_vec is called from within tcg_gen_cmpsel_vec. Fixes: 72b4c792c7a Signed-off-by: Richard Henderson --- tcg/tcg-op-vec.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.25.1 diff --git a/tcg/tcg-op-vec.c b/tcg/tcg-op-vec.c index f784517d84..ed6fb55fe1 100644 --- a/tcg/tcg-op-vec.c +++ b/tcg/tcg-op-vec.c @@ -657,7 +657,9 @@ static void do_minmax(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b, TCGOpcode opc, TCGCond cond) { if (!do_op3(vece, r, a, b, opc)) { + const TCGOpcode *hold_list = tcg_swap_vecop_list(NULL); tcg_gen_cmpsel_vec(cond, vece, r, a, b, a, b); + tcg_swap_vecop_list(hold_list); } } From patchwork Fri Jul 17 18:16:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 235747 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp1939338ilg; Fri, 17 Jul 2020 11:17:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/Xe/Hbun8mndD+v3x4b5mXsB/TsVcNjLDLB5HNCGveEVNHCUV32jHbTXtp/Lb35+4+Isl X-Received: by 2002:a25:cc4e:: with SMTP id l75mr15082886ybf.377.1595009843695; Fri, 17 Jul 2020 11:17:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595009843; cv=none; d=google.com; s=arc-20160816; b=kC0YUFzEDKPB4d4NlIaaK4y12ZXvo9ctdIE4Opb+WOwFvgIvSDuTwYEG9GEZPLYTNp BAaOz1alOdVl1XVlC1TEdL2IQNyaE7qN42ga4yt/6dNZQLHEbAJWDFVSNYWbdep6+Rke DpM1NTBK87OhIvm0Z66O0Yp7nHJubfZ8w98LfFIVAowNJHJ0Qrib+Aa2PqIPMrGnDiSL aKwad+IlvqbuXUzwaeaNcbnQ77fFcj4I9ryBNj703U3+SdAZlzb91FzUdjPuJ/VRbRPm sH7ENmi68xH9ijMbNzTGn8a/3xl0xDTsE3+ztbjssiNttciBunJKMVb/vqLvVCC7QV1t gE4A== 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=WF3WUUJ3102Nb47JAT2FiwU+zNqijVjebyKLsz6cFP8=; b=W4Q8kV0rlajF6kzQ4h4h7iv3VXrDjaUrvVgKJ15p5SvCmKrlXIcP7LZanfCiPQQxn5 y/fSJPlpDP3oleGOI9Ivm8u/bNCmzu8fyjqCKXIoTNl2bRl8v+du2+nGcU7s/Ao9qbJQ vSw2XFGwDgugTnfLwDPg97GQOezb/qfiqfFoNboTR/0gWd8ejW0U+l4mSAXgsfUbTrYk DtgxYRufGrsmm841gVdd/NsNflJYeBfIxy6KJpzk3U1UBKlqzUXRv+ph1aI/Fr/qjUqx nNY5WCVbz0f5KiuXkoZsyzd0VLtHNX01ie5HfP90DFhghrAN2yUbCxnsYpMPBnuY8vQW 9Ogw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ch9byqhM; 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 y10si9337845ybh.24.2020.07.17.11.17.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Jul 2020 11:17:23 -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=ch9byqhM; 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]:35266 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jwUvD-000077-6h for patch@linaro.org; Fri, 17 Jul 2020 14:17:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37090) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwUuO-0008TG-M0 for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:32 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:45045) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jwUuL-0003H6-H2 for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:32 -0400 Received: by mail-pl1-x644.google.com with SMTP id w17so5779460ply.11 for ; Fri, 17 Jul 2020 11:16:28 -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=WF3WUUJ3102Nb47JAT2FiwU+zNqijVjebyKLsz6cFP8=; b=ch9byqhMvr04Ympul6i2g749xIj1liOt1rbWppVh8yvfjRdjRMB5cbEDD5wMsoEZvf 0tQ+48CPQPQArSyfGeO0DevA4WesHKcdpZTP93Iul5n/ruEQxUyDTQNN5I1jTVh6feAY 5eQBUVPETM2a+0XsKL1KGAr2jhxAk7nTpWnn1+jUytwC0vgFdccvRRp8AIe52RFBdjgW e2UrJ3674khcXfjiQixF0fXxx4CjOP1BqlOFVwjDcwL3FHXitBRi7gyZlGEgBH+uglEu I0CdygBaVNkWbCnH9ASZZP9vce+34xzRDxXEkq8uR9sI+1r0he3Gdf9mjHo6A0Dmh45S z9oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WF3WUUJ3102Nb47JAT2FiwU+zNqijVjebyKLsz6cFP8=; b=bzNVHd1AXit4w07J4YM+qgB29MkVGPhvnjDFiH6XzXstpM/Ir0Fjab8kDnNENacsNB ZS0vwk+QRtuFEHugSNPaYb78RGiqmtsI0LM957dRs5Rb17LEy1YVqtWmxw3nVGzK4RmK +fKmkVgMRztTfM737CyLw4fzxWiVzRjYPNkCYuab7kauwakmVFzHL4rZryiD+eGIcXlc EkkN8eKvDGp89BqnJXqeD8Np32TPW1uePxs9Qpc3kCupkC66ZWAqEH1MLXztLlj+TfL1 hzsPVLa5k0H6bX//jszLcmO15vnBx9t3ROufT2Rcls58MlB7GTB5mWl6lxf6dcrkgpFP oRVA== X-Gm-Message-State: AOAM533PU9Fd0UZDzWRvpSX/d25AMO++T+qWprP8TQi4L16fbHYp0OM7 Mywv9ucja/xHAK8foaO4VuPfmR4QJR0= X-Received: by 2002:a17:90a:5d15:: with SMTP id s21mr11678190pji.154.1595009787587; Fri, 17 Jul 2020 11:16:27 -0700 (PDT) Received: from localhost.localdomain (216-160-65-90.tukw.qwest.net. [216.160.65.90]) by smtp.gmail.com with ESMTPSA id r7sm8698578pgu.51.2020.07.17.11.16.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2020 11:16:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL for-5.1 2/3] tcg/cpu-exec: precise single-stepping after an exception Date: Fri, 17 Jul 2020 11:16:22 -0700 Message-Id: <20200717181623.2742758-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200717181623.2742758-1-richard.henderson@linaro.org> References: <20200717181623.2742758-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::644; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x644.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Luc Michel Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Luc Michel When single-stepping with a debugger attached to QEMU, and when an exception is raised, the debugger misses the first instruction after the exception: $ qemu-system-aarch64 -M virt -display none -cpu cortex-a53 -s -S $ aarch64-linux-gnu-gdb GNU gdb (GDB) 9.2 [...] (gdb) tar rem :1234 Remote debugging using :1234 warning: No executable has been specified and target does not support determining executable automatically. Try using the "file" command. 0x0000000000000000 in ?? () (gdb) # writing nop insns to 0x200 and 0x204 (gdb) set *0x200 = 0xd503201f (gdb) set *0x204 = 0xd503201f (gdb) # 0x0 address contains 0 which is an invalid opcode. (gdb) # The CPU should raise an exception and jump to 0x200 (gdb) si 0x0000000000000204 in ?? () With this commit, the same run steps correctly on the first instruction of the exception vector: (gdb) si 0x0000000000000200 in ?? () Buglink: https://bugs.launchpad.net/qemu/+bug/757702 Signed-off-by: Luc Michel Message-Id: <20200716193947.3058389-1-luc.michel@greensocs.com> Signed-off-by: Richard Henderson --- accel/tcg/cpu-exec.c | 11 +++++++++++ 1 file changed, 11 insertions(+) -- 2.25.1 diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index d95c4848a4..6a3d3a3cfc 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -504,6 +504,17 @@ static inline bool cpu_handle_exception(CPUState *cpu, int *ret) cc->do_interrupt(cpu); qemu_mutex_unlock_iothread(); cpu->exception_index = -1; + + if (unlikely(cpu->singlestep_enabled)) { + /* + * After processing the exception, ensure an EXCP_DEBUG is + * raised when single-stepping so that GDB doesn't miss the + * next instruction. + */ + *ret = EXCP_DEBUG; + cpu_handle_debug_exception(cpu); + return true; + } } else if (!replay_has_interrupt()) { /* give a chance to iothread in replay mode */ *ret = EXCP_INTERRUPT; From patchwork Fri Jul 17 18:16:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 235748 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp1940582ilg; Fri, 17 Jul 2020 11:18:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwKaX9OKZveE7hNi9ICMLlli2Xr63Dq2XllrBt73F79q4tUbTkJjL6uRJE8X3UgaqaEDWfp X-Received: by 2002:a25:d1cf:: with SMTP id i198mr17220079ybg.406.1595009938919; Fri, 17 Jul 2020 11:18:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595009938; cv=none; d=google.com; s=arc-20160816; b=FOrpm9FSrhUSdMrN8+6IVhTFMZrpilnQmQv9yb3W9Lf4OqqPe+maJws1XIxfgNeNw5 mS3nh+VkXEy8iglAXFFToJuuL6wiKTFguFr58rAPoGHPkGpaNSsftkDbtpTfnnnvnVZ8 dG/bm99Ivsh/G8oq12NN7g9j8ekI6IEybQlI0t9gOZKuYDx7zUxmePtij7AjhuF5EyB/ e9l9FxizABc/8BtKJo16KwYvDWAvVsYsWtIX4ue3IyKZeiE58ZyIPFBkpOee3pjZJPAs FxC/EmoTSxbGpvw6ejIgmd9AG2u45zIoN+isOrQwew4/tjJpG2pyYOdihu05jk3+WsYv aLsw== 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=soz5/dc63AWvfYnTeEOXYkPjarLppwOrJCQsvAF2Sbw=; b=nQG8iEKLrII0JZvyjiqjoDHhpHjE8G/UZ+B/Eye2HDfSZF1tq5U+d+N11CiviMuCca KEvhvBOaP7pYW3Ind0+MxcPMzezIhNKJrW9T7G8v+fq34jkJea2ySlPNFRD5i0hSTKVc zmhpqU1KF0UPVgb/GFjtdx6MgaPHMeeRjy0e7qAe9yXtvSLsP8KZaYw+3o6P9yLlCris 4xuygHbs3/tAIzkcctXUInPXMOdcJ0BXxM0ymXYW3fKuLC43jpPc2UmnV6WDiv4LsFYa 6SBE6nK/cwbLwIi+SyrTZtD5Duk+gtNGiSOkn5bk/fHaEqF5DnyMR76sbjJkCO4Rdv7p 4hvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gtEOIcjc; 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 i68si9507260ybg.464.2020.07.17.11.18.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Jul 2020 11:18: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=gtEOIcjc; 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]:41436 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jwUwk-0002f5-DA for patch@linaro.org; Fri, 17 Jul 2020 14:18:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37092) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwUuP-0008U6-1i for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:33 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:38896) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jwUuM-0003HK-Un for qemu-devel@nongnu.org; Fri, 17 Jul 2020 14:16:32 -0400 Received: by mail-pl1-x633.google.com with SMTP id m16so5792005pls.5 for ; Fri, 17 Jul 2020 11:16:29 -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=soz5/dc63AWvfYnTeEOXYkPjarLppwOrJCQsvAF2Sbw=; b=gtEOIcjcSir6uFvFnTXVDiyfze6bhdwMBkKx2ZxGa1H7E9PSk6uAFCNXuVNEVUm1lU a91XLoqcSnUN6/wK8SPhT1VpCiguqm8uRiEqNXpwRC1XOB2xAwy76DXUnFFBLkcGaZtK 89jzGTEsufPI4cwSp7DqtDFrAnQ3oef738QHIEaV5exRLdti1Hbp3c96WpsxJpFQdWj4 k6LvLDlDxOH2WlhWGEsQ9O+ex11Uk/xzEhXk4Hgnu8uThqvN3Ppgd3Ech4x/ax8B/pRd ER/9n9ub4asA14dCSAdIMEG+JsRlxeITYDzOyX7XdrmxM6kXR/LN2SMRIbO/0dWdd2mb fjig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=soz5/dc63AWvfYnTeEOXYkPjarLppwOrJCQsvAF2Sbw=; b=dBw3Tjkn7ckfkEyTs/F5fPyFuLW8obPo225nmx2VH/Mdb66LDxJTGuQxEVgXGsStNQ Xjox4tPm69C1HgcxcYKkStWcsa5a7csSdnTSMNw8wN382V23dJ2L29gQahhUTzHuyB9r RKBZALdd53n4wPSTL7Zmr1p0jzosiJ4SYOnJYiu7sdGw5PjzdPivSfH4a31/gzspmod7 wPeExavkPI1rSYBlvWvslhl7f68oh5SPadQIOwk0CWbVFeA5EPnBYPwvqbmzVDHqq+/O Z5ddqY9xrptt5KuY0xl01cGym5o3hSJN1ZWDO3efHq3EST+kbhH7EfZYsAqxRJLm15Dq Pxfg== X-Gm-Message-State: AOAM533N7Ab6B/at1TgqPFFKigpRt5NARvABw+bVQVxyR1xZd3/4qUMi uBjzl/t/K/zLSIC/M5xxOIfH6kUYAks= X-Received: by 2002:a17:902:be06:: with SMTP id r6mr8129071pls.143.1595009788686; Fri, 17 Jul 2020 11:16:28 -0700 (PDT) Received: from localhost.localdomain (216-160-65-90.tukw.qwest.net. [216.160.65.90]) by smtp.gmail.com with ESMTPSA id r7sm8698578pgu.51.2020.07.17.11.16.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2020 11:16:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL for-5.1 3/3] tcg/cpu-exec: precise single-stepping after an interrupt Date: Fri, 17 Jul 2020 11:16:23 -0700 Message-Id: <20200717181623.2742758-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200717181623.2742758-1-richard.henderson@linaro.org> References: <20200717181623.2742758-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Luc Michel Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" When single-stepping with a debugger attached to QEMU, and when an interrupt is raised, the debugger misses the first instruction after the interrupt. Tested-by: Luc Michel Reviewed-by: Luc Michel Buglink: https://bugs.launchpad.net/qemu/+bug/757702 Message-Id: <20200717163029.2737546-1-richard.henderson@linaro.org> Signed-off-by: Richard Henderson --- accel/tcg/cpu-exec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.25.1 diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c index 6a3d3a3cfc..66d38f9d85 100644 --- a/accel/tcg/cpu-exec.c +++ b/accel/tcg/cpu-exec.c @@ -588,7 +588,13 @@ static inline bool cpu_handle_interrupt(CPUState *cpu, else { if (cc->cpu_exec_interrupt(cpu, interrupt_request)) { replay_interrupt(); - cpu->exception_index = -1; + /* + * After processing the interrupt, ensure an EXCP_DEBUG is + * raised when single-stepping so that GDB doesn't miss the + * next instruction. + */ + cpu->exception_index = + (cpu->singlestep_enabled ? EXCP_DEBUG : -1); *last_tb = NULL; } /* The target hook may have updated the 'cpu->interrupt_request';