From nobody Wed Feb 4 10:33:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@rwth-aachen.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1767709605; cv=none; d=zohomail.com; s=zohoarc; b=S6+Z+JlZQQc7lxaCJmveM51J18V985QvmcmvMJQ59hKy3E1qvbZvn8Qe7UnAr/bQtF/muBCto6tlY0t+gByIAZsyKRGKX0w2/fZ0uYRUr3Pzoj1y6hQuPN+wWHu4Msj9ksBQjhGuRVypT5cNa+PUqTOcD2vTyqtM3fCzWKpoMGQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767709605; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=bW1T9sAUqOJ7C4ATFaNJGxlZgJp3R67WhZHuNvbQQTo=; b=Zr5CWVXSskf4Q0Jf3lqvnyXfiEtQ7rctWyZvWD6D1Sr7fmH7jZEGoM6PVVQS8SxiA7zPu9AP2fZgnq7b8D31PHtLJVlaKBj+6sF00mcptYnO720a/CJQ/fbciQLg1l/ZVYtsAL5+yVUXs48oGY0CP17FTIf7l5VTsk/ddi+Vwlc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@rwth-aachen.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767709605482633.3714256875683; Tue, 6 Jan 2026 06:26:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vd810-0000VZ-6l; Tue, 06 Jan 2026 09:26:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd7LK-0001Bo-Fq for qemu-devel@nongnu.org; Tue, 06 Jan 2026 08:43:26 -0500 Received: from mail-out-1a.itc.rwth-aachen.de ([2a00:8a60:1:e501::5:44]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd7LH-0006Qb-DS for qemu-devel@nongnu.org; Tue, 06 Jan 2026 08:43:26 -0500 Received: from rwthex-s2-a.rwth-ad.de ([134.130.26.154]) by mail-in-1a.itc.rwth-aachen.de with ESMTP; 06 Jan 2026 14:43:18 +0100 Received: from mkroening-ud22.fritz.box (2a0a:a54a:c75:0:1df6:38e8:59e6:777c) by rwthex-s2-a.rwth-ad.de (2a00:8a60:1:e500::26:154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Tue, 6 Jan 2026 14:43:17 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rwth-aachen.de; i=@rwth-aachen.de; q=dns/txt; s=20240516-RWTH; t=1767707004; x=1799243004; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=73vdagFbM4n4jkzeLYOfs3VbsPjQUH/AUGdhSoTmT20=; b=rrMSFNSODa5EoT6KkDyYyuAkRdat4f16Wuscax/H5DJq/Hbc/tqaeyQE fVtOd/PgyI0Empp1eJwyUbUYRjdUKi6AOliSsqT5HZkW+9D/jaaMaD9/V gwdildNqAgC5IRMzVrUsJjTO5i21VmQNAYw8CmnNRdewxKXRVAdJRAUn/ 9aeJVxifYcHDDYY/ek9es9wv5cZg8nESgmGYL8Zx0CTOyY5mjW8ua/oWI OgksR96BqkIStxdaNbTET4972TLJNKZefK7rdxkKfFT4v2DORMNNWbGrH BY6LOkD4Qn8usU8bhUYpgNSyfbGJYHQWtM2O8vxgosJELJf4q3QVvpMST A==; X-CSE-ConnectionGUID: UOMlYq4fQK+PghE2fu9AtA== X-CSE-MsgGUID: SCv7MWGnSuWukpVkt2OgSg== X-IPAS-Result: =?us-ascii?q?A2BNAwByEF1p/5oagoZagQmEJ4JbhFeyEA8BAQEBAQEBA?= =?us-ascii?q?QEIAVEEAQGFBwKMbCg4EwECBAEBAQEDAgMBAQEBAQEBAQEBAQsBAQYBAQEBA?= =?us-ascii?q?QEGBYEhhglThlsGIw8BRhAlAiYCAkYQBg4FgwKCdLBOgTKBAYR82gSBHwELC?= =?us-ascii?q?QEKAYEKLohTAYFvhACEeIJPgUqCPXaFEIMOgmkEgzCLRwaJQwk/gQJ4LAFVE?= =?us-ascii?q?w0KCwcFYYEFAzUSKhVuMh2BIz4XPmMhCQWCbAaJAA+JWoEVAwsYDUgRLDcUG?= =?us-ascii?q?0MBbgeQCoJ3gQ6CBmOXG69WB4I4gWehcgEyl2CTCy6YWKRZhD0CBAIEBQIYg?= =?us-ascii?q?X+BfnGDNlIXAg+OLRbGdXcCOgIHAQoBAQMJgjmRLgEB?= IronPort-Data: A9a23:xPvMNKx80DjcFYzOGVx6t+dFxyrEfRIJ4+MujC+fZmUNrF6WrkVUy WIWDG+CP6qPNzP9eNFyboS3oxgG6sXcxoNnSVdupFhgHilAwSbn6XV1DW+tZX/Ifp2bJK5Dx 59DAjUVBJlsFhcwnj/0bP656yI6jf3ULlbFILasEjhrQgN5QzsWhxtmmuoo6qZlmtHR7zml4 LsemOWBfgX8s9JIGjhMsfzb8Usx5K2aVA4w5zTSW9ga5DcyqFFIVPrzFYnpR1PkT49dGPKNR uqr5NmR4mPD8h4xPcium7D9f1diaua60d+m0yc+twCK23CulwRqukoJHKN0hXR/111lq+tMJ OBl7vRcfy90ZPGWyLRFO/VvO3oW0aVuoNcrKJUk2CCZ5xWun3DEm52CAKyqVGEV0r4fPI1Ay RAXAA0qSxSynr64+ZH4cuZsq54tMZjCIKpK7xmMzRmBZRonaYrcX6XH9ZpDhnI5wNpRAfabb sZfZTcHgBboOkYTfA5MUNRkwqHx2yWXnz5w8Tp5oYIy6nLPzQo306LqPdzUfNOiSMJTk1yT4 HjZ42S8CxgRNNGZjzaImp6prraRzXOnA99LTNVU8NZRq0PM41M8DiYLaka4uce6lhSZVOlQf hl8Fi0G6PJaGFaQZsDwWgD9rHOasxo0Xd1WHOsnrgaXxcL86gKUFi4OQzhHZdEOsM4wTCYtk FiTkLvU6SdHqqKJSX+Ns6zO6Dr0IzcJLSoLaWkIQGPp/uXenW36tTqXJv4LLUJ/poSd9e3Yq 9xSkBUDug== IronPort-HdrOrdr: A9a23:k/U2q6sBPXWjhZIQDNbV39Pl7skDgNV00zEX/kB9WHVpm5Sj5q STdYcgpHjJYVcqKQwdcL+7WJVoLUmwyXcx2/h1AV7AZnibhILLFvAA0WKK+VSJcEfDH6xmpM VdmsNFZ+EYeGIasS+M2meF+rgbrOVvu5rY49s2h00dND2DQMlbnn9EIxfeFlczSBhNBJI/Gp bZ/MtOvDasfXwWa8+8Fz0fWfTfp9rEnJzrZgNDHgUg4gWVlz+kgYSKaSRw8C1uKA9y/Q== X-Talos-CUID: 9a23:2Rr6cW+Uqi4S8qhgKjqVv3MzP8QUayHT9VSTG0C4JDxnVey8VXbFrQ== X-Talos-MUID: 9a23:6pX6nwk2oNBWDEAUinM7dnpZH9k3xpuBDnsQrogFo/eHKXZXNAyS2WE= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.21,204,1763420400"; d="scan'208";a="168843510" Date: Tue, 6 Jan 2026 14:43:05 +0100 Subject: [PATCH 1/2] include/exec: Provide the cpu_tswap() functions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-semihosting-cpu-tswap-v1-1-646576c25f56@eonerc.rwth-aachen.de> References: <20260106-semihosting-cpu-tswap-v1-0-646576c25f56@eonerc.rwth-aachen.de> In-Reply-To: <20260106-semihosting-cpu-tswap-v1-0-646576c25f56@eonerc.rwth-aachen.de> To: CC: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Martin_Kr=C3=B6ning?= X-Mailer: b4 0.14.3 X-Originating-IP: [2a0a:a54a:c75:0:1df6:38e8:59e6:777c] X-ClientProxiedBy: RWTHEX-W2-A.rwth-ad.de (2a00:8a60:1:e500::26:158) To rwthex-s2-a.rwth-ad.de (2a00:8a60:1:e500::26:154) Received-SPF: pass (zohomail.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; Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:8a60:1:e501::5:44; envelope-from=martin.kroening@eonerc.rwth-aachen.de; helo=mail-out-1a.itc.rwth-aachen.de X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 06 Jan 2026 09:26:27 -0500 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: , Reply-to: =?utf-8?q?Martin_Kr=C3=B6ning?= From: =?utf-8?q?Martin_Kr=C3=B6ning?= via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1767709607139158500 These functions are needed for CPUs that support runtime-configurable endia= nness. In those cases, components such as semihosting need to perform runtime-dependent byte swaps. Signed-off-by: Martin Kr=C3=B6ning --- include/exec/tswap.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/include/exec/tswap.h b/include/exec/tswap.h index 72219e2c43..9aaafb12f3 100644 --- a/include/exec/tswap.h +++ b/include/exec/tswap.h @@ -10,6 +10,7 @@ =20 #include "qemu/bswap.h" #include "qemu/target-info.h" +#include "hw/core/cpu.h" =20 /* * If we're in target-specific code, we can hard-code the swapping @@ -21,6 +22,8 @@ #define target_needs_bswap() (HOST_BIG_ENDIAN !=3D target_big_endian()) #endif /* COMPILING_PER_TARGET */ =20 +#define cpu_needs_bswap(cpu) (HOST_BIG_ENDIAN !=3D cpu_virtio_is_big_endi= an(cpu)) + static inline uint16_t tswap16(uint16_t s) { if (target_needs_bswap()) { @@ -48,6 +51,33 @@ static inline uint64_t tswap64(uint64_t s) } } =20 +static inline uint16_t cpu_tswap16(CPUState *cpu, uint16_t s) +{ + if (target_needs_bswap() || cpu_needs_bswap(cpu)) { + return bswap16(s); + } else { + return s; + } +} + +static inline uint32_t cpu_tswap32(CPUState *cpu, uint32_t s) +{ + if (target_needs_bswap() || cpu_needs_bswap(cpu)) { + return bswap32(s); + } else { + return s; + } +} + +static inline uint64_t cpu_tswap64(CPUState *cpu, uint64_t s) +{ + if (target_needs_bswap() || cpu_needs_bswap(cpu)) { + return bswap64(s); + } else { + return s; + } +} + static inline void tswap16s(uint16_t *s) { if (target_needs_bswap()) { --=20 Git-155) From nobody Wed Feb 4 10:33:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@rwth-aachen.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1767709603; cv=none; d=zohomail.com; s=zohoarc; b=SfoO04/mQ37Rf5LwDJ05aMH6O7Eovdk6JXdOP0iE1bFy/7OshZtLKNMshMpz/9E2XB1Ug0Is9cMVRAPAwNX9HGbb5S/OzUuLNbnBEYOfv1Pi3nCBTfv+Ry8g95Dch21gl8lEn+paVfDH3FwmQcFMqNLgBKp/4pi5UN7KXCrW0hg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767709603; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=sbl5Azn+lxKvfUAUl/zu0lKFbroNMuZV5puG9PgcVBA=; b=YYMzI3WrorbfTNTpijk9hAgTpuPADFoIqqscM3D0FY4fHw1uZGnvewFnxyUvvO+SvSMfiejbk1Q0yKS5O/ZEyXUOJzxsqFl8C2NfUVnVDjkMxaI4EYIOus8ogri+1ugXRssiM1nSlzQMqppK2tcdNvm+2p6PDL5JlcVNAG5jYyk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@rwth-aachen.de; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767709603414333.9571620483533; Tue, 6 Jan 2026 06:26:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vd811-0000XT-TU; Tue, 06 Jan 2026 09:26:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd7LM-0001De-NX for qemu-devel@nongnu.org; Tue, 06 Jan 2026 08:43:28 -0500 Received: from mail-out-4.itc.rwth-aachen.de ([2a00:8a60:1:e501::5:49]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd7LK-0006Qa-Re for qemu-devel@nongnu.org; Tue, 06 Jan 2026 08:43:28 -0500 Received: from rwthex-s2-a.rwth-ad.de ([134.130.26.154]) by mail-in-4.itc.rwth-aachen.de with ESMTP; 06 Jan 2026 14:43:18 +0100 Received: from mkroening-ud22.fritz.box (2a0a:a54a:c75:0:1df6:38e8:59e6:777c) by rwthex-s2-a.rwth-ad.de (2a00:8a60:1:e500::26:154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Tue, 6 Jan 2026 14:43:17 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rwth-aachen.de; i=@rwth-aachen.de; q=dns/txt; s=20240516-RWTH; t=1767707007; x=1799243007; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=Gyc605Oee09BkDbNn+RqelOfUjVXDdOvnXFHhbqMjiM=; b=MRfLvhfv67jvTYZFlDd1SgI7q8jB12n3Phns1NBlLXwxyKX8rqZt4Gk6 GKEKq2kimfCpu+HbvkGkHml8FlWFLjxLlfQppm087RkgL2N6OE6E2Hy1H XUUm8d8JdD3pTWuULcRBPGRf9NsZdfKQ6ep1DunCnh/wsukqu9tHVfeG8 B2qpqHspk2HlVKt6N4xMOJWFA2p71f5DwFkMR3conigBvCPkoEgx+Tg6n /oKZenbWR94F6axp/M/hZjLG64aI5KMWoIakn4U5wyDC91Fd+7XFL3FuB PVtl8F/nI5QsOMo7qwvmFD9PB/bCctSHEH+b+QvDaMo5x9qXuxyYNcPR5 g==; X-CSE-ConnectionGUID: ztqdPzYHQ0aDwZOvvZqE0Q== X-CSE-MsgGUID: 2wsSQh8+S5+Mfm6nh8vYfw== X-IPAS-Result: =?us-ascii?q?A2CiAwD6D11p/5oagoZagQmEJ3GBagiET6wMhgQPAQEBA?= =?us-ascii?q?QEBAQEBCAFKBwQBAYITgi5GAoxsKDgTAQIEAQEBAQMCAwEBAQEBAQEBAQEBC?= =?us-ascii?q?wEBBgEBAQEBAQYFgSGGCUYNhlsGIw8BRhAlAiYCAkYQBg4FgwIBgnMUBrAzg?= =?us-ascii?q?TKBAYR82gSBHwEFBgkBCgGBCi6IUwGBb4QAhHiCT4FKgj12gmECAoIrgw6Ca?= =?us-ascii?q?QSCInoUlRAJP4ECeCwBVRMNCgsHBWGBBQM1EioVbjIdgSM+Fz5jIQkFgmwGi?= =?us-ascii?q?QAPiVqBFQMLGA1IESw3FBtDAW4HkAqCd3sTLCKZNq9WB4I4gWeMHpVUATKXY?= =?us-ascii?q?JMLLphYigqDf5ZQhD0CBAIEBQIYgX+BaQ4HcYM2UhcCD5Ihwxd3AjoCBwEKA?= =?us-ascii?q?QEDCYI5kS4BAQ?= IronPort-Data: A9a23:/x4/iKIFQhzM2rWtFE+RopQlxSXFcZb7ZxGr2PjKsXjdYENS1jcAz WIfDGDXOfqCamOmL4gib4jl8B4CsMPXmIdgHAsd+CA2RRqmiyZk6fexcx2sZXPCdqUvaGo9s q3yv/GZdJhcokf0/0nrav666yEgiclkf5KkYMbcICd9WAR4fykojBNnioYRj5Vh6TSDK1rlV eja/YuFYTdJ5xYuajhKs/vb9ks21BjPkGpwUmIWNKgjUGD2yiF94KI3fcmZM3b+S49IKe+2L 86r5K255G7Q4yA2AdqjlLvhGmVSKlIFFVHT4pb+c/HKbilq/kTe4I5iXBYvQRs/ZwGyojxE4 I4lWaqYFF11ZP2cwIzxZDEDe812FfUuFLYquhFTu+TLp6HNWyOEL/mDkCjaMKVAktubD12i+ tQKNCkBVgKyp9vuyZ6keM5ymPY6AZHSadZ3VnFIlVk1DN48XozDTrWP/oUd1XEqmdxOWP/SI cYUAdZtRE2bP1sWYQ9RUsx4xbr07pX8W2QwRFa9oKMt/2nVig9r17XrMdzaUtGNQ8hPlQCCu X7Gum3wCREXMpqTxFJp91r12LWfwHmqBer+EpXi6eVRuV3DhVdOSzgYUAW9oamnu0ChDoc3x 0s8v3BGQbIJ3FWmS8S4UxCmrXqsuBkaVNxNVeog52mlw67Z80CTC24CQzNpbN0gvdUxAzsw2 Te0c8jBHyNzsLCFDGnHs77StyyuOW0cISkOaEfoUDc43jUqm6lr5jqnczqpOPfdYgHdcd0o/ w23kQ== IronPort-HdrOrdr: A9a23:4Bx0sag7Fa0wqCgBANXIgIWWMnBQXiwji2hC6mlwRA09TyXBrb HLoB1p726StN9xYgBcpTnuAsm9qB/nmKKdpLNhWItKPzOWxFdATrsSjrcKqgeIc0aVygce79 YDT0EUMrLN5C1B7PoSlzPXLz9P+rW6GeuT9IHjJj9WPHhXg4oJ1XYANi+LVkltAAVWD5swE5 SRotBHryGtdHAebsGxAGhARO7eut3NmprpbRkaQwc97gODlyml5dfBYmKlNzklIkhy/Ys= X-Talos-CUID: 9a23:nXo/8G/i+o8lxVts7b+Vv1wIA8wdYEz99S/ZD1CKLnh3eqS4EWbFrQ== X-Talos-MUID: 9a23:nmhCJgacwASLu+BT7SD3vwhiZIRTvueLBkVTl5VWpfiKKnkl X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.21,204,1763420400"; d="scan'208";a="16285295" Date: Tue, 6 Jan 2026 14:43:06 +0100 Subject: [PATCH 2/2] semihosting/uaccess: Use the cpu_tswap() functions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260106-semihosting-cpu-tswap-v1-2-646576c25f56@eonerc.rwth-aachen.de> References: <20260106-semihosting-cpu-tswap-v1-0-646576c25f56@eonerc.rwth-aachen.de> In-Reply-To: <20260106-semihosting-cpu-tswap-v1-0-646576c25f56@eonerc.rwth-aachen.de> To: CC: =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Martin_Kr=C3=B6ning?= X-Mailer: b4 0.14.3 X-Originating-IP: [2a0a:a54a:c75:0:1df6:38e8:59e6:777c] X-ClientProxiedBy: RWTHEX-W2-A.rwth-ad.de (2a00:8a60:1:e500::26:158) To rwthex-s2-a.rwth-ad.de (2a00:8a60:1:e500::26:154) Received-SPF: pass (zohomail.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; Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=2a00:8a60:1:e501::5:49; envelope-from=martin.kroening@eonerc.rwth-aachen.de; helo=mail-out-4.itc.rwth-aachen.de X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 06 Jan 2026 09:26:27 -0500 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: , Reply-to: =?utf-8?q?Martin_Kr=C3=B6ning?= From: =?utf-8?q?Martin_Kr=C3=B6ning?= via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1767709605515158501 The semihosting ABI [1] states: > Multi-byte values in memory must be formatted as pure little-endian or pu= re > big-endian to match the endianness mapping configuration of the processor. This commits ensures that semihosting data is properly byte-swapped if the guest's CPU is currently in a different runtime-configurable endianness than the host's CPU. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3258 Buglink: https://github.com/taiki-e/semihosting/issues/18 [1]: https://github.com/ARM-software/abi-aa/blob/2025Q1/semihosting/semihos= ting.rst#the-semihosting-interface Signed-off-by: Martin Kr=C3=B6ning --- include/semihosting/uaccess.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/semihosting/uaccess.h b/include/semihosting/uaccess.h index 2093a49827..6813873a2a 100644 --- a/include/semihosting/uaccess.h +++ b/include/semihosting/uaccess.h @@ -28,7 +28,7 @@ ({ uint64_t val_ =3D 0; \ int ret_ =3D cpu_memory_rw_debug(env_cpu(env), (addr), \ &val_, sizeof(val_), 0); \ - (val) =3D tswap64(val_); ret_; }) + (val) =3D cpu_tswap64(cs, val_); ret_; }) =20 /** * get_user_u32: @@ -39,7 +39,7 @@ ({ uint32_t val_ =3D 0; \ int ret_ =3D cpu_memory_rw_debug(env_cpu(env), (addr), \ &val_, sizeof(val_), 0); \ - (val) =3D tswap32(val_); ret_; }) + (val) =3D cpu_tswap32(cs, val_); ret_; }) =20 /** * get_user_u8: @@ -65,7 +65,7 @@ * Returns: 0 on success, -1 on error. */ #define put_user_u64(val, addr) \ - ({ uint64_t val_ =3D tswap64(val); \ + ({ uint64_t val_ =3D cpu_tswap64(cs, val); \ cpu_memory_rw_debug(env_cpu(env), (addr), &val_, sizeof(val_), 1); = }) =20 /** @@ -74,7 +74,7 @@ * Returns: 0 on success, -1 on error. */ #define put_user_u32(val, addr) \ - ({ uint32_t val_ =3D tswap32(val); \ + ({ uint32_t val_ =3D cpu_tswap32(cs, val); \ cpu_memory_rw_debug(env_cpu(env), (addr), &val_, sizeof(val_), 1); = }) =20 /** --=20 Git-155)