[{"id":3668765,"web_url":"http://patchwork.ozlabs.org/comment/3668765/","msgid":"<456faa09-4889-43e2-a35a-449888f9249e@linaro.org>","list_archive_url":null,"date":"2026-03-25T01:39:14","subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","submitter":{"id":85798,"url":"http://patchwork.ozlabs.org/api/people/85798/","name":"Pierrick Bouvier","email":"pierrick.bouvier@linaro.org"},"content":"Hi Richard,\n\nOn 3/24/26 5:40 PM, Richard Henderson wrote:\n> If the host does not support swapped-endian loads and stores,\n> then we emulate those within the tcg expanders with explicit\n> bswap operations.\n> \n> However, we were passing values to the plugin interface in\n> the middle of those bswap operations, which meant that we\n> would pass values of the wrong endianness to plugins when\n> running on hosts without swapped-endian loads and stores.\n> \n> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3351\n> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>\n> ---\n> \n> Hi Pierrick,\n> \n> On IRC I expressed the opinion that there was an additional\n> big-endian bug with how we treat neg.plugin_mem_value_low,\n> but I now see that isn't true, because of how we adjust the\n> store address in plugin_gen_mem_callbacks_i32.\n>\n\nYes, we store the value directly swapped, so there is no further \ntransformation needed.\n\n> \n> r~\n> ---\n>   tcg/tcg-op-ldst.c | 52 ++++++++++++++++++++++++-----------------------\n>   1 file changed, 27 insertions(+), 25 deletions(-)\n> \n> diff --git a/tcg/tcg-op-ldst.c b/tcg/tcg-op-ldst.c\n> index 354d9968f9..22211ccb45 100644\n> --- a/tcg/tcg-op-ldst.c\n> +++ b/tcg/tcg-op-ldst.c\n> @@ -262,9 +262,6 @@ static void tcg_gen_qemu_ld_i32_int(TCGv_i32 val, TCGTemp *addr,\n>       addr_new = tci_extend_addr(addr);\n>       copy_addr = plugin_maybe_preserve_addr(addr);\n>       gen_ldst1(INDEX_op_qemu_ld, TCG_TYPE_I32, tcgv_i32_temp(val), addr_new, oi);\n> -    plugin_gen_mem_callbacks_i32(val, copy_addr, addr, orig_oi,\n> -                                 QEMU_PLUGIN_MEM_R);\n> -    maybe_free_addr(addr, addr_new);\n>   \n>       if ((orig_memop ^ memop) & MO_BSWAP) {\n>           switch (orig_memop & MO_SIZE) {\n> @@ -280,6 +277,10 @@ static void tcg_gen_qemu_ld_i32_int(TCGv_i32 val, TCGTemp *addr,\n>               g_assert_not_reached();\n>           }\n>       }\n> +\n> +    plugin_gen_mem_callbacks_i32(val, copy_addr, addr, orig_oi,\n> +                                 QEMU_PLUGIN_MEM_R);\n> +    maybe_free_addr(addr, addr_new);\n>   }\n>   \n>   void tcg_gen_qemu_ld_i32_chk(TCGv_i32 val, TCGTemp *addr, TCGArg idx,\n> @@ -290,10 +291,10 @@ void tcg_gen_qemu_ld_i32_chk(TCGv_i32 val, TCGTemp *addr, TCGArg idx,\n>       tcg_gen_qemu_ld_i32_int(val, addr, idx, memop);\n>   }\n>   \n> -static void tcg_gen_qemu_st_i32_int(TCGv_i32 val, TCGTemp *addr,\n> +static void tcg_gen_qemu_st_i32_int(TCGv_i32 orig_val, TCGTemp *addr,\n>                                       TCGArg idx, MemOp memop)\n>   {\n> -    TCGv_i32 swap = NULL;\n> +    TCGv_i32 val = orig_val;\n>       MemOpIdx orig_oi, oi;\n>       TCGTemp *addr_new;\n>   \n> @@ -302,29 +303,29 @@ static void tcg_gen_qemu_st_i32_int(TCGv_i32 val, TCGTemp *addr,\n>       orig_oi = oi = make_memop_idx(memop, idx);\n>   \n>       if ((memop & MO_BSWAP) && !tcg_target_has_memory_bswap(memop)) {\n> -        swap = tcg_temp_ebb_new_i32();\n> +        val = tcg_temp_ebb_new_i32();\n>           switch (memop & MO_SIZE) {\n>           case MO_16:\n> -            tcg_gen_bswap16_i32(swap, val, 0);\n> +            tcg_gen_bswap16_i32(val, orig_val, 0);\n>               break;\n>           case MO_32:\n> -            tcg_gen_bswap32_i32(swap, val);\n> +            tcg_gen_bswap32_i32(val, orig_val);\n>               break;\n>           default:\n>               g_assert_not_reached();\n>           }\n> -        val = swap;\n>           memop &= ~MO_BSWAP;\n>           oi = make_memop_idx(memop, idx);\n>       }\n>   \n>       addr_new = tci_extend_addr(addr);\n>       gen_ldst1(INDEX_op_qemu_st, TCG_TYPE_I32, tcgv_i32_temp(val), addr_new, oi);\n> -    plugin_gen_mem_callbacks_i32(val, NULL, addr, orig_oi, QEMU_PLUGIN_MEM_W);\n> +    plugin_gen_mem_callbacks_i32(orig_val, NULL, addr, orig_oi,\n> +                                 QEMU_PLUGIN_MEM_W);\n\nIt works, but it is still not clear to me why the value orig_val (which \nis not swapped and in target-endian order) gets stored swapped correctly \nin neg.plugin_mem_value_low.\n\nI would expect it to be in target-endian order, since \nplugin_gen_mem_callbacks_i32 uses tcg_gen_st_i32(val, env, ... \nneg.plugin_mem_value_low) which does not perform any swap.\n\n>       maybe_free_addr(addr, addr_new);\n>   \n> -    if (swap) {\n> -        tcg_temp_free_i32(swap);\n> +    if (val != orig_val) {\n> +        tcg_temp_free_i32(val);\n>       }\n>   }\n>   \n> @@ -360,9 +361,6 @@ static void tcg_gen_qemu_ld_i64_int(TCGv_i64 val, TCGTemp *addr,\n>       addr_new = tci_extend_addr(addr);\n>       copy_addr = plugin_maybe_preserve_addr(addr);\n>       gen_ld_i64(val, addr_new, oi);\n> -    plugin_gen_mem_callbacks_i64(val, copy_addr, addr, orig_oi,\n> -                                 QEMU_PLUGIN_MEM_R);\n> -    maybe_free_addr(addr, addr_new);\n>   \n>       if ((orig_memop ^ memop) & MO_BSWAP) {\n>           int flags = (orig_memop & MO_SIGN\n> @@ -382,6 +380,10 @@ static void tcg_gen_qemu_ld_i64_int(TCGv_i64 val, TCGTemp *addr,\n>               g_assert_not_reached();\n>           }\n>       }\n> +\n> +    plugin_gen_mem_callbacks_i64(val, copy_addr, addr, orig_oi,\n> +                                 QEMU_PLUGIN_MEM_R);\n> +    maybe_free_addr(addr, addr_new);\n>   }\n>   \n>   void tcg_gen_qemu_ld_i64_chk(TCGv_i64 val, TCGTemp *addr, TCGArg idx,\n> @@ -392,10 +394,10 @@ void tcg_gen_qemu_ld_i64_chk(TCGv_i64 val, TCGTemp *addr, TCGArg idx,\n>       tcg_gen_qemu_ld_i64_int(val, addr, idx, memop);\n>   }\n>   \n> -static void tcg_gen_qemu_st_i64_int(TCGv_i64 val, TCGTemp *addr,\n> +static void tcg_gen_qemu_st_i64_int(TCGv_i64 orig_val, TCGTemp *addr,\n>                                       TCGArg idx, MemOp memop)\n>   {\n> -    TCGv_i64 swap = NULL;\n> +    TCGv_i64 val = orig_val;\n>       MemOpIdx orig_oi, oi;\n>       TCGTemp *addr_new;\n>   \n> @@ -404,32 +406,32 @@ static void tcg_gen_qemu_st_i64_int(TCGv_i64 val, TCGTemp *addr,\n>       orig_oi = oi = make_memop_idx(memop, idx);\n>   \n>       if ((memop & MO_BSWAP) && !tcg_target_has_memory_bswap(memop)) {\n> -        swap = tcg_temp_ebb_new_i64();\n> +        val = tcg_temp_ebb_new_i64();\n>           switch (memop & MO_SIZE) {\n>           case MO_16:\n> -            tcg_gen_bswap16_i64(swap, val, 0);\n> +            tcg_gen_bswap16_i64(val, orig_val, 0);\n>               break;\n>           case MO_32:\n> -            tcg_gen_bswap32_i64(swap, val, 0);\n> +            tcg_gen_bswap32_i64(val, orig_val, 0);\n>               break;\n>           case MO_64:\n> -            tcg_gen_bswap64_i64(swap, val);\n> +            tcg_gen_bswap64_i64(val, orig_val);\n>               break;\n>           default:\n>               g_assert_not_reached();\n>           }\n> -        val = swap;\n>           memop &= ~MO_BSWAP;\n>           oi = make_memop_idx(memop, idx);\n>       }\n>   \n>       addr_new = tci_extend_addr(addr);\n>       gen_st_i64(val, addr_new, oi);\n> -    plugin_gen_mem_callbacks_i64(val, NULL, addr, orig_oi, QEMU_PLUGIN_MEM_W);\n> +    plugin_gen_mem_callbacks_i64(orig_val, NULL, addr, orig_oi,\n> +                                 QEMU_PLUGIN_MEM_W);\n>       maybe_free_addr(addr, addr_new);\n>   \n> -    if (swap) {\n> -        tcg_temp_free_i64(swap);\n> +    if (val != orig_val) {\n> +        tcg_temp_free_i64(val);\n>       }\n>   }\n>   \n\nThis solves the problem, thanks!\n\nI'll probably add another patch to document that better in plugin api, \nand remove the additional swapping done in tests/tcg/plugins/mem.c.\n\nReviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>\nTested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>\n\nThanks for the patch,\nPierrick","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=KUU2H0QK;\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)"],"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 4fgV2Q1H3Fz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 12:39:42 +1100 (AEDT)","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 1w5DDN-0004RK-IM; Tue, 24 Mar 2026 21:39:21 -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 <pierrick.bouvier@linaro.org>)\n id 1w5DDL-0004Qn-Uw\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 21:39:19 -0400","from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1w5DDJ-0008No-Mr\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 21:39:19 -0400","by mail-pj1-x1036.google.com with SMTP id\n 98e67ed59e1d1-354a18c48b5so4908544a91.1\n for <qemu-devel@nongnu.org>; Tue, 24 Mar 2026 18:39:16 -0700 (PDT)","from [192.168.1.87] (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b08365a62bsm215324575ad.46.2026.03.24.18.39.14\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 24 Mar 2026 18:39:15 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774402756; x=1775007556; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:autocrypt:content-language\n :from:references:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=WgETYKRUZDrkXEHCsOEJS7i8mCHsuiLy2L493DWB41M=;\n b=KUU2H0QKQOVhWiJgVcIdfIusLDQBagT9wShCz4zvhveieEYjsynGZNVItJdgXME6MT\n mO7eVLD3f36AgGhVzgwpSDrWE2gWwLVZXZO9Ink3V3zUEvDnqkxusUMNvJFqfab9a8xX\n NyfPq/0G1RcuLbAcAKH3DDYR6kTcqHzcXun71Sy7e4SZ7TArEkekIXZ2RBInTa6+4vix\n dTuURqVFmJsg5mJNoA+qsK1ibKIQjeMhjZYa0t2mygxm9yntLA/z83Run37tpP0qIgEd\n tYfyh0kF6djRkAPGxfXkUISuOYIkJ21sn4H7nZuKvGmRlP2LCXRsJAMperKjYyXiq4lJ\n 1HsA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774402756; x=1775007556;\n h=content-transfer-encoding:in-reply-to:autocrypt:content-language\n :from:references:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=WgETYKRUZDrkXEHCsOEJS7i8mCHsuiLy2L493DWB41M=;\n b=Ta+tZPmAN0fjKLYAyBvy101EQBnv94kagDzMInCBOu2/Vm8OFMurtFvrDkxGZ1GVnz\n Kb158Ke/9f2rY3lImotFxAW+b/gHzapzjQjjRWImewaEYNv1fAl3JOIjsyvfSa4kgEZj\n flnMiY+NYh49N0eMB4y1Fd6L9iTM47LjLPe9R+gX/Sf2KYPqv3q5fxaFsN1OgFTbhXEG\n J/O02WTcLNDCi2fHdlbsKniLkXRQqvWPz2kXqFlayTChryxy8GuLAR7NMQyyaO6btLP7\n bQIMZiA6+PXfk/1caPAl17Vk4ZjQ2QC6dKLmoVcLR6PF97QQkzINnJhuygmD8AFHE899\n 3IYA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCV+kLl9BBmQoVt8QqkEjYnkUcL/orc/9eDCsg3MMMDggnZLMa+8ePKUj0O7E2pLDaUlehtRqlAn6Y52@nongnu.org","X-Gm-Message-State":"AOJu0YykNg1QVSBTxVvFUqqPpZfvJmmJ9yqo/SXggTo1pkTqqgrtMBHg\n EH21kf7CHKwr8PWRODxEBMV5Iv2MdTDptqj7FHDmZ7cZFiGKJxADiT44eChm6YpAsEjTmHK5t5M\n mFOSSpYU=","X-Gm-Gg":"ATEYQzz14k9h3eFvsN8PkHkKf5lWi5Y0rmhj8EQcnQ0HNG2Y2jz8yAJ7mX5/lWrdqjk\n 6xiJW2SHqngnMwZJ8H2mFuTVka2/lNQ+eH421JfnIptT5mR3aMImkfXmcUC2CVQXX7EXUnQ56dm\n 66+rDilVmEkvWEr9wTh7FpJmQhc6yqWiHOYsI5Xhg+/3uGSGDKZfIHE07GJu5CDzIg4FcgEvtz2\n CzXF8Yz5rmjXZWvnALJ6L0+Kqz0BcbwLO1die4kVsmrlwIugLPz2RmC5WPK7AEGehF73DRpVbDR\n mdOrit4HfsA25FMxtdTwg025cuxMPQQjMKeCUVsdYh+uVK6LxgbRxd1uUTqzvxS8ADQUGO36/jG\n s495tB4rjOGT/jzuyqAWwdVqqD3C4VKBnarJXxnRyX0QtRG9/IO3K4XtBoZ/q/n8YSimsFfQ8n1\n YxYgm7Q3ORjQCQLieCdS9QiZKf7IlJ15duDgwcZajGw9ohxLhbhJ0zHQ61BY4K+GjlkV2xtahyg\n cR33T0=","X-Received":"by 2002:a17:903:440f:b0:2b0:700e:fc9b with SMTP id\n d9443c01a7336-2b0b0aea735mr18871615ad.34.1774402755577;\n Tue, 24 Mar 2026 18:39:15 -0700 (PDT)","Message-ID":"<456faa09-4889-43e2-a35a-449888f9249e@linaro.org>","Date":"Tue, 24 Mar 2026 18:39:14 -0700","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","To":"Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org","References":"<20260325004052.1026892-1-richard.henderson@linaro.org>","From":"Pierrick Bouvier <pierrick.bouvier@linaro.org>","Content-Language":"en-US","Autocrypt":"addr=pierrick.bouvier@linaro.org; keydata=\n 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\n ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=","In-Reply-To":"<20260325004052.1026892-1-richard.henderson@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::1036;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1036.google.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,\n RCVD_IN_DNSWL_NONE=-0.0001, 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"}},{"id":3668785,"web_url":"http://patchwork.ozlabs.org/comment/3668785/","msgid":"<54ea5215-67dc-4ca4-a3f4-ed9ed3d625d7@linaro.org>","list_archive_url":null,"date":"2026-03-25T02:45:30","subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","submitter":{"id":85798,"url":"http://patchwork.ozlabs.org/api/people/85798/","name":"Pierrick Bouvier","email":"pierrick.bouvier@linaro.org"},"content":"On 3/24/26 5:40 PM, Richard Henderson wrote:\n> If the host does not support swapped-endian loads and stores,\n> then we emulate those within the tcg expanders with explicit\n> bswap operations.\n> \n> However, we were passing values to the plugin interface in\n> the middle of those bswap operations, which meant that we\n> would pass values of the wrong endianness to plugins when\n> running on hosts without swapped-endian loads and stores.\n> \n> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3351\n> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>\n> ---\n> \n> Hi Pierrick,\n> \n> On IRC I expressed the opinion that there was an additional\n> big-endian bug with how we treat neg.plugin_mem_value_low,\n> but I now see that isn't true, because of how we adjust the\n> store address in plugin_gen_mem_callbacks_i32.\n> \n> \n> r~\n> ---\n>   tcg/tcg-op-ldst.c | 52 ++++++++++++++++++++++++-----------------------\n>   1 file changed, 27 insertions(+), 25 deletions(-)\n> \n\nI integrated this commit in a broader series on the same topic:\nhttps://lore.kernel.org/qemu-devel/20260325024252.3369186-1-pierrick.bouvier@linaro.org/T/#t\n\nRegards,\nPierrick","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=EVvZUPJ7;\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)"],"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 4fgWVj0n9Jz1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 13:45:49 +1100 (AEDT)","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 1w5EFa-00055R-2o; Tue, 24 Mar 2026 22:45:42 -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 <pierrick.bouvier@linaro.org>)\n id 1w5EFT-00054Y-HA\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 22:45:36 -0400","from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1w5EFR-00031t-Qf\n for qemu-devel@nongnu.org; Tue, 24 Mar 2026 22:45:35 -0400","by mail-pl1-x62b.google.com with SMTP id\n d9443c01a7336-2ad9516a653so9873215ad.0\n for <qemu-devel@nongnu.org>; Tue, 24 Mar 2026 19:45:33 -0700 (PDT)","from [192.168.1.87] (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b0836b6dc8sm169349945ad.82.2026.03.24.19.45.31\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 24 Mar 2026 19:45:31 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774406732; x=1775011532; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:autocrypt:content-language\n :from:references:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=XqIvIZi4dTFGZrQraGPzSnGfZCXwsc2pu5eZhvNuruM=;\n b=EVvZUPJ7G6rsc/4yt0BKxlJepsdTbsEarggABTshwr2/Z9ARhwm83DibZH3eDbKR/7\n SeJA47MRuxRybrvPvRyraoP9754Zuyg7gFPNOOnAu3yxogus1EzS/DCXvxBp+XfC4U/F\n FHvWjUZkxT9+OAUCRQvt2SPc4q9P9DKG0BDxSbdOSER944NVP4XG4a2ioALvqHK4HwSs\n 0dVtC3tZIwGNq6RojZ30ZVd0AD5N5No7ZQkWgpd8hqWaJXIC6HqumXB/8dy6qBwfZUlj\n bUS8yvCBuTtE/dWCZENwdDOQ8+AlYqRQUFj5HLnafjQu8tAn//+9vS1VecJyKQLbgmKs\n kwNA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774406732; x=1775011532;\n h=content-transfer-encoding:in-reply-to:autocrypt:content-language\n :from:references:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=XqIvIZi4dTFGZrQraGPzSnGfZCXwsc2pu5eZhvNuruM=;\n b=bc4hswp7LpurG5H5XbWZ6YTMputGjv/IRJsz9KswTe8rYvt3MzCq6nUe041ovX6SWN\n pO6GrefsC7pEr/CMt5q6aNTgSEmN8dRrNHIUzqSF5fsGvYjf0hDbqd6pc6zO34ICUNtP\n o5Ggss7SRi+tF7Z5uhAVGzx3zPmEK9n9hNEMpQNRfgEGzfOFUc/nh4vnsuO88wkxw1pY\n Yngk7BvpjxKD+dTTIOoWD9635f2sFyL5OBBIYpJWvcXECrpbHotejS0SlJBfAC8mODeL\n Z8XPfDThMleD4mYL4e2CnGRCGFdd28Bb4Zzu0p9GlRv3LhK962G9Mrxw6gUQxpxuYvma\n XfCQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCU37o+vTIVE1/Rxb94qeoNr/2USwys+Y2Er63kUjQ12VwDzO01U2XkAY23Mw3F5dIWufiSgvWkcpWZZ@nongnu.org","X-Gm-Message-State":"AOJu0Yzzh3qdo91XEPo2xA6S5iQhqZ+25VPOwmKyrYyVq194h2QgV6uk\n XN2JZVmg78kkG/cTvnxnxBW/09ZiWsIentdBBaHW5Gkzd5chagef38AfGWbVLADfuNw=","X-Gm-Gg":"ATEYQzw8alqhCR0Wi9kBX2BnSrfDJafgYOmaPbDABPgr27BI83RP1Uvjecj3YSVLTyb\n VRNTUTs5Kgwaomq7YzONnKHl0Nh8YqqRRltBNzjIF15rS1prmXvePG7EQuN7JsTck90SU4C9r9V\n /++5D6DeU74kB2Nv6qUv2M/KoYz++tFgNWW05Vh9eibG2sYJpc3FETjWqSAuhvAd+MKVxmMqQpq\n wdDJj4CMyazDd8Ut8rqBcLwpd/zytYvFxE4IKZ7zmRvbBvcHRTgcmTENiGEljAD3cdoc+arcXme\n 6gI+1XptbVFJ0rQ1Ap2uFZf6VaI6yZqybo1iHyqmP8zX+tbMAzMFQVeynjIlX1oZMtkrnqi11Xw\n Hxlvz0vT/A2+6M6d+Fpp2025YZUJ3OAci5elGExNxh3OPbuncBzysQ5s1UvkrpzhADeSVutCzql\n jhz9UevoWA6QlR2wZf9qnv74F8JWhpFnio4zfWbCcRsuwDombIyJU+oLNlthzvMRAv/7GV","X-Received":"by 2002:a17:902:f681:b0:2ae:b807:da61 with SMTP id\n d9443c01a7336-2b0b0a99b7amr19770205ad.35.1774406731727;\n Tue, 24 Mar 2026 19:45:31 -0700 (PDT)","Message-ID":"<54ea5215-67dc-4ca4-a3f4-ed9ed3d625d7@linaro.org>","Date":"Tue, 24 Mar 2026 19:45:30 -0700","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","To":"Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org","References":"<20260325004052.1026892-1-richard.henderson@linaro.org>","From":"Pierrick Bouvier <pierrick.bouvier@linaro.org>","Content-Language":"en-US","Autocrypt":"addr=pierrick.bouvier@linaro.org; keydata=\n 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\n ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=","In-Reply-To":"<20260325004052.1026892-1-richard.henderson@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::62b;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62b.google.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,\n RCVD_IN_DNSWL_NONE=-0.0001, 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"}},{"id":3668813,"web_url":"http://patchwork.ozlabs.org/comment/3668813/","msgid":"<8c67019a-49c0-4651-9c02-0d15ae262888@linaro.org>","list_archive_url":null,"date":"2026-03-25T04:59:16","subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","submitter":{"id":72104,"url":"http://patchwork.ozlabs.org/api/people/72104/","name":"Richard Henderson","email":"richard.henderson@linaro.org"},"content":"On 3/25/26 11:39, Pierrick Bouvier wrote:\n> Hi Richard,\n> \n> On 3/24/26 5:40 PM, Richard Henderson wrote:\n>> If the host does not support swapped-endian loads and stores,\n>> then we emulate those within the tcg expanders with explicit\n>> bswap operations.\n>>\n>> However, we were passing values to the plugin interface in\n>> the middle of those bswap operations, which meant that we\n>> would pass values of the wrong endianness to plugins when\n>> running on hosts without swapped-endian loads and stores.\n>>\n>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3351\n>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>\n>> ---\n>>\n>> Hi Pierrick,\n>>\n>> On IRC I expressed the opinion that there was an additional\n>> big-endian bug with how we treat neg.plugin_mem_value_low,\n>> but I now see that isn't true, because of how we adjust the\n>> store address in plugin_gen_mem_callbacks_i32.\n>>\n> \n> Yes, we store the value directly swapped, so there is no further transformation needed.\n\nIt's not about storing the value swapped, it's about storing the i32 to the low part of \nthe uint64_t for the host endianness.\n\n> It works, but it is still not clear to me why the value orig_val (which is not swapped and \n> in target-endian order) gets stored swapped correctly in neg.plugin_mem_value_low.\n\nAgain, it is *not* swapped: orig_val is host-endian order, and so is neg.plugin_mem_value_low.\n\n> I'll probably add another patch to document that better in plugin api, and remove the \n> additional swapping done in tests/tcg/plugins/mem.c.\n\nWhat swapping is that?\n\nThere's a variable called \"swapped_value\", but it appears to be mis-named, or a remnant of \nswapping that used to occur.\n\n\nr~","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=Y1IRXCjX;\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)"],"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 4fgZTf27q7z1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 16:00:06 +1100 (AEDT)","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 1w5GL1-0005CE-2r; Wed, 25 Mar 2026 00:59:27 -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 <richard.henderson@linaro.org>)\n id 1w5GL0-0005C0-AP\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 00:59:26 -0400","from mail-pg1-x532.google.com ([2607:f8b0:4864:20::532])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <richard.henderson@linaro.org>)\n id 1w5GKy-0006q7-NV\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 00:59:26 -0400","by mail-pg1-x532.google.com with SMTP id\n 41be03b00d2f7-c73e9e4cdf7so1861531a12.2\n for <qemu-devel@nongnu.org>; Tue, 24 Mar 2026 21:59:23 -0700 (PDT)","from [172.16.11.156] ([103.100.225.140])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b083683a8fsm152637145ad.66.2026.03.24.21.59.20\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 24 Mar 2026 21:59:22 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774414763; x=1775019563; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:to:subject:user-agent:mime-version:date:message-id:from\n :to:cc:subject:date:message-id:reply-to;\n bh=7o0jeXZgIbwXhYRuM6WT1L4AYIttXsytLPoI39nGUfU=;\n b=Y1IRXCjXNW5h8PB8PhHENojDWDWxbW713dqWdkXL4B+NKaJFQJdlRibbo5bkKUfRE4\n CBTNsigMUAhhjbiBuEIeSnDu3dE0120FOe+HvndY0QnWdcbl+bzPKhszm6d1uSBl70Tq\n 1ULpwowPP6Nk++O7nvV1SbCkGZaMJsg3kUOxXhkcrzBTJEr9HwHK4c/NFZxZw4taFHDK\n 8bLuq+HoidLtLfI7IQ/yW5cya1fkWh1oSl8fkbE++0t1VvoWGEsApt/0CwzQJunvgfxu\n w8tqa4oxkoqfOHxRAbrjy4qqRkDaYa9N5vH9PtWPf1ZA7tHxTxvD0f9SGIGW/8I9jDEn\n RRkw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774414763; x=1775019563;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=7o0jeXZgIbwXhYRuM6WT1L4AYIttXsytLPoI39nGUfU=;\n b=AZXJyLMpysdSeGMJ6WmtNLsqTXPsd84F7FtFGIyf5B5Tw/qIB2HkXyS59AUgltwECk\n S/gJyRYAGs1cwb6F0xbJVQfDQT5FpWvcAZdC4HgpcLI9SORb91/L5VI4tSqtzCB5K3h9\n zI+UBiGI75RYnoqOtMMXhsMQySGScJa/WuzY7LjP70dPVGvGMdVFhLzYqnEES4d7TudG\n EW+KUbpOH+qrYd9TkU4WCSwxW1v+z4oy3cE6rlqOp2Qed2H/1xEtlbJNlgXC/K+SiEk6\n 16nychJpoVUDmxJHY/Dh1pISR3VKTcdaOeZrhPeKM1vfr15C4C2+pV1Q+utdf9jCyKLG\n wb1g==","X-Forwarded-Encrypted":"i=1;\n AJvYcCVlXqhkG91p+fXxCEq4sqwBov6FYEUI388yehP/8f8ePhcgR5qrg9qnF3f3fYHfJHOsM6VQhHLY75pD@nongnu.org","X-Gm-Message-State":"AOJu0Yzc+YKma++d9plzKPnFwt9sxcwjvXwIQr3mgAZfE7iTLiZv0n3R\n WqwOGgzXBhlnWo/kJMgU+XKLSUkIKdjY8gzU1lwfWXqfPSKhxcwX0pH24sYVJiAMUpQM7wgbLJl\n V8agE9Is=","X-Gm-Gg":"ATEYQzxYWKIj3gvUsvOeTWZfPbnpvM1cToW1DFOwGdoIe6fcB9n9YAcbmV4OF2blBsQ\n Qfh8tbsOyjAn6qTD0bXsIZaYIFGIymUlYK6IgNfXfu6ygIxV2/mt+125eUNwD9nEUeIXwWTfAun\n kfTqXDKhfk6cpEQonz45/wHqfmV/In3bpYEkj1mIKpn3dUECEO2nad3zjGhU2u3UcmBX3kN+ixn\n FlOYWaupUbWtKabhe+aCz5xhZoTj77wiGxgZXo3afKHPx0pVQiviwmdYaw9yFdMZM5AuzGJzvST\n wX0mN4a+l5DYCifMcpvdtpUuq2dS1mX5i/f3arpjrEFNuVHBmgUMu3lpx258F0MfQYmZis2y9ig\n +seg+c8XDPCO+WhqC6DPDf/S1AGkmU7DFJoQNx6B12TUltzd5T2ESa1pIaaeQ8zU8cz8TeGuwrE\n IIKCI0f/ycdTPnFFgCFg88koc5cdseqzECeDdJUrwReQ==","X-Received":"by 2002:a17:903:2bce:b0:2ae:63a4:3baf with SMTP id\n d9443c01a7336-2b0b0b0f401mr25372725ad.46.1774414762660;\n Tue, 24 Mar 2026 21:59:22 -0700 (PDT)","Message-ID":"<8c67019a-49c0-4651-9c02-0d15ae262888@linaro.org>","Date":"Wed, 25 Mar 2026 14:59:16 +1000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","To":"Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-devel@nongnu.org","References":"<20260325004052.1026892-1-richard.henderson@linaro.org>\n <456faa09-4889-43e2-a35a-449888f9249e@linaro.org>","From":"Richard Henderson <richard.henderson@linaro.org>","Content-Language":"en-US","In-Reply-To":"<456faa09-4889-43e2-a35a-449888f9249e@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::532;\n envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x532.google.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,\n RCVD_IN_DNSWL_NONE=-0.0001, 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"}},{"id":3669142,"web_url":"http://patchwork.ozlabs.org/comment/3669142/","msgid":"<1bc4bc8c-4ef7-445f-816f-f76380ee264a@linaro.org>","list_archive_url":null,"date":"2026-03-25T15:15:51","subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","submitter":{"id":85798,"url":"http://patchwork.ozlabs.org/api/people/85798/","name":"Pierrick Bouvier","email":"pierrick.bouvier@linaro.org"},"content":"On 3/24/26 9:59 PM, Richard Henderson wrote:\n> On 3/25/26 11:39, Pierrick Bouvier wrote:\n>> Hi Richard,\n>>\n>> On 3/24/26 5:40 PM, Richard Henderson wrote:\n>>> If the host does not support swapped-endian loads and stores,\n>>> then we emulate those within the tcg expanders with explicit\n>>> bswap operations.\n>>>\n>>> However, we were passing values to the plugin interface in\n>>> the middle of those bswap operations, which meant that we\n>>> would pass values of the wrong endianness to plugins when\n>>> running on hosts without swapped-endian loads and stores.\n>>>\n>>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3351\n>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>\n>>> ---\n>>>\n>>> Hi Pierrick,\n>>>\n>>> On IRC I expressed the opinion that there was an additional\n>>> big-endian bug with how we treat neg.plugin_mem_value_low,\n>>> but I now see that isn't true, because of how we adjust the\n>>> store address in plugin_gen_mem_callbacks_i32.\n>>>\n>>\n>> Yes, we store the value directly swapped, so there is no further transformation needed.\n>\n> It's not about storing the value swapped, it's about storing the i32 to the low part of\n> the uint64_t for the host endianness.\n>\n\nI finally realized the orig_value we had is already in host-endian \norder, while I was assuming it was in target-endian order. Thus the \nconfusion in our conversion. All good now.\n\n>> It works, but it is still not clear to me why the value orig_val (which is not swapped and\n>> in target-endian order) gets stored swapped correctly in neg.plugin_mem_value_low.\n> \n> Again, it is *not* swapped: orig_val is host-endian order, and so is neg.plugin_mem_value_low.\n> \n>> I'll probably add another patch to document that better in plugin api, and remove the\n>> additional swapping done in tests/tcg/plugins/mem.c.\n> \n> What swapping is that?\n>\n\nIt tracks memory regions we accessed, so which byte was written matters \nin this case, thus the need to swap to target-endian order.\n\n> There's a variable called \"swapped_value\", but it appears to be mis-named, or a remnant of\n> swapping that used to occur.\n>\n\nIt's basically the value in target-endian order. FROM_BE should to TO_BE \nas well, even though both macros do exactly the same (FROM or TO acting \nas documentation to express the intent).\n\n> \n> r~","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=kvuzR9KT;\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)"],"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 4fgr985Dnwz1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 02:16:43 +1100 (AEDT)","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 1w5Pxi-0003xr-SM; Wed, 25 Mar 2026 11:16:02 -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 <pierrick.bouvier@linaro.org>)\n id 1w5Pxf-0003xb-2D\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 11:15:59 -0400","from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@linaro.org>)\n id 1w5Pxb-0007QN-Qe\n for qemu-devel@nongnu.org; Wed, 25 Mar 2026 11:15:57 -0400","by mail-pf1-x432.google.com with SMTP id\n d2e1a72fcca58-8299f1ca894so4006708b3a.2\n for <qemu-devel@nongnu.org>; Wed, 25 Mar 2026 08:15:54 -0700 (PDT)","from [192.168.1.87] (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82c7d3c293fsm31620b3a.49.2026.03.25.08.15.52\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Wed, 25 Mar 2026 08:15:52 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1774451753; x=1775056553; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=bvLQkyAMiIv5jPCjU2g12PGqCQELg5JieBzoCK+7LQI=;\n b=kvuzR9KTeqnIUkxUQxGniXWkGLVYUtEyjxHZyvt1tHgg8o3xFz6+XAIVVBsqWZLeUH\n jt1Jf6vV8JI5Ey3DENk1dgY3symSEsMNJHWo19+2IrHxNnwu6EQD3L9voKcki+0/LQzN\n /nLkdf1HoRoSkkUTRNozkS2u8kPAi6iKMi00qnCbsXBlV40ORhzP9D7AqANFscBCY/q3\n plr+PJG9Xjl+FteKjiDN7/jQHZ1AND0qpkgSXN919O1S5ZtBog0Wq4k8KoYizLnaNXvP\n DTuXUM8ufTMrwmTqjVFSvGlO3oL8/n68FWrkdRrc3ilTL4aESppxrEMElLJp8FH/BQ6v\n JGwQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774451753; x=1775056553;\n h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=bvLQkyAMiIv5jPCjU2g12PGqCQELg5JieBzoCK+7LQI=;\n b=ds4/tAmbXfC7FkXPHl5PPlvflR+zfO2RoS5qA0i0payilqWQdixO8UuUSLIih+lvEq\n +5pOV5YVcFVJiffajjpSFa1gXXYONs3RQIh2X8Iflvholu4hYxVRmsqZ3aRETM+ce7Ko\n gRB8I+X7BVleC8GtJLaTHH2A8MhQtc2gwbIWss+2+8OTcsi3G0owZWkI298HYBIi7PKI\n rS51zOkpwenpE9jODorJo23UPtUn2wfuA6x8RkFZB3MRiGnZjjhSNmVV697pslFBYrP4\n YA0ZO1XEfqYM66ybuF16fBKkg0j3bGLJpfkU4le3nhWIv9SSDLokfielDDnX2NeXuhMu\n W8nA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCW2nD2uOx5OLq+t+i3j2mQLNayf+cP9h8gOFuRnHYoL/QFNjyH+Sgia+ZgwC/H1Gth24es9UxnQ8DZy@nongnu.org","X-Gm-Message-State":"AOJu0Yz8qh9FNia9U/lHx8xpD6aFCm7iL4bkPq0kG9sLKyZN6MmIeUNs\n yBJkX4Ts0PzSMh9FtPrzQSh2ztcZ2dONvCxImOq6DD3BFxOhJmSBYQGKVwjc4VA837I=","X-Gm-Gg":"ATEYQzwnO8l2yKABeoTBydJsBpVQZlv5BkOl/H2LZmXWOsVO81P4UiusjLiFC3k9TT5\n 9HGhK+0RFI/6ebuH9MpCZSfyZCGL4TU8uTUsipHddVLZ1zofuARDG418sQwkIwLfNlpKC/gfKOy\n EKfOPdDGeFMqy9a0AOJeggurlj6fXaUoM/37MtQtJ0wr9gBfu+SavszFdgSVZDCePDmniIiUkLs\n 2BJcjmWrwh3JZA4JCURkAP+Cgf3oyuhFqPxSnSd7NBYikDt0YePq2zYnOPlMAdSvbAgpvr3Y1/Z\n 39ZFNYCyetg+ADFhA5xOw955niHoAiL8YSyhgHpzJDTs1tKyI0uu9BR6CZnTqzx22Zfl/Ae3lSE\n P/wwN/hMqBIlgEeIsO1H2WJ7GN/W4ZcURsFNE12Kw+5AYod0dScbX5CjoHdrjPCiSJBqB7kfRgw\n X8XaUOWlXiB/TIwoFPfRRtu3bLKrrS1D9gGNeMf2+BQgbD/VzYCyzs2rprjzPpfuPjzBb6","X-Received":"by 2002:a05:6a00:450e:b0:827:489d:76d0 with SMTP id\n d2e1a72fcca58-82c6dec0565mr4224312b3a.14.1774451753157;\n Wed, 25 Mar 2026 08:15:53 -0700 (PDT)","Message-ID":"<1bc4bc8c-4ef7-445f-816f-f76380ee264a@linaro.org>","Date":"Wed, 25 Mar 2026 08:15:51 -0700","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH for-11.0] tcg: Pass host-endian values to\n plugin_gen_mem_callbacks_*","Content-Language":"en-US","To":"Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org","References":"<20260325004052.1026892-1-richard.henderson@linaro.org>\n <456faa09-4889-43e2-a35a-449888f9249e@linaro.org>\n <8c67019a-49c0-4651-9c02-0d15ae262888@linaro.org>","From":"Pierrick Bouvier <pierrick.bouvier@linaro.org>","Autocrypt":"addr=pierrick.bouvier@linaro.org; keydata=\n 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\n ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=","In-Reply-To":"<8c67019a-49c0-4651-9c02-0d15ae262888@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::432;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x432.google.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,\n RCVD_IN_DNSWL_NONE=-0.0001, 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"}}]