From nobody Fri Apr 26 22:13:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 148719365088656.80561291142692; Wed, 15 Feb 2017 13:20:50 -0800 (PST) Received: from localhost ([::1]:43085 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ce70J-0005Ux-R5 for importer@patchew.org; Wed, 15 Feb 2017 16:20:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35870) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ce6zE-000549-LW for qemu-devel@nongnu.org; Wed, 15 Feb 2017 16:19:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ce6zA-0003uu-E2 for qemu-devel@nongnu.org; Wed, 15 Feb 2017 16:19:40 -0500 Received: from mail-pg0-x242.google.com ([2607:f8b0:400e:c05::242]:35867) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ce6zA-0003th-9H; Wed, 15 Feb 2017 16:19:36 -0500 Received: by mail-pg0-x242.google.com with SMTP id 75so12074764pgf.3; Wed, 15 Feb 2017 13:19:34 -0800 (PST) Received: from bigtime.twiddle.net ([1.129.21.135]) by smtp.gmail.com with ESMTPSA id k76sm9226631pfg.42.2017.02.15.13.19.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Feb 2017 13:19:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=i3gHTES7AdwbcRM8CRwXSyJH6ySO9lo9xUwsTuVIVeQ=; b=nFlDVxHUH8KNdE2aTB1Rycj1C6yEjfO1pRvb9YUS0mXmuhSDS+aOUarZZYhNlYuYcm o0pufhlH1xK3zhQZ+RsE7V9H48Pc/ccXIgqVUjeMbDUzT1ns8mySyd+xgH2nIgLqT3ZZ iGaQ2486lMyrRQJ3inzZd7/kIf8jqKNHwkMK5Sn9hH90/cuDjhTP/pNvyLoOUpIfxW+9 OsngKnKda18Thqeh+En0YG4udFd4Llx/g++PYy4YZF0pZo3pizNTkTbP5lQD/1vq+h/v E63i0NKYNyqV+RHq8v0TTOa7ZYBlQMia1Ab4B8xhG13gJ2Ym+Pny+WDK42+nPo+L1Rdi wOmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=i3gHTES7AdwbcRM8CRwXSyJH6ySO9lo9xUwsTuVIVeQ=; b=RoSWOsxlPHkqusbYNUCiwuGbP7adUomAVozgj8h2nQgRNnVVabu3gyGBgy5EwUAM3N QTiq5XtaBywZpRokaJSsENgLc43GYyVfK+9uuMBW6ssoyEwAIXnwyOIm6EKCxcfHvD2O LoJMaKnqG9uqo+Kkn5jVM6NqHQ5Ok8/Ox4ZLPvHIUCvGxIhyigVyNbetPBvLaG1eoTjA Ur9myAfqqXM5Yec8+0tjsujA/LOgodFTwDgcPT6TfVC6QzwvgdjoP79U4W5WIG3vGzB3 y6r4GCQ7BBCcv5td4BfZVl240z+L+J+oJQc7ye3eFi6oXofc+1Rhhs9r5t+y2iadINJ5 k+MQ== X-Gm-Message-State: AMke39mJljwyz0Uk32xOQCIUvzWKZ2SZzJEqCzVyGJdQgqlEmMRosIPA82/dhuYhViKcow== X-Received: by 10.99.65.67 with SMTP id o64mr40953365pga.119.1487193573886; Wed, 15 Feb 2017 13:19:33 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 16 Feb 2017 08:19:25 +1100 Message-Id: <20170215211925.8614-1-rth@twiddle.net> X-Mailer: git-send-email 2.9.3 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400e:c05::242 Subject: [Qemu-devel] [PATCH v2] target/sparc: Restore ldstub of odd asis X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.cave-ayland@ilande.co.uk, qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fixes the booting of ss20 roms. Cc: qemu-stable@nongnu.org Reported-by: Michael Russo Tested-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- v2: Update tags. --- target/sparc/translate.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 655060c..aa6734d 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2448,8 +2448,31 @@ static void gen_ldstub_asi(DisasContext *dc, TCGv ds= t, TCGv addr, int insn) gen_ldstub(dc, dst, addr, da.mem_idx); break; default: - /* ??? Should be DAE_invalid_asi. */ - gen_exception(dc, TT_DATA_ACCESS); + /* ??? In theory, this should be raise DAE_invalid_asi. + But the SS-20 roms do ldstuba [%l0] #ASI_M_CTL, %o1. */ + if (parallel_cpus) { + gen_helper_exit_atomic(cpu_env); + } else { + TCGv_i32 r_asi =3D tcg_const_i32(da.asi); + TCGv_i32 r_mop =3D tcg_const_i32(MO_UB); + TCGv_i64 s64, t64; + + save_state(dc); + t64 =3D tcg_temp_new_i64(); + gen_helper_ld_asi(t64, cpu_env, addr, r_asi, r_mop); + + s64 =3D tcg_const_i64(0xff); + gen_helper_st_asi(cpu_env, addr, s64, r_asi, r_mop); + tcg_temp_free_i64(s64); + tcg_temp_free_i32(r_mop); + tcg_temp_free_i32(r_asi); + + tcg_gen_trunc_i64_tl(dst, t64); + tcg_temp_free_i64(t64); + + /* End the TB. */ + dc->npc =3D DYNAMIC_PC; + } break; } } --=20 2.9.3