From nobody Wed May 15 09:04:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561360340; cv=none; d=zoho.com; s=zohoarc; b=noNdgElD4gZcEVG/kZArceOIE8O34FBwbwhAPZRi6z6/tI4Qzqf0JFG+g+wzg32tKw5BGq1bcoeccDlkjEbCOOSd8UO6C648HAYnbRZOgY+oGnT586i3BJXon4Qj4Q70r94Cd1+haqVvZI7PwXT2V8/cmrpF/Y6auFhpN/FhKxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561360340; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=ZxnEyBJkO1l9C5XKeKfb1KVtyGNdB4oey5fATG2S2QU=; b=iprHb0gtDS+g7HpCNK/n6dmQ4ScMmQHBwGq8slrWLM6yqfmOYMlkEi/z0nBCZ0osm2KsOinMWt8RBgHeIDyL8WuegHOKgfAIa3fngblfgQYphWNFpOR5EAIT9JRnrPLSs6CSS0OpFxstxPvYt2VWnjHLIJPepw+xerI3cg0BwiQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561360340629750.0526409388059; Mon, 24 Jun 2019 00:12:20 -0700 (PDT) Received: from localhost ([::1]:48398 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ95-0008N7-RV for importer@patchew.org; Mon, 24 Jun 2019 03:12:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50254) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ6F-0006zf-JL for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJ6E-0007dg-HR for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:11 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:41315) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJ6E-0007bs-76 for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:10 -0400 Received: from localhost.localdomain ([178.239.76.114]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MeCxj-1iGYul3wZz-00bHed; Mon, 24 Jun 2019 09:04:00 +0200 From: David Brenken To: qemu-devel@nongnu.org Date: Mon, 24 Jun 2019 09:03:35 +0200 Message-Id: <20190624070339.4408-2-david.brenken@efs-auto.org> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20190624070339.4408-1-david.brenken@efs-auto.org> References: <20190624070339.4408-1-david.brenken@efs-auto.org> X-Provags-ID: V03:K1:GfeyzLucv3vXouiJizBMI0y7u6R2dREfa1W2rp2f9kbBDSoev0T PcmPcA8Qx6vhsoSWqPcZr8vlwyR1lZICKoTjmGQVH81aUNNmmKRmHmfC+rYdS93zgu5clg5 WjapadcFXIXprJzMWS1niSPDy7rqHnR+02zTykNl9tlKz9Oa0BJo50+OQUQ8fkbjDX73bwS gJJ/DLxfC7IqapZ9iFtaA== X-UI-Out-Filterresults: notjunk:1;V03:K0:T/0rAzzNjBc=:RvB6ixjCx/nDpC3oZUPAIN 517uELng0O8GuuKQZLxFLexcJDCGX9K/kfumeeSh7gnaz62oLxEcxDNKqNtAxkiRO8rwJbHrI 2cneoADf7MQzHEZ5ilOUsxJGiS4afbwXV+m8ombcE7dQWkNac7ZIxduj9z2EaOICTIJS+Ykh0 V0xVZ4sNE9E9jwq3d/iu2sEMpzIp9VI1sjwJ1faE/EEnP4B21qthQXrh4vqqk/VqoxqgpLf3W Nb62+y/ZkVeOfgdP9YfqSHgeJXC0wwYRh7QnwPE/dEcl4LpksGukk4H3BEF9OLzAt9I0U6yTR bsHSGvr8vadshN9eVTbsmyTQHna4vcvHN3FCHknIUc/hf3Ln+ZO89b/x8nxA0JrShqEw2zjsX w7YOHuZeC/upOgHMFj8jsb4xEsSm+6Tmke5uKXFuX/YH3tPqnwXieuZfqjSzFIjZ7nv27elT5 J5qls4Gfix6EpOTiR+5U4MZ8aeYlHELMzYx/xSoFiBKcxX4ChVRBhVnvW84xTvZnLHKSfuql8 ZTWmqjWBahNH/yf75w1y9gP6WTAGV/CDQng+lKjF6ZxEYutEUU+VpNpKc12z555g1UQ1aNARN O6bQwLRRfhrQzK4a1jwJZWwbg1OlV63fcVHIPeIacCi/ZvzodBzjj+QFzQeDCLh8YTIpYBQme usYzl5KmpIej/8bMfym5m8hFeAbmmEPFxs7k+UEA5X2ajUcbvNjypNRb4CHIrtxnBrRry7/ff H44BlD70DWHws2Npn/U3YoL8WeIQc3/TB7DV+hJ/u80Gee+eBpR64Es9tGY= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.134 Subject: [Qemu-devel] [PATCH v3 1/5] tricore: add FTOIZ instruction 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: kbastian@mail.uni-paderborn.de, Lars Biermanski , Georg Hofstetter , David Brenken , Robert Rasche , Andreas Konopik Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Brenken Signed-off-by: Andreas Konopik Signed-off-by: David Brenken Signed-off-by: Georg Hofstetter Signed-off-by: Robert Rasche Signed-off-by: Lars Biermanski Reviewed-by: Bastian Koppelmann --- target/tricore/fpu_helper.c | 25 +++++++++++++++++++++++++ target/tricore/helper.h | 1 + target/tricore/translate.c | 3 +++ 3 files changed, 29 insertions(+) diff --git a/target/tricore/fpu_helper.c b/target/tricore/fpu_helper.c index d8a6c0d25b..f079d9e939 100644 --- a/target/tricore/fpu_helper.c +++ b/target/tricore/fpu_helper.c @@ -303,6 +303,31 @@ uint32_t helper_itof(CPUTriCoreState *env, uint32_t ar= g) return (uint32_t)f_result; } =20 +uint32_t helper_ftoiz(CPUTriCoreState *env, uint32_t arg) +{ + float32 f_arg =3D make_float32(arg); + uint32_t result; + int32_t flags; + + result =3D float32_to_int32_round_to_zero(f_arg, &env->fp_status); + + flags =3D f_get_excp_flags(env); + if (flags & float_flag_invalid) { + flags &=3D ~float_flag_inexact; + if (float32_is_any_nan(f_arg)) { + result =3D 0; + } + } + + if (flags) { + f_update_psw_flags(env, flags); + } else { + env->FPU_FS =3D 0; + } + + return result; +} + uint32_t helper_ftouz(CPUTriCoreState *env, uint32_t arg) { float32 f_arg =3D make_float32(arg); diff --git a/target/tricore/helper.h b/target/tricore/helper.h index f60e81096b..16b62edf7f 100644 --- a/target/tricore/helper.h +++ b/target/tricore/helper.h @@ -111,6 +111,7 @@ DEF_HELPER_4(fmsub, i32, env, i32, i32, i32) DEF_HELPER_3(fcmp, i32, env, i32, i32) DEF_HELPER_2(ftoi, i32, env, i32) DEF_HELPER_2(itof, i32, env, i32) +DEF_HELPER_2(ftoiz, i32, env, i32) DEF_HELPER_2(ftouz, i32, env, i32) DEF_HELPER_2(updfl, void, env, i32) /* dvinit */ diff --git a/target/tricore/translate.c b/target/tricore/translate.c index 06c4485e55..5e1c4f54b9 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -6747,6 +6747,9 @@ static void decode_rr_divide(CPUTriCoreState *env, Di= sasContext *ctx) case OPC2_32_RR_UPDFL: gen_helper_updfl(cpu_env, cpu_gpr_d[r1]); break; + case OPC2_32_RR_FTOIZ: + gen_helper_ftoiz(cpu_gpr_d[r3], cpu_env, cpu_gpr_d[r1]); + break; default: generate_trap(ctx, TRAPC_INSN_ERR, TIN2_IOPC); } --=20 2.22.0.windows.1 From nobody Wed May 15 09:04:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561359993; cv=none; d=zoho.com; s=zohoarc; b=Z7kwaFH2cpYkat2RKyb2sakD8uDEuyGn9XsOKkX3Rb1fUbbm9DBJVU9m5mCky9S7Kr1QdsgDRmKt3/EAsdFj8XIKQSEK0fQaitkmNUtwM447CKda2KMLaZd/mfww7yQpiygO0B5b6CEMd4zlQJ5xNI9Wp8H13kRIUCsWLE+x+aA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561359993; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=EvIzo6db4SEXBhGS2TlCXUMJBXvBbrcSAT5Xvi4VFVo=; b=DYqxdg6LUHDhyqJYU4PnRVp9yhtRghYuCO9IhRPBmllXRWWP+XGbvqQz3+sjeAhdSpkvrMLSltmtn2jMuZk+6813Ulw+h47GVTbGo7swN7qKwM2+xDEEJiz3YAP3gUWzBCvVci187j7WnL/Qh/CxJC/O7ExMD2KTex3CPQJzyfk= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561359993651563.4194328461814; Mon, 24 Jun 2019 00:06:33 -0700 (PDT) Received: from localhost ([::1]:48372 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ3a-0004pf-Uw for importer@patchew.org; Mon, 24 Jun 2019 03:06:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48980) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ1N-0003bM-G2 for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJ1M-0002xk-3v for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:09 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:59567) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJ1L-0002vI-Kd for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:08 -0400 Received: from localhost.localdomain ([178.239.76.114]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M9Wqa-1hbz6b0PuW-005VKq; Mon, 24 Jun 2019 09:04:01 +0200 From: David Brenken To: qemu-devel@nongnu.org Date: Mon, 24 Jun 2019 09:03:36 +0200 Message-Id: <20190624070339.4408-3-david.brenken@efs-auto.org> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20190624070339.4408-1-david.brenken@efs-auto.org> References: <20190624070339.4408-1-david.brenken@efs-auto.org> X-Provags-ID: V03:K1:Z9+2iBbciBKCIS3KKIyY9wV/ZenbicUrCBy5QeDDpTv5Z2flY6q OsBq83+wEf88Tzkr15ufS0neXHAqByrO7sJegneKsR9kTFau4J6I2KAb0rYQgtrFygBQl2A LlAEi5ZpBYc6IWxcSmBvBRslZ8kZWuenRCBGzvQt/xeY5HKcIDMsxoiXLqJCVMZaV+Ki/zI r/OT25KM7frbpBKpnU3/A== X-UI-Out-Filterresults: notjunk:1;V03:K0:WdBCc6q1Mh4=:sY52BVC2OpkTPUiRM/eLD/ SKaQe2B1DyvAIQ5FT3ld0MiySI2/moYjfNC9BQp/S8V2o/3+E+vCDNOhP96HaSwFQh2mEzQ9/ CxKImcEa6FNrwAyZrKsRNpanS6F2xar7AvdAw57aVw4MNAlEyTPNOpHcmMb7+tDRd8Yesbqyk 3A2UqGMGId7uQYCteu6J+5PrccmYuasllhuGuq5Blaw+jB8aOHQAdaYzThSdo7lfPpO+xAP+v KRZIsjE+4K0DXTvOQkUVW58IVNokmtwfMpsvo4Y4BqhEzvMQrd6SPbhEyEMm4H7hQO2bceMJP y34/TUtmrYGXJLat7YENCIWWVrsWu8BsfbQdz4rbwNjuPk0ljCPmn0SZPMZNq1/Mfn5Huajkt mNgaYpHX4iE0bEP4bsng4wDsi+Ub2+0GbTroVWuAQd43oXYVBx14CdTB5NWaBL52+qhuC4guo czR95WYlVsyr4lpG8GfiHgjsOFsjFU/TbNm01Xd6pUbQs07JAj2biJO9NOLzFgN3gYR9DVCwc iRckTTjkkykMB0dlpHHhnpE9Ybl+QkagnR7A+ui1gam2WEwtwiea/g4oFPwJU/z/hSqrJAmD4 oMZcRVnNemP8hSFEihJeLB1BZUjEistCkg1znPebqewqhm9qQVJX1lwqP+wCaI/ZyfABEydfA dlJu+as1EZuE93YWVmU/yxMvUf+eGb+ab6I/RdNJF3ZbnydTEszuxpcIECBpml275eRmgYkc7 Skt0jGYx7zJunp668E4KG9NCkh48lcg4Ia35ngsKVIhnFtegrnWXZfx62AM= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.135 Subject: [Qemu-devel] [PATCH v3 2/5] tricore: add UTOF instruction 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: kbastian@mail.uni-paderborn.de, Lars Biermanski , Georg Hofstetter , David Brenken , Robert Rasche , Andreas Konopik Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Brenken Signed-off-by: Andreas Konopik Signed-off-by: David Brenken Signed-off-by: Georg Hofstetter Signed-off-by: Robert Rasche Signed-off-by: Lars Biermanski Reviewed-by: Bastian Koppelmann --- target/tricore/fpu_helper.c | 16 ++++++++++++++++ target/tricore/helper.h | 1 + target/tricore/translate.c | 3 +++ 3 files changed, 20 insertions(+) diff --git a/target/tricore/fpu_helper.c b/target/tricore/fpu_helper.c index f079d9e939..432079c8e2 100644 --- a/target/tricore/fpu_helper.c +++ b/target/tricore/fpu_helper.c @@ -303,6 +303,22 @@ uint32_t helper_itof(CPUTriCoreState *env, uint32_t ar= g) return (uint32_t)f_result; } =20 +uint32_t helper_utof(CPUTriCoreState *env, uint32_t arg) +{ + float32 f_result; + uint32_t flags; + + f_result =3D uint32_to_float32(arg, &env->fp_status); + + flags =3D f_get_excp_flags(env); + if (flags) { + f_update_psw_flags(env, flags); + } else { + env->FPU_FS =3D 0; + } + return (uint32_t)f_result; +} + uint32_t helper_ftoiz(CPUTriCoreState *env, uint32_t arg) { float32 f_arg =3D make_float32(arg); diff --git a/target/tricore/helper.h b/target/tricore/helper.h index 16b62edf7f..f1a5cb367e 100644 --- a/target/tricore/helper.h +++ b/target/tricore/helper.h @@ -111,6 +111,7 @@ DEF_HELPER_4(fmsub, i32, env, i32, i32, i32) DEF_HELPER_3(fcmp, i32, env, i32, i32) DEF_HELPER_2(ftoi, i32, env, i32) DEF_HELPER_2(itof, i32, env, i32) +DEF_HELPER_2(utof, i32, env, i32) DEF_HELPER_2(ftoiz, i32, env, i32) DEF_HELPER_2(ftouz, i32, env, i32) DEF_HELPER_2(updfl, void, env, i32) diff --git a/target/tricore/translate.c b/target/tricore/translate.c index 5e1c4f54b9..bd913d71a1 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -6747,6 +6747,9 @@ static void decode_rr_divide(CPUTriCoreState *env, Di= sasContext *ctx) case OPC2_32_RR_UPDFL: gen_helper_updfl(cpu_env, cpu_gpr_d[r1]); break; + case OPC2_32_RR_UTOF: + gen_helper_utof(cpu_gpr_d[r3], cpu_env, cpu_gpr_d[r1]); + break; case OPC2_32_RR_FTOIZ: gen_helper_ftoiz(cpu_gpr_d[r3], cpu_env, cpu_gpr_d[r1]); break; --=20 2.22.0.windows.1 From nobody Wed May 15 09:04:54 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561360342; cv=none; d=zoho.com; s=zohoarc; b=nM1z6rQaVy7WDAH6EtPYyif/PJjLf+18eZ7aqqOKJYtgrrL6P1+09Urlyr1dSzbDMUFRLbu+W7fw452+Zb574SUAy7VZCEyjmk5nJ//TROsKrJjZZR6CGw3kDMpI6OGDjRiZMzUMX8ul5zQ7X6d3PgrSbNmkiim1uRyT/PH8irU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561360342; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=fiztKS13/HxjjCUWqUsJ8HgMYgtg+3pLRKmjE6J0pfE=; b=ZuFSzoXGYEC/mhtQ3yPSu+gDdVRuUR0LpYmHMPyO3g5m/Ocao2vI9DmPgglLCmi54myCRk2A6o+j078FRs8H1IYEIFELaHYw9xhIeJOzhXDxDOnzQA8vYQGPgt7ewOFnPss4Ts/ziVe2eFF4mDC1ziNj/M0GWNLcHh7C5fZflVw= ARC-Authentication-Results: i=1; mx.zoho.com; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561360342938193.37910091578874; Mon, 24 Jun 2019 00:12:22 -0700 (PDT) Received: from localhost ([::1]:48396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ95-0008MS-EM for importer@patchew.org; Mon, 24 Jun 2019 03:12:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50271) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ6G-0006zl-T0 for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJ6F-0007eo-SM for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:12 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:44989) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJ6F-0007dt-Fn for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:09:11 -0400 Received: from localhost.localdomain ([178.239.76.114]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MV6G6-1i7FSR14Du-00SAuw; Mon, 24 Jun 2019 09:04:01 +0200 From: David Brenken To: qemu-devel@nongnu.org Date: Mon, 24 Jun 2019 09:03:37 +0200 Message-Id: <20190624070339.4408-4-david.brenken@efs-auto.org> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20190624070339.4408-1-david.brenken@efs-auto.org> References: <20190624070339.4408-1-david.brenken@efs-auto.org> X-Provags-ID: V03:K1:hSuO67HW8iwhV6aEdETuyui9FX5mpE0aQpS4aTqIp5AFIJNc7PO 7+lSMeMLpNkzBTDiRAE6smeYkoZ3IVcq3hKTuTeQ54G88Z8dwnPRpQ9xwGbSqz41ig8LICY kU05WggdY4RA7uouga9ENllaq547XirB3qUODfJkAhjgBn/8K/n0hhVtaCkBU8E1nF/es1N GzuXA2B2N+zIWMiL3cFlA== X-UI-Out-Filterresults: notjunk:1;V03:K0:7xnED3zjbIw=:dUFhgc+ft7gZ+T9Ra8hcD+ ECbNbt8YfhRp9oj+Pv9hGOnKbxhDF2PpOYOn3PMx2dWAF5O6AK//Q3II74lIlqzhYf7wecDic jv3om6pD0oIbl/MGEccT1vkOR+EvXOWl7zcxgamM/iA9SmmYorCIN3jjlPDoOFNjCoFX934hK DYlIadH84o0rUzf6LfbAswLNzo7fpSqFe0Zr2DJ3dUdkaXez597mEfU3RhnIMwa+aADxbgXvt I//uTXMReKKL7NVKps+brUDMH2ob2O+JVOoVvkzN7v/NQoFTXn6TXzoBrDTieenuIyQqdktun 3c6prFbbjkWvioM4ovhYI7FzgQNmNRfEbqin9C3+Et+vCx7IcapMiwYPth6a4OhkeXk5QzZbV fT4uC52YnBUhi37l/PXnvC5GZXOal27hRKwURtyfSs6nFE8JBbrowuK/5X+eOUxAhc8bT9smj 5vc46sGinRPB/Hs5EcrUQuyCtgq265zZNY51EWKWzk9+vMV3Jtq8tpSXFT0c8FUJltnk3cfk1 BptWiv2w7FVbEB14+GNyCd+/bNLu0a/0KQMDUDiDSPtELVE6JdyJmwlrgO9ZnH69IoUHTOFkV 7gDEF6jwsi8mU6E+Uc/HeBnEuznFSPWMs+jH7SFnxgCJBoyc3IsOP9XW+H0zOvmRA49p41LI4 AgBEIeDnaVp2h4ZBsgyV83gmPg15nS9QCv0s393IpIWcR0cj4LVyKomxpcClEMsJe0bkh49Yl K9kOC7qVizBf7Tyl0lutYmuGQfCexvAT6uDyQvG8iQyZA155SyDQV8XtrOY= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.135 Subject: [Qemu-devel] [PATCH v3 3/5] tricore: fix RRPW_INSERT instruction 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: kbastian@mail.uni-paderborn.de, Lars Biermanski , Georg Hofstetter , David Brenken , Robert Rasche , Andreas Konopik Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Brenken Signed-off-by: Andreas Konopik Signed-off-by: David Brenken Signed-off-by: Georg Hofstetter Signed-off-by: Robert Rasche Signed-off-by: Lars Biermanski Reviewed-by: Bastian Koppelmann --- target/tricore/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/tricore/translate.c b/target/tricore/translate.c index bd913d71a1..5d4febf1c0 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -7025,9 +7025,9 @@ static void decode_rrpw_extract_insert(CPUTriCoreStat= e *env, DisasContext *ctx) } break; case OPC2_32_RRPW_INSERT: - if (pos + width <=3D 31) { + if (pos + width <=3D 32) { tcg_gen_deposit_tl(cpu_gpr_d[r3], cpu_gpr_d[r1], cpu_gpr_d[r2], - width, pos); + pos, width); } break; default: --=20 2.22.0.windows.1 From nobody Wed May 15 09:04:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561360067; cv=none; d=zoho.com; s=zohoarc; b=YERYfxfIna2ErWsDcrurSWxu1zK52EklYdAoUdqe1FsCoCF4cuhM/WEkbBVE+CbkrKMKTGgMXvQQeKZFSazrNB3Y/jKwbr9BXUDZKkuTrhaEgK+0yEkwtFMSb3ng0XwWWGL/s4y2B6EDeHpBOuYsr5WBuRtEx6pJgXpcR0K7V7M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561360067; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=uIsxgPhsTnD/RUx9PuswB/aUvmw5wqgYATw92xxnzhE=; b=TvkyUC0bYMa1ztpxSS4O0IxZKWh9cAV4TD6cO9r/ddNV7yqYX5pnQhwj+UnczSjabXd7jMCPGLsev6YQ7KKAn/xoD9ZxlgOOuwY/5ohr3Vy9HDrjmEhCY/e5klGAxedb8usDGZ4r46fzI/aiZ+0g9IWodYWPLayXHNhcVpCgFM4= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561360067708779.3664423758371; Mon, 24 Jun 2019 00:07:47 -0700 (PDT) Received: from localhost ([::1]:48382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ4s-0006HX-Q3 for importer@patchew.org; Mon, 24 Jun 2019 03:07:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48978) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ1N-0003bL-FG for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJ1M-0002yA-Ek for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:09 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:35803) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJ1M-0002vD-0S for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:08 -0400 Received: from localhost.localdomain ([178.239.76.114]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MNss4-1hucx71jqK-00OHAy; Mon, 24 Jun 2019 09:04:01 +0200 From: David Brenken To: qemu-devel@nongnu.org Date: Mon, 24 Jun 2019 09:03:38 +0200 Message-Id: <20190624070339.4408-5-david.brenken@efs-auto.org> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20190624070339.4408-1-david.brenken@efs-auto.org> References: <20190624070339.4408-1-david.brenken@efs-auto.org> X-Provags-ID: V03:K1:FVHxqoyPRibZk3XOHiKt8ezdG1NbrIzZylsBo8rHEtpGeUdzxA3 u4OcezaZB4vfXJL30p8Q6MwVQw9SOcVux3xRhqMDhAc98/M+v11fppR2h06vGH3ehrVzY96 jIFR31qSqxr6tY87d6Dd1VWhqn5K/uFdeOR5QqmoQUZoYXpFRpvqhbhXeRYt+vqOvvx/1qf A3zydaysq+RiS/1AhvktQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:IQmxHDgft00=:T5yyQ1PbCBHm65Mi9vtfn/ k+LvZoo7nDELvbAUQwc8jogP6AHd32GehMuJ1cDDFTy2BcFFcrrYCiHSLEOaNFGvId4Z5oHbd Bo7UFDKICwflp6SqJ10ZCdS6PiO9s9rOW7Mp2nvQ+Pk0JvPr49dvsAsc4mGGeIedcr/k/F41e YkDvjwTUPOM4DXQBUdifwyi2IWiXfbPOIegkeC/iZHijcnNyioi4hR//USjfRnJZ7mNn0Y0yE KHg6eMlFXXIIw+yQIFGTy1MSr34gmAJkk650BRSRhT5ubCeVDfGvOpi4SOcnZwb3vnmbkMozF Xw5syZKJ6UO54QPjH7QJ5U3469rPVuvfLeHYoejtUAsEEfyW83Nshuhdlm+JK9t2TtVhss+Fr 0Y6w6ch4dqhANFp8Pr/M4g/G7tntfkAiHbe+fG3HcDmbxo/AGlnrNb1HpGR2JiviXwHGcQFQK 6BQp5d6bXl5SfLaP7gZ+4yzLY9Vs8IMnPaEyyoKWidbfUMA/yTttJ1UGvKjSVBSlCCuqc64+B NxQMxvbch8hdy2kxbcZRtHym60jIStaWQ+X7qu/VIiH4MjhdRcMeZnYlLJqsH3P2XU5dTUgp2 elA76dyTMJliS3LPfZvTMHO/mfAnaPI21N6hja/t4gz6w9B2b2dfmyO6lrVelr0uxr2iMEltv YvFbw1P3+E+C04CRwe6rMIt0ctaf8EvpBPFt6ATSQWe2xZlfx2ZE7yX6o/fCLb4or/OAuA2Ld dIybsLVSGj+ZzNItnXOHiXT4B1zoeNvRxS8wQwjJERB1s+ENf4GslDpqC8I= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.130 Subject: [Qemu-devel] [PATCH v3 4/5] tricore: sync ctx.hflags with tb->flags 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: kbastian@mail.uni-paderborn.de, Lars Biermanski , Georg Hofstetter , David Brenken , Robert Rasche , Andreas Konopik Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Georg Hofstetter Signed-off-by: Andreas Konopik Signed-off-by: David Brenken Signed-off-by: Georg Hofstetter Signed-off-by: Robert Rasche Signed-off-by: Lars Biermanski Reviewed-by: Bastian Koppelmann --- target/tricore/translate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/tricore/translate.c b/target/tricore/translate.c index 5d4febf1c0..c79566e56a 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -8810,6 +8810,7 @@ void gen_intermediate_code(CPUState *cs, TranslationB= lock *tb, int max_insns) ctx.singlestep_enabled =3D cs->singlestep_enabled; ctx.bstate =3D BS_NONE; ctx.mem_idx =3D cpu_mmu_index(env, false); + ctx.hflags =3D (uint32_t)tb->flags; =20 tcg_clear_temp_count(); gen_tb_start(tb); --=20 2.22.0.windows.1 From nobody Wed May 15 09:04:54 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561359993; cv=none; d=zoho.com; s=zohoarc; b=aNOZDzRsOz/6SzO0irrOi26fUKKQK36sqc98VzpBimGKmGMDNv/8l4SLQlgDDC45N+zrRahco3JHO9r7WMUwZzv33dpGEfjbJBGkHTpwYWqcmYD0UYJWzuIBB4c5lARisGvJK9IOXCrf6GH944kD6V1L3pzUnEkCc8knb+bb5gE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561359993; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=+l4TpUfF+kePM6+Irh78CGjpczMd7MszWMgvq4zl7kc=; b=nO9aU/H7rv6dI253TA6f/y6z5YBUEignwE9mtolc4TpKi9PigmMRmu7qo/wOQRRBUyKFw+kANOP/i/PWB/IuYboFRHM3fI2r+oen15NmQoBQJaMZu+WW0NDgUloDn1XLJXxqmghLiVtd/0TETvjCy2XQPJRM+MnGx9/jHtzI3sw= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561359993658916.0861987931894; Mon, 24 Jun 2019 00:06:33 -0700 (PDT) Received: from localhost ([::1]:48374 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ3b-0004wY-I5 for importer@patchew.org; Mon, 24 Jun 2019 03:06:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48992) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJ1O-0003bN-7V for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJ1M-0002yS-OK for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:10 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:44245) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJ1M-0002xO-En for qemu-devel@nongnu.org; Mon, 24 Jun 2019 03:04:08 -0400 Received: from localhost.localdomain ([178.239.76.114]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N0G5n-1iTfvC2Rxn-00xKk7; Mon, 24 Jun 2019 09:04:01 +0200 From: David Brenken To: qemu-devel@nongnu.org Date: Mon, 24 Jun 2019 09:03:39 +0200 Message-Id: <20190624070339.4408-6-david.brenken@efs-auto.org> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20190624070339.4408-1-david.brenken@efs-auto.org> References: <20190624070339.4408-1-david.brenken@efs-auto.org> X-Provags-ID: V03:K1:vhCVLqHR3s0QsxJSoDSjOStroo4Z0/vVx4pR7Gwz3n0a6lYcJ9K d4fdcEmfrbve4SRc5t68IqeShVJMa2xQrrcLWo6K0YIXTj5HCQMyNapZPjYD+ytR4DcetMY QzJaCuBhJJdOFeGkb6XnzE1r3hXgZgSN9GQo0RJn+L9loJftmJysg/gi+1Yy9B182Yrhgk4 LQaRczjM2l7rgHwk0pnTQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:ebG4iHkKY/c=:Pl6dL43MS0GLKf1x0/vs3p Ap+DEMqzJOqJyiXrmz3d+X6NSwaeJ8Qd9OoKwE590PnPs4CzRNdF9F9AXlwGECEHvhL/EH3pl 5y9suXP+93wbDYruLpXkyUzLUg61HHUwJUZaiIrV9CccYeU7Dkk7Rpx4b5IRMN1AvQD0L+rC5 TIFf/oYSh9UdP2fRBfcNIoH+lqhMOtj6mHgMd2miRfW3HKM62vK0ASXWff2g3ckuEObpCQJ8z kREfLKpO0Tb0bQuhEVWZflL9dYGZX3h+4tBcg5p1cbivBP3Th6vCpPHGGlNcFqSBnlpnXbRiS ygs39dePRokTEUaY0/yHeTO0w0WK7zKFVLizq+ns1t62fJCyZNmfD4SUTyAl3jCGD+3bmOc0m 3Y7amVgrHepy9rhWJJN3657WYvA5Xj7fetuSjQt0oh/kCYr/64c2Uv/LXQADugS8h13Dkdzr8 q6wBe+EvhvNUK+q1CPjbHRyW7frj1fvIsT48xU8iMF36h//k47AoREbVMBY9bJ30HNKe6eKyB /r1wfU97uH5VABAqwBMlNphR6gJNMlQ5sjuOWQBMYAvxufmTZ0TB9/3YlacIiLVDiiGYqJwgt deox807iB0cqOeQdPAWoJmbyIwtnTVYkWXA5MxCPhPjz/3U58+qXVcNP/rhAQBCD2vr6Vob3W YbAbggpd5Mthm8vULTp7svfi/PzvxzNqytjaEHsyDBBIUTjWgDCUhC81aZSszb0mjOIjEnBB2 r4smIu51UvKIGIrV60ozrC7e1w4P6l5mjjPtScYaYjjj5Y0bgtV8fetd9eE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.130 Subject: [Qemu-devel] [PATCH v3 5/5] tricore: add QSEED instruction 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: kbastian@mail.uni-paderborn.de, Lars Biermanski , Andreas Konopik , Georg Hofstetter , David Brenken , Robert Rasche , Andreas Konopik Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Andreas Konopik Signed-off-by: Andreas Konopik Signed-off-by: David Brenken Signed-off-by: Georg Hofstetter Signed-off-by: Robert Rasche Signed-off-by: Lars Biermanski --- target/tricore/fpu_helper.c | 84 +++++++++++++++++++++++++++++++++++++ target/tricore/helper.h | 1 + target/tricore/translate.c | 3 ++ 3 files changed, 88 insertions(+) diff --git a/target/tricore/fpu_helper.c b/target/tricore/fpu_helper.c index 432079c8e2..0f5e1a3eb0 100644 --- a/target/tricore/fpu_helper.c +++ b/target/tricore/fpu_helper.c @@ -24,6 +24,7 @@ =20 #define QUIET_NAN 0x7fc00000 #define ADD_NAN 0x7fc00001 +#define SQRT_NAN 0x7fc00004 #define DIV_NAN 0x7fc00008 #define MUL_NAN 0x7fc00002 #define FPU_FS PSW_USB_C @@ -32,6 +33,9 @@ #define FPU_FZ PSW_USB_AV #define FPU_FU PSW_USB_SAV =20 +#define float32_sqrt_nan make_float32(SQRT_NAN) +#define float32_quiet_nan make_float32(QUIET_NAN) + /* we don't care about input_denormal */ static inline uint8_t f_get_excp_flags(CPUTriCoreState *env) { @@ -166,6 +170,86 @@ uint32_t helper_fmul(CPUTriCoreState *env, uint32_t r1= , uint32_t r2) =20 } =20 +/* + * Target TriCore QSEED.F significand Lookup Table + * + * The QSEED.F output significand depends on the least-significant + * exponent bit and the 6 most-significant significand bits. + * + * IEEE 754 float datatype + * partitioned into Sign (S), Exponent (E) and Significand (M): + * + * S E E E E E E E E M M M M M M ... + * | | | + * +------+------+-------+-------+ + * | | + * for lookup table + * calculating index for + * output E output M + * + * This lookup table was extracted by analyzing QSEED output + * from the real hardware + */ +static const uint8_t target_qseed_significand_table[128] =3D { + 253, 252, 245, 244, 239, 238, 231, 230, 225, 224, 217, 216, + 211, 210, 205, 204, 201, 200, 195, 194, 189, 188, 185, 184, + 179, 178, 175, 174, 169, 168, 165, 164, 161, 160, 157, 156, + 153, 152, 149, 148, 145, 144, 141, 140, 137, 136, 133, 132, + 131, 130, 127, 126, 123, 122, 121, 120, 117, 116, 115, 114, + 111, 110, 109, 108, 103, 102, 99, 98, 93, 92, 89, 88, 83, + 82, 79, 78, 75, 74, 71, 70, 67, 66, 63, 62, 59, 58, 55, + 54, 53, 52, 49, 48, 45, 44, 43, 42, 39, 38, 37, 36, 33, + 32, 31, 30, 27, 26, 25, 24, 23, 22, 19, 18, 17, 16, 15, + 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 +}; + +uint32_t helper_qseed(CPUTriCoreState *env, uint32_t r1) +{ + uint32_t arg1, S, E, M, E_minus_one, m_idx; + uint32_t new_E, new_M, new_S, result; + + arg1 =3D make_float32(r1); + + /* fetch IEEE-754 fields S, E and the uppermost 6-bit of M */ + S =3D extract32(arg1, 31, 1); + E =3D extract32(arg1, 23, 8); + M =3D extract32(arg1, 17, 6); + + if (float32_is_any_nan(arg1)) { + result =3D float32_quiet_nan; + } else if (float32_is_zero_or_denormal(arg1)) { + if (float32_is_neg(arg1)) { + result =3D float32_infinity | (1 << 31); + } else { + result =3D float32_infinity; + } + } else if (float32_is_neg(arg1)) { + result =3D float32_sqrt_nan; + } else if (float32_is_infinity(arg1)) { + result =3D float32_zero; + } else { + E_minus_one =3D E - 1; + m_idx =3D ((E_minus_one & 1) << 6) | M; + new_S =3D S; + new_E =3D 0xBD - E_minus_one / 2; + new_M =3D target_qseed_significand_table[m_idx]; + + result =3D 0; + result =3D deposit32(result, 31, 1, new_S); + result =3D deposit32(result, 23, 8, new_E); + result =3D deposit32(result, 15, 8, new_M); + } + + if (float32_is_signaling_nan(arg1) || result =3D=3D float32_sqrt_nan) { + env->FPU_FI =3D 1 << 31; + env->FPU_FS =3D 1; + } else { + env->FPU_FS =3D 0; + } + + return (uint32_t) result; +} + uint32_t helper_fdiv(CPUTriCoreState *env, uint32_t r1, uint32_t r2) { uint32_t flags; diff --git a/target/tricore/helper.h b/target/tricore/helper.h index f1a5cb367e..b64780c37d 100644 --- a/target/tricore/helper.h +++ b/target/tricore/helper.h @@ -109,6 +109,7 @@ DEF_HELPER_3(fdiv, i32, env, i32, i32) DEF_HELPER_4(fmadd, i32, env, i32, i32, i32) DEF_HELPER_4(fmsub, i32, env, i32, i32, i32) DEF_HELPER_3(fcmp, i32, env, i32, i32) +DEF_HELPER_2(qseed, i32, env, i32) DEF_HELPER_2(ftoi, i32, env, i32) DEF_HELPER_2(itof, i32, env, i32) DEF_HELPER_2(utof, i32, env, i32) diff --git a/target/tricore/translate.c b/target/tricore/translate.c index 5d4febf1c0..6d3f9e57b6 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -6753,6 +6753,9 @@ static void decode_rr_divide(CPUTriCoreState *env, Di= sasContext *ctx) case OPC2_32_RR_FTOIZ: gen_helper_ftoiz(cpu_gpr_d[r3], cpu_env, cpu_gpr_d[r1]); break; + case OPC2_32_RR_QSEED_F: + gen_helper_qseed(cpu_gpr_d[r3], cpu_env, cpu_gpr_d[r1]); + break; default: generate_trap(ctx, TRAPC_INSN_ERR, TIN2_IOPC); } --=20 2.22.0.windows.1