get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2220204/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2220204,
    "url": "http://patchwork.ozlabs.org/api/patches/2220204/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260406154935.144674-5-djordje.todorovic@htecgroup.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260406154935.144674-5-djordje.todorovic@htecgroup.com>",
    "list_archive_url": null,
    "date": "2026-04-06T15:49:42",
    "name": "[v6,4/7] target/riscv: Implement runtime data endianness via MSTATUS bits",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "f032e9e903d6305a247a6d4e640276bccd331ff1",
    "submitter": {
        "id": 90738,
        "url": "http://patchwork.ozlabs.org/api/people/90738/?format=api",
        "name": "Djordje Todorovic",
        "email": "Djordje.Todorovic@htecgroup.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260406154935.144674-5-djordje.todorovic@htecgroup.com/mbox/",
    "series": [
        {
            "id": 498877,
            "url": "http://patchwork.ozlabs.org/api/series/498877/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498877",
            "date": "2026-04-06T15:49:42",
            "name": "Add RISC-V big-endian target support",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/498877/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2220204/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2220204/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=r/Heu4SN;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=htecgroup.com;"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqDMq2JCQz1yFt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 01:51:35 +1000 (AEST)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w9mD7-0005c3-PN; Mon, 06 Apr 2026 11:49:57 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Djordje.Todorovic@htecgroup.com>)\n id 1w9mD5-0005ar-RZ; Mon, 06 Apr 2026 11:49:55 -0400",
            "from mail-swedencentralazlp170130007.outbound.protection.outlook.com\n ([2a01:111:f403:c202::7] helo=GVXPR05CU001.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Djordje.Todorovic@htecgroup.com>)\n id 1w9mD3-00021U-VM; Mon, 06 Apr 2026 11:49:55 -0400",
            "from GV2PR09MB8755.eurprd09.prod.outlook.com (2603:10a6:150:358::6)\n by VI1PR09MB6903.eurprd09.prod.outlook.com (2603:10a6:800:1e2::19)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.19; Mon, 6 Apr\n 2026 15:49:43 +0000",
            "from GV2PR09MB8755.eurprd09.prod.outlook.com\n ([fe80::939c:95df:4890:ce63]) by GV2PR09MB8755.eurprd09.prod.outlook.com\n ([fe80::939c:95df:4890:ce63%3]) with mapi id 15.20.9769.014; Mon, 6 Apr 2026\n 15:49:43 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=HmTJbpNLluEjiwtCDihtpnbSMxPB0GqHy8BOXhRKZBdncUEGxVoBEPiDN6nNnjp+9j8eawoPQgqiiiO6HYhMxLsJm4ra5JeizG39QmBfRaXoyLgUHy8Xao0Wx0GD+OBGoBRv0hSe/n3WVvxwCyaxG9CyOF5HS8OIsLpDXdkcpQ5wukfBIRG7uVhcR520QFx3UazbPHrVuTQ+SxwjdJFjk6imsc6PI695xyTBi8HOd1X91ghMimPyufJdfq1mMbB4j2kT5boPQqXZmpnNmTUdZody3JPMIhMxWA3g4c4yyDeS3RGLQm+lSICCIH85sGh3XhArC0fyXycVll4HKqfpvw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=08/sHQojIUy4zh5MSN5RxF3KfqZ+pBKOElAfPMDok1s=;\n b=wntZsYdhuevAKOJGLC9LIxjfUe63oKySV+GUqkhXIo7m2uLQXHGYsE73FVZ/z6K6xVw/bZHOLa2f4OMOnNUWCpWnUY0EoVPsIOY0hzsQBJiEbRl6+QrQfgm/DpfjnMxDB+xOlftmQm36PK1GUExubUBJqP3EA1kUYDVr+3OWGC5P5LPnLQON4eXEVb/SH/ReCVA1T9mUJ/vnFoDcrLxbm+WvbtHMcd+32B/blA9w0lFKI5eH6OQJKEFfWFxA9IW2NmLNzwbF/0l3b4a4LvXV1BUFHS2O5qJmUgznLgTt7dKqJK/wMq8DX4l8BXxft26pcYDrG4i4ijzcpXVRmfNjbA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=htecgroup.com; dmarc=pass action=none\n header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=08/sHQojIUy4zh5MSN5RxF3KfqZ+pBKOElAfPMDok1s=;\n b=r/Heu4SNvq2y24x195D19SyW1bRtzuzQxFvvlS/YKKjZ/x2ZwrRFUvpUuyin9/x3+kN8/PtbyAO2ybWk+d+pTUy4anASePRrpjK74XIcNEwjX1XMQ1+M2tpLxDgxX+BSnh2kTTV+sRiJVxIQkTlvrfOZwUY656umYmagWUa50x/Dnyw0YvnUtQn+Na3Pcu16i5nuvuoz5bKIdeh/j7/STm8pvvK5DxCbLw2kphRo1RDUNvogUZM5bI2KkSi7CffZN4kvN6vJc+Ns+0aqdOSGKvJA32v/S6biBfj+GRkYFYkZGPWVXDyR1Kq9jFyXHjysO08grG4qcf6j+g3JPeDRvA==",
        "From": "Djordje Todorovic <Djordje.Todorovic@htecgroup.com>",
        "To": "\"qemu-devel@nongnu.org\" <qemu-devel@nongnu.org>",
        "CC": "\"qemu-riscv@nongnu.org\" <qemu-riscv@nongnu.org>, \"cfu@mips.com\"\n <cfu@mips.com>, \"mst@redhat.com\" <mst@redhat.com>,\n \"marcel.apfelbaum@gmail.com\" <marcel.apfelbaum@gmail.com>,\n \"dbarboza@ventanamicro.com\" <dbarboza@ventanamicro.com>, \"philmd@linaro.org\"\n <philmd@linaro.org>, \"alistair23@gmail.com\" <alistair23@gmail.com>,\n \"thuth@redhat.com\" <thuth@redhat.com>, Djordje Todorovic\n <Djordje.Todorovic@htecgroup.com>",
        "Subject": "[PATCH v6 4/7] target/riscv: Implement runtime data endianness via\n MSTATUS bits",
        "Thread-Topic": "[PATCH v6 4/7] target/riscv: Implement runtime data endianness\n via MSTATUS bits",
        "Thread-Index": "AQHcxdz70J0jqOWNlUqTEQuyJ5XzXw==",
        "Date": "Mon, 6 Apr 2026 15:49:42 +0000",
        "Message-ID": "<20260406154935.144674-5-djordje.todorovic@htecgroup.com>",
        "References": "<20260406154935.144674-1-djordje.todorovic@htecgroup.com>",
        "In-Reply-To": "<20260406154935.144674-1-djordje.todorovic@htecgroup.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "authentication-results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=r/Heu4SN;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=htecgroup.com;"
        ],
        "x-ms-publictraffictype": "Email",
        "x-ms-traffictypediagnostic": "GV2PR09MB8755:EE_|VI1PR09MB6903:EE_",
        "x-ms-office365-filtering-correlation-id": "7178137b-59ac-4f98-102c-08de93f41eb6",
        "x-ms-exchange-senderadcheck": "1",
        "x-ms-exchange-antispam-relay": "0",
        "x-microsoft-antispam": "BCL:0;\n ARA:13230040|366016|376014|1800799024|18002099003|38070700021|22082099003|56012099003;",
        "x-microsoft-antispam-message-info": "\n t4mb1KgDBRbTXdhwCk0PV8pf5z6SVFy+MAsWgtlUo+Gyh66jyNSOwIcnDzbNHH9ec4uEugWxv3wIKQ1TVaDZn8qhkEHAR8SJOAa1HMMgftYFgeASWWmE8Z5wIrBoAwu2c5xvYVV+OTonp+91I83LVA8eyV3lv/6BRz5epT70kwuIX0B4cVIuZLFiOgX2HSn+uE3dw9kPD1d9GTD2a8yhPLkOxBRqcxedg9vpPdvAijyiweUQP9UsoOvWtHc6Eqjv3nDjiZVXxDesGfB2eoAcT8D/IpgDz0Ku0QK0OftNwdaaRDsKsWM7G7nIfS7loNshhIdx+2xi5Nu50Bs9rBGnnEJXzjTSyG9AIQSM+KqT7Wmii5yWSb+zc7issPJe4tN9kXsvGnFKEUqWZuZJTJLihvO/rAAHLDaKh4E21/hMhVYl2zJ+/7ZewUwFrCu8s6ybM9NfGO0OyUkhe6QsAwrE80RhCM4CNWkklekoiL/pTpPPqMF2ukKM6SJfWDOtny+ndWp4t+0o2uoDPGLjileumxtpyjlzEUz+mGGvuhYpINTLZ7MCnCql2j1ergtqbxkxWi6XdC0xmTbCFTegdKY5td4y6qVXOMdEd6b8sWoUhn4O9bYFmAmZn0wqmqPxrAKbhCfoJ/0lkLyD/WD+8/4oDcg0FODBQgWhXjlRXnd6GxO48msUqzkEpUwnORv5rLO4ZgdNtZvUCtSHYfI4742xkyTxEXPwke97b05tnkBva5i03tds5UzvRol6SIebCeFnb9iGCB2+31v6RK4S2V3xaNEHYsXQYEZPbeedxoF209I=",
        "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:GV2PR09MB8755.eurprd09.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(38070700021)(22082099003)(56012099003);\n DIR:OUT; SFP:1102;",
        "x-ms-exchange-antispam-messagedata-chunkcount": "1",
        "x-ms-exchange-antispam-messagedata-0": "=?iso-8859-1?q?C8CX+SUwaiGYY/cQWIyKZKa?=\n\t=?iso-8859-1?q?68QJBdh7Vkbx3r5Cmfw5XQokhDdbGDQls/tNZUNrut+Wg0+dk5RW1NWv0dME?=\n\t=?iso-8859-1?q?uSq1zKZGc/NPO1JwYCgW8lODG60ogQtNiQYmPzcX4RF3D1Kwhhc9UbIq06uw?=\n\t=?iso-8859-1?q?NgBDbdEja32kes69y9QgMaHEDcvDip+s3yZi+SK9TuUuAE2zQtnFJZd1vsgj?=\n\t=?iso-8859-1?q?2h0jPxoAxl7/f7DkEvhqMXzhbbvel+Q+eNS1SxRSw5SlpfYZ45mD/c792bzM?=\n\t=?iso-8859-1?q?Rt3GQhWbVdQn0iYp2c1OhkcP2X4hWlYsmu2N5bb/gYXOl9HlQCyJGAN82tjb?=\n\t=?iso-8859-1?q?MvHnvjPGDPud1PjsK6G2W7LzmnczS4DSKGAR/n1nkYribwwU7UdZK2CeMae1?=\n\t=?iso-8859-1?q?N/Fx3f35n3QjW3dCKLzmeaTRWM/XKzJ6+1JirqgWQMyLO05b4E0vjjA0QQtn?=\n\t=?iso-8859-1?q?1Nt3Aee/oZa722AURRm9bsK+Nk+eShsmWPFksfcGQnPTcXZLXfItgbjSnYui?=\n\t=?iso-8859-1?q?qbQMYfDKdbi66tMrb4Md/B1zhl7X9dYuxsfBAolXebMctbAR1LL3SEDwY0VB?=\n\t=?iso-8859-1?q?esphFOA19A6BkA+hOUApT3Yl5EqgNqSANJUiSCwJFMsBhob1+OsTsiPE8lsR?=\n\t=?iso-8859-1?q?JX1tcGJFbci0tucqvz+BZI97yxXYQf7B0sqNzXI2XPrVcPLeSOK8Q0EV+7oF?=\n\t=?iso-8859-1?q?FNGwaTJf7wk0RMPn7SrfWQIBTDxon655ZDGCAOu/60xUVkXLQkMrKTAttHmj?=\n\t=?iso-8859-1?q?/JYSQCWF0aP1UvjwAnXh9dRsd0ukQyQcX+n1U/5Q5ZfBlG9Ayo75AednyDPu?=\n\t=?iso-8859-1?q?nD1c2hYiiKS9etP3BsSwNRpq8yZqFvx/ro8cyrZClHA14CnWQnOR5I+rpgeP?=\n\t=?iso-8859-1?q?vh+9zx05494GNM/XE8ns5lLpNtyFUDAAwGmsXCMuI/yzY2l6NZdpG3rlVl/y?=\n\t=?iso-8859-1?q?rdAOZF7M59A0qXLVBWIoE39Sh9zA6Yy5F5U6qTPGqypjbX0ifXXLMJbo6xjT?=\n\t=?iso-8859-1?q?qljfLXPFhf2gFEN9jwKlcpF+d1AgiW3WeU5e1uWsabmH1b+GFy0J+QZAmcqW?=\n\t=?iso-8859-1?q?WaOONKW9qqjsx4dN1gq2KS509IEKDL4Tmcc/3ADR2K5zb62/o5/l2xpOod/f?=\n\t=?iso-8859-1?q?K23yvtmXjVaGtpBxSE+onQUgbQrvCzGXPILEeIH5sQ1lY6EohhTrHeettgfN?=\n\t=?iso-8859-1?q?y8FZ96KZRXWfwoCpDYo1i7bwZbqeWysBa9UC8arQcUAUzLluxlhS5/DG9tDr?=\n\t=?iso-8859-1?q?LOvNSYZmaIcD/+Q17jyb/tfPmjo8GGVsEdX5auPnhMBOVt5bRtPkT4TATpi+?=\n\t=?iso-8859-1?q?X+aaFoElNMjt53OsqlSPTvGnqCvtmxDNBPyUyXKTrQAjzxFb5Bh51sazzwxu?=\n\t=?iso-8859-1?q?mrjnTUPprnpnlVe/XMPrx8F0k23o1s+kL2afFumWbv4S6OrePO3mFk81Jyvd?=\n\t=?iso-8859-1?q?dHgqbeDlqvf0ET5LP5mh4ib6dXsGtIMR/HoerYTZaai1xROe/8wLPJa4XVns?=\n\t=?iso-8859-1?q?2FieX0BZsGPvLMkFl1rKsThTNhhS6NESNABZ3vsNeI/tgtjrGdDDQI+N4D7+?=\n\t=?iso-8859-1?q?DzUMjehzCRvRQ1TZeXN0hdoCnyPkTwqrDFnob3ks6Z2Pvb/Yrj+jqL6X2zu2?=\n\t=?iso-8859-1?q?nth2yt2e8YST82VJQ1MW5EES36z3JyjHu98BzjZu8dJ8WUOe0+TRfVnfTBYf?=\n\t=?iso-8859-1?q?lgUkzG6cBIymH4K9tlW7dYFAVPGw6y3NXYfgfO0cHel/HqD8saACRBWkGXSm?=\n\t=?iso-8859-1?q?Sz96DHBijJglODWRAA1MwfvfrXP8H71vRbvNlIAvLjxt43jGewxU3FBq89S/?=\n\t=?iso-8859-1?q?AT8PsLauQVFV12GzMTz8x4EqAKGrv?=",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "htecgroup.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-AuthSource": "GV2PR09MB8755.eurprd09.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 7178137b-59ac-4f98-102c-08de93f41eb6",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "06 Apr 2026 15:49:42.2515 (UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "9f85665b-7efd-4776-9dfe-b6bfda2565ee",
        "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
        "X-MS-Exchange-CrossTenant-userprincipalname": "\n jAvwMA4/YKEvPWFFPlvGfyR02X2gDaDqk7ykQRKoJP8gopUR2Ka/AZ2wDVD+K0YkHRZBg9QyMCFK20gikWGFeWqArN2Cqqz1KIPwn7Sf9/c=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR09MB6903",
        "Received-SPF": "pass client-ip=2a01:111:f403:c202::7;\n envelope-from=Djordje.Todorovic@htecgroup.com;\n helo=GVXPR05CU001.outbound.protection.outlook.com",
        "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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,\n 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.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "Implement runtime big-endian data support by reading the MSTATUS\nUBE/SBE/MBE bits to determine data endianness per privilege level.\n\nThe key changes are:\n\n- Add riscv_cpu_data_is_big_endian() helper in cpu.h that checks\n  the appropriate MSTATUS endianness bit based on current privilege\n  level (MBE for M-mode, SBE for S-mode, UBE for U-mode).\n\n- Update mo_endian() in translate.c to return MO_BE or MO_LE based\n  on a new 'big_endian' field in DisasContext, rather than the\n  previous hardcoded MO_TE.\n\n- Update mo_endian_env() in op_helper.c to call the new helper,\n  giving hypervisor load/store helpers correct runtime endianness.\n\n- Pack the endianness flag into cs_base bit 32 (alongside misa_ext\n  in bits 0-25) in riscv_get_tb_cpu_state(), ensuring translation\n  blocks are correctly separated by data endianness.\n\nNote: instruction fetches continue to use MO_LE unconditionally\n(from the previous patch), as RISC-V instructions are always\nlittle-endian per the ISA specification.\n\nSigned-off-by: Djordje Todorovic <djordje.todorovic@htecgroup.com>\n---\n target/riscv/cpu.h         | 28 ++++++++++++++++++++++++++++\n target/riscv/internals.h   |  9 +--------\n target/riscv/tcg/tcg-cpu.c |  7 ++++++-\n target/riscv/translate.c   | 13 +++++--------\n 4 files changed, 40 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h\nindex 35d1f6362c..ef870d05b3 100644\n--- a/target/riscv/cpu.h\n+++ b/target/riscv/cpu.h\n@@ -703,6 +703,12 @@ FIELD(TB_FLAGS, BCFI_ENABLED, 28, 1)\n FIELD(TB_FLAGS, PM_PMM, 29, 2)\n FIELD(TB_FLAGS, PM_SIGNEXTEND, 31, 1)\n \n+/*\n+ * cs_base carries misa_ext (bits 0-25) plus additional flags.\n+ * Bit 32 is used for data endianness since TB_FLAGS has no free bits.\n+ */\n+#define TB_CSBASE_BIG_ENDIAN  (1ULL << 32)\n+\n #ifdef TARGET_RISCV32\n #define riscv_cpu_mxl(env)  ((void)(env), MXL_RV32)\n #else\n@@ -718,6 +724,28 @@ static inline const RISCVCPUConfig *riscv_cpu_cfg(CPURISCVState *env)\n     return &env_archcpu(env)->cfg;\n }\n \n+/*\n+ * Return true if data accesses are big-endian for the current privilege\n+ * level, based on the MSTATUS MBE/SBE/UBE bits.\n+ */\n+static inline bool riscv_cpu_data_is_big_endian(CPURISCVState *env)\n+{\n+#if defined(CONFIG_USER_ONLY)\n+    return false;\n+#else\n+    switch (env->priv) {\n+    case PRV_M:\n+        return env->mstatus & MSTATUS_MBE;\n+    case PRV_S:\n+        return env->mstatus & MSTATUS_SBE;\n+    case PRV_U:\n+        return env->mstatus & MSTATUS_UBE;\n+    default:\n+        g_assert_not_reached();\n+    }\n+#endif\n+}\n+\n #if !defined(CONFIG_USER_ONLY)\n static inline int cpu_address_mode(CPURISCVState *env)\n {\ndiff --git a/target/riscv/internals.h b/target/riscv/internals.h\nindex 460346dd6d..e2f0334da8 100644\n--- a/target/riscv/internals.h\n+++ b/target/riscv/internals.h\n@@ -64,14 +64,7 @@ static inline bool mmuidx_2stage(int mmu_idx)\n \n static inline MemOp mo_endian_env(CPURISCVState *env)\n {\n-    /*\n-     * A couple of bits in MSTATUS set the endianness:\n-     *  - MSTATUS_UBE (User-mode),\n-     *  - MSTATUS_SBE (Supervisor-mode),\n-     *  - MSTATUS_MBE (Machine-mode)\n-     * but we don't implement that yet.\n-     */\n-    return MO_LE;\n+    return riscv_cpu_data_is_big_endian(env) ? MO_BE : MO_LE;\n }\n \n /* share data between vector helpers and decode code */\ndiff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c\nindex 3407191c22..d73b749bae 100644\n--- a/target/riscv/tcg/tcg-cpu.c\n+++ b/target/riscv/tcg/tcg-cpu.c\n@@ -189,10 +189,15 @@ static TCGTBCPUState riscv_get_tb_cpu_state(CPUState *cs)\n     flags = FIELD_DP32(flags, TB_FLAGS, PM_PMM, riscv_pm_get_pmm(env));\n     flags = FIELD_DP32(flags, TB_FLAGS, PM_SIGNEXTEND, pm_signext);\n \n+    uint64_t cs_base = env->misa_ext;\n+    if (riscv_cpu_data_is_big_endian(env)) {\n+        cs_base |= TB_CSBASE_BIG_ENDIAN;\n+    }\n+\n     return (TCGTBCPUState){\n         .pc = env->xl == MXL_RV32 ? env->pc & UINT32_MAX : env->pc,\n         .flags = flags,\n-        .cs_base = env->misa_ext,\n+        .cs_base = cs_base,\n     };\n }\n \ndiff --git a/target/riscv/translate.c b/target/riscv/translate.c\nindex 5df5b73849..77f36906e8 100644\n--- a/target/riscv/translate.c\n+++ b/target/riscv/translate.c\n@@ -119,6 +119,8 @@ typedef struct DisasContext {\n     bool fcfi_lp_expected;\n     /* zicfiss extension, if shadow stack was enabled during TB gen */\n     bool bcfi_enabled;\n+    /* Data endianness from MSTATUS UBE/SBE/MBE */\n+    MemOp mo_endianness;\n } DisasContext;\n \n static inline bool has_ext(DisasContext *ctx, uint32_t ext)\n@@ -128,14 +130,7 @@ static inline bool has_ext(DisasContext *ctx, uint32_t ext)\n \n static inline MemOp mo_endian(DisasContext *ctx)\n {\n-    /*\n-     * A couple of bits in MSTATUS set the endianness:\n-     *  - MSTATUS_UBE (User-mode),\n-     *  - MSTATUS_SBE (Supervisor-mode),\n-     *  - MSTATUS_MBE (Machine-mode)\n-     * but we don't implement that yet.\n-     */\n-    return MO_LE;\n+    return ctx->mo_endianness;\n }\n \n #ifdef TARGET_RISCV32\n@@ -1346,6 +1341,8 @@ static void riscv_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cs)\n     ctx->zero = tcg_constant_tl(0);\n     ctx->virt_inst_excp = false;\n     ctx->decoders = cpu->decoders;\n+    ctx->mo_endianness = (ctx->base.tb->cs_base & TB_CSBASE_BIG_ENDIAN)\n+                         ? MO_BE : MO_LE;\n }\n \n static void riscv_tr_tb_start(DisasContextBase *db, CPUState *cpu)\n",
    "prefixes": [
        "v6",
        "4/7"
    ]
}