[{"id":3678886,"web_url":"http://patchwork.ozlabs.org/comment/3678886/","msgid":"<CAEqNhNbBfUNjtbT_OLdrEg1Ewj=oVjGePGDOeMV=-SLP1E3ErQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-17T20:51:46","subject":"Re: [PATCH 1/2] target/hexagon/meson.build: simplify decodetree file\n generation","submitter":{"id":89839,"url":"http://patchwork.ozlabs.org/api/people/89839/","name":"Brian Cain","email":"brian.cain@oss.qualcomm.com"},"content":"On Fri, Apr 17, 2026 at 2:46 PM Pierrick Bouvier\n<pierrick.bouvier@oss.qualcomm.com> wrote:\n>\n> Use a loop over instructions sets and decodetree generator instead of\n> manual custom targets repeated.\n> Modify included files accordingly in target/hexagon/decode.c.\n>\n> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>\n> ---\n\nReviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>\n\n>  target/hexagon/decode.c    |  14 ++--\n>  target/hexagon/meson.build | 145 +++++--------------------------------\n>  2 files changed, 26 insertions(+), 133 deletions(-)\n>\n> diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c\n> index dbc9c630e8..4de0541536 100644\n> --- a/target/hexagon/decode.c\n> +++ b/target/hexagon/decode.c\n> @@ -67,15 +67,15 @@ static int shift_left(DisasContext *ctx, int x, int n, int immno)\n>  }\n>\n>  /* Include the generated decoder for 32 bit insn */\n> -#include \"decode_normal_generated.c.inc\"\n> -#include \"decode_hvx_generated.c.inc\"\n> +#include \"decode-normal.c.inc\"\n> +#include \"decode-ext_mmvec.c.inc\"\n>\n>  /* Include the generated decoder for 16 bit insn */\n> -#include \"decode_subinsn_a_generated.c.inc\"\n> -#include \"decode_subinsn_l1_generated.c.inc\"\n> -#include \"decode_subinsn_l2_generated.c.inc\"\n> -#include \"decode_subinsn_s1_generated.c.inc\"\n> -#include \"decode_subinsn_s2_generated.c.inc\"\n> +#include \"decode-subinsn_a.c.inc\"\n> +#include \"decode-subinsn_l1.c.inc\"\n> +#include \"decode-subinsn_l2.c.inc\"\n> +#include \"decode-subinsn_s1.c.inc\"\n> +#include \"decode-subinsn_s2.c.inc\"\n>\n>  /* Include the generated helpers for the decoder */\n>  #include \"decodetree_trans_funcs_generated.c.inc\"\n> diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build\n> index d169cf71b2..d993e1b520 100644\n> --- a/target/hexagon/meson.build\n> +++ b/target/hexagon/meson.build\n> @@ -93,135 +93,28 @@ hexagon_ss.add(iset_py)\n>  # Step 4\n>  # Generate the input to the QEMU decodetree.py script\n>  #\n> -normal_decode_generated = custom_target(\n> -    'normal_decode_generated',\n> -    output: 'normal_decode_generated',\n> +insn_sets = {\n> +'NORMAL':     ['--static-decode=decode_normal'],\n> +'EXT_mmvec':  ['--static-decode=decode_hvx'],\n> +'SUBINSN_A':  ['--static-decode=decode_subinsn_a', '--insnwidth=16'],\n> +'SUBINSN_L1': ['--static-decode=decode_subinsn_l1', '--insnwidth=16'],\n> +'SUBINSN_L2': ['--static-decode=decode_subinsn_l2', '--insnwidth=16'],\n> +'SUBINSN_S1': ['--static-decode=decode_subinsn_s1', '--insnwidth=16'],\n> +'SUBINSN_S2': ['--static-decode=decode_subinsn_s2', '--insnwidth=16'],\n> +}\n> +\n> +foreach insn_set, decodetree_options : insn_sets\n> +  decodetree_file_name = insn_set.to_lower() + '.decode'\n> +  # generate decodetree file\n> +  decodetree_file = custom_target(\n> +    output: decodetree_file_name,\n>      depends: [iset_py, semantics_generated],\n>      env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'NORMAL', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(normal_decode_generated)\n> +    command: [python, files('gen_decodetree.py'), semantics_generated, insn_set, '@OUTPUT@'])\n>\n> -hvx_decode_generated = custom_target(\n> -    'hvx_decode_generated',\n> -    output: 'hvx_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'EXT_mmvec', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(hvx_decode_generated)\n> -\n> -subinsn_a_decode_generated = custom_target(\n> -    'subinsn_a_decode_generated',\n> -    output: 'subinsn_a_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'SUBINSN_A', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(subinsn_a_decode_generated)\n> -\n> -subinsn_l1_decode_generated = custom_target(\n> -    'subinsn_l1_decode_generated',\n> -    output: 'subinsn_l1_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'SUBINSN_L1', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(subinsn_l1_decode_generated)\n> -\n> -subinsn_l2_decode_generated = custom_target(\n> -    'subinsn_l2_decode_generated',\n> -    output: 'subinsn_l2_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'SUBINSN_L2', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(subinsn_l2_decode_generated)\n> -\n> -subinsn_s1_decode_generated = custom_target(\n> -    'subinsn_s1_decode_generated',\n> -    output: 'subinsn_s1_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'SUBINSN_S1', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(subinsn_s1_decode_generated)\n> -\n> -subinsn_s2_decode_generated = custom_target(\n> -    'subinsn_s2_decode_generated',\n> -    output: 'subinsn_s2_decode_generated',\n> -    depends: [iset_py, semantics_generated],\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files('gen_decodetree.py'), semantics_generated, 'SUBINSN_S2', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(subinsn_s2_decode_generated)\n> -\n> -#\n> -# Run the QEMU decodetree.py script to produce the instruction decoder\n> -#\n> -decodetree_py = meson.current_source_dir() / '../../scripts/decodetree.py'\n> -decode_normal_generated = custom_target(\n> -    'decode_normal_generated.c.inc',\n> -    output: 'decode_normal_generated.c.inc',\n> -    input: normal_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), normal_decode_generated, '--static-decode=decode_normal', '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_normal_generated)\n> -\n> -decode_hvx_generated = custom_target(\n> -    'decode_hvx_generated.c.inc',\n> -    output: 'decode_hvx_generated.c.inc',\n> -    input: hvx_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), hvx_decode_generated, '--static-decode=decode_hvx', '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_hvx_generated)\n> -\n> -decode_subinsn_a_generated = custom_target(\n> -    'decode_subinsn_a_generated.c.inc',\n> -    output: 'decode_subinsn_a_generated.c.inc',\n> -    input: subinsn_a_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), subinsn_a_decode_generated, ['--static-decode=decode_subinsn_a', '--insnwidth=16'], '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_subinsn_a_generated)\n> -\n> -decode_subinsn_l1_generated = custom_target(\n> -    'decode_subinsn_l1_generated.c.inc',\n> -    output: 'decode_subinsn_l1_generated.c.inc',\n> -    input: subinsn_l1_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), subinsn_l1_decode_generated, ['--static-decode=decode_subinsn_l1', '--insnwidth=16'], '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_subinsn_l1_generated)\n> -\n> -decode_subinsn_l2_generated = custom_target(\n> -    'decode_subinsn_l2_generated.c.inc',\n> -    output: 'decode_subinsn_l2_generated.c.inc',\n> -    input: subinsn_l2_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), subinsn_l2_decode_generated, ['--static-decode=decode_subinsn_l2', '--insnwidth=16'], '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_subinsn_l2_generated)\n> -\n> -decode_subinsn_s1_generated = custom_target(\n> -    'decode_subinsn_s1_generated.c.inc',\n> -    output: 'decode_subinsn_s1_generated.c.inc',\n> -    input: subinsn_s1_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), subinsn_s1_decode_generated, ['--static-decode=decode_subinsn_s1', '--insnwidth=16'], '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_subinsn_s1_generated)\n> -\n> -decode_subinsn_s2_generated = custom_target(\n> -    'decode_subinsn_s2_generated.c.inc',\n> -    output: 'decode_subinsn_s2_generated.c.inc',\n> -    input: subinsn_s2_decode_generated,\n> -    env: {'PYTHONPATH': meson.current_build_dir()},\n> -    command: [python, files(decodetree_py), subinsn_s2_decode_generated, ['--static-decode=decode_subinsn_s2', '--insnwidth=16'], '-o', '@OUTPUT@'],\n> -)\n> -hexagon_ss.add(decode_subinsn_s2_generated)\n> +  # Run the QEMU decodetree.py script to produce the instruction decoder\n> +  hexagon_ss.add(decodetree.process(decodetree_file, extra_args: decodetree_options))\n> +endforeach\n>\n>  #\n>  # Generate the trans_* functions that the decoder will use\n> --\n> 2.47.3\n>","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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=gPYlI1Zl;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=SYq+HoBa;\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=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.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 4fy6XZ0Q44z1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 06:53:00 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wDqAf-0006of-MA; Fri, 17 Apr 2026 16:52:13 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <brian.cain@oss.qualcomm.com>)\n id 1wDqAe-0006lZ-1n\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 16:52:12 -0400","from mx0b-0031df01.pphosted.com ([205.220.180.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <brian.cain@oss.qualcomm.com>)\n id 1wDqAa-0001Ym-It\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 16:52:11 -0400","from pps.filterd (m0279873.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63HG4NhY1985512\n for <qemu-devel@nongnu.org>; Fri, 17 Apr 2026 20:52:05 GMT","from mail-dl1-f69.google.com (mail-dl1-f69.google.com\n [74.125.82.69])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dkfyqtthj-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Fri, 17 Apr 2026 20:52:05 +0000 (GMT)","by mail-dl1-f69.google.com with SMTP id\n a92af1059eb24-1270dcd11c1so1765339c88.0\n for <qemu-devel@nongnu.org>; Fri, 17 Apr 2026 13:52:05 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n XgQZZ+RNoKBxawhypWAf0L46TkYprmTBzVd2HR/HMqs=; b=gPYlI1ZleMtEch/T\n aP4sA+x0GglIwrPD91FBcVxFtQszH6s1OSUPtfYB9TlFUHvP7Coo+V+HNAJmSnjU\n 9jZtbs1ASKy7qCoC2O7RqUBUvxaUnFU3SBCCys5BisiWG12xNX2bCMKxfOegTsMT\n ACUcuih0IexIDBCIU6IQFjJMPl3+e+9zi9wR43lXn3jhIuoTLu7tRWljqqGYWlqS\n Tku+7URGcttzSrWEIxThKcM2cI28ZUAjHW5Qa8UdusbOyXI0QB5ZWQ9pbMSqOp4X\n Yc2jUW3nmNrMW50bP5+3r+FfXnp2z/VS07cNcGk8c2Qhguw+Uz4x1iN/3vfiKD5Q\n h8lD5Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776459124; x=1777063924; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=XgQZZ+RNoKBxawhypWAf0L46TkYprmTBzVd2HR/HMqs=;\n b=SYq+HoBaxIxiR51ImE/pCoOiRKBLEcAPxt0qha1QozsxHseiaSIyT72Mocs+FGeycP\n ktlBYxpDBIvbscMv3akUotIvBIGVdU8bNjps0uvsXOZbISqRN12kJJ+IIeDb86LpMwl2\n oGQOnuJkiCeoeOjBC/rvjABwDso82VrZ21uiJGQIGxBKvvCoDA8Eaf2I0feIeAtKObQy\n AhD21UptC9RpdSrApr+8ytHH0Vtl/bo6WjC2ERe7USQLlmOJD4evDHZnmzmQhIKcxkkh\n 04luPVKaNamCOeTSNODgwQxrYBo1hIemaud0SNRXYglyqwG0IlQxIU5qHFDGt8l67H4o\n sWzw=="],"ARC-Seal":"i=1; a=rsa-sha256; t=1776459124; cv=none;\n d=google.com; s=arc-20240605;\n b=Zf1MRSX4+fXg3QLoX+Z0K8DtQQvQXUPlhT1pCohubHf3xbsCL+dDhPhlaHIaN3unyj\n PmfFCsMu4v9a7Gph1wZUhw7E5sy9JQfHIT4WHCVgQmJEeRXDwlAzP+ljMXYZC5n07rF9\n r0lmnTmdSj0FXuE+VJbl5/A3LW2XskBwerapAsCMpydVjEIFH5FyfnA0JCaF4fWCLOTc\n UvfmGMuASv5VjivwjLRig1Nm0bk7tEt38y+WKQLVq+lLlw43zx7DAoI4RSpnNlWqx+PB\n DHQXjX+2613VR9R5eXP5PIPKnVv2Z3KJL3+hRp5vWomNjS8t1o3jjCR//au48p9BjpSV\n qRrw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=XgQZZ+RNoKBxawhypWAf0L46TkYprmTBzVd2HR/HMqs=;\n fh=GWvQFnvgluS9XxOXx8Aj3eG17Oq+EZKzvZqSKBLhuHU=;\n b=Xq5WoQwnsOtG6DWRynFF5q7CYkbAKsHUzbhxIKoFKuW9fei/MhB8wXlxN9qOz2UU7g\n BryTVafdfS7Oi+zGpvdP79MmdAyLdkoO5X9BWWBSY39erbGP4lMIEa9Hwv0VYFdqGv36\n UrUQbBqkvBIpOUu/vqxhx9hvKAJ4Q/oXIlQkd2cQ5bKTDl8gYfBmTfn7towGQegp+4Uj\n 8HRxVlIkNN/wrwdTA0mZFtdTAUcVTTLtMfV4Nhn7BU2C6JfsndMoFcO/xx+2Ld8JXp/x\n N8qAGxoKb/Mg79TNyplN7TVU7ZMQSQhdDWJh8ijQ+MDMfORWc0eM4dw2ECaEIB1xDOly\n gR0w==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776459124; x=1777063924;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=XgQZZ+RNoKBxawhypWAf0L46TkYprmTBzVd2HR/HMqs=;\n b=r+SZZaj1xeKVpuljSYV4v5AFXHFejyxLnfHz8tV/YfLYI4WHd7A6BYWRefUTwFQzp3\n rEdP69X2GIjOCSQ78AE37j/9H8vbj9iFTWcJS5P3J9jQc0m7h69nXwYspG5+8QWjzlVy\n wxrrJQ/REIQcpkGD08RJx3Op9orrYTPBnKSml7EIHgjU88A6dijac2F640ExWwCg1y3e\n LxmEQre0hDboX6GZAg/brkxqGen0Tjcbr+nIAvWOXdNlxy15zVvxg+uIIClLgjoEYGAA\n LvlVXME5iE4KUXwAVgUcPKbZAIHkBTvl5APG5ATN4Lyrn1yGG6cj+W/4rC/zAgl/ha/C\n XytQ==","X-Gm-Message-State":"AOJu0Yxdcm0iHHb0cItLixxk+qHnhUPs3bRkDkE1Hs21wKaVexfLL5Gk\n UJLSob0XgL1rPeD1VAxaGe2/H3bmdTNHBH9TCeIpG97tOjkcktTPCaRp3znGOvkiVpUp5Npll6h\n Cco0kkkc5zqNkzOcKfy6yHfJJhFH9r9byM+jrosiF1qYEpkf0rxKzuoWrJ7W49iwzWeX84pnAhd\n NsKK4Kh5ukSK8rgHFzEqghvTUys37So3KL","X-Gm-Gg":"AeBDieuu7TPLRmbtxFOA5nCsj19VtaDVE+hBJNt3xegNrqkk4MZNmtdBDhI1X2K1TGr\n z591Gpot57hQGWC7P+wRN2bg4797fux8xb8+IGY052oCPS/O3vsU03ZL+IpoKGf+A5J6G+4qVZi\n MdKB96bNr/7eFpKSNDYSiJKsxgOdCHdSgfumAUIuk6NAiazsKO8eJ3+cUKTd8cmK/cLccONBaj1\n Dlp7Q9mrusd4jomNc8=","X-Received":["by 2002:a05:7022:6b97:b0:12a:6fb7:87e7 with SMTP id\n a92af1059eb24-12c73e2a4ebmr2067568c88.0.1776459124403;\n Fri, 17 Apr 2026 13:52:04 -0700 (PDT)","by 2002:a05:7022:6b97:b0:12a:6fb7:87e7 with SMTP id\n a92af1059eb24-12c73e2a4ebmr2067549c88.0.1776459123804; Fri, 17 Apr 2026\n 13:52:03 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260417194606.39997-1-pierrick.bouvier@oss.qualcomm.com>\n <20260417194606.39997-2-pierrick.bouvier@oss.qualcomm.com>","In-Reply-To":"<20260417194606.39997-2-pierrick.bouvier@oss.qualcomm.com>","From":"Brian Cain <brian.cain@oss.qualcomm.com>","Date":"Fri, 17 Apr 2026 15:51:46 -0500","X-Gm-Features":"AQROBzAGOCjWIJoCZGUO7cDwH4ZE_RAxcO5zT1nB8XUeUY_9ju33tLelU4L-_bQ","Message-ID":"\n <CAEqNhNbBfUNjtbT_OLdrEg1Ewj=oVjGePGDOeMV=-SLP1E3ErQ@mail.gmail.com>","Subject":"Re: [PATCH 1/2] target/hexagon/meson.build: simplify decodetree file\n generation","To":"Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>","Cc":"qemu-devel@nongnu.org, matheus.bernardino@oss.qualcomm.com,\n Marco Liebel <marco.liebel@oss.qualcomm.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDE3MDIwOSBTYWx0ZWRfXx+TRB3aRoD6S\n SoGqXz0AYuQ7Lo4V1kmbsigJt1ykJt6ZUzWGh4uBElunLlDAF+d56JiSoISvtR+47aiYqN6HPyd\n Hr5Oc1r9L0URmRT8JYiJ2ZR80dEjBr7+fh8dUgEYe+nX7sgH7k3krVJKMtJK+ii2Vlky97q2cwV\n F39DIq0s+XPtsdjCzwj8wnJ39djj1NdSjhioFWgKmdmqj6U0I4tjhh8Bzi4/S6z3n4bLzwdGdWN\n RnqK9GKWh/6qWltjWXkWjtMJrR8yXwgERWtlbpm6CvpX5FF+GSZiARPZbIx2MXNyy/wCAqcHkGe\n ld7j1XbNXv7TKb/PALKcoGzkm1L4FvQ+0Li+c8g5YgOfJWiIi5uSMmX5Cjf5Zj5vVh4WqFUxBWn\n AAeVFRONgnYi51azHJozRRh4neKaUSfaOsELIaN+629NphwFTfPKC2WyGehraqs8RIxqVIzF42I\n YLtNfttDAR+fMTEbGNw==","X-Authority-Analysis":"v=2.4 cv=BZPoFLt2 c=1 sm=1 tr=0 ts=69e29d75 cx=c_pps\n a=kVLUcbK0zfr7ocalXnG1qA==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=gv8_YtWyk9yl9bUiPxAA:9\n a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22","X-Proofpoint-ORIG-GUID":"vF2sa06g79kgn9xgP7tOa27_p9QfV67g","X-Proofpoint-GUID":"vF2sa06g79kgn9xgP7tOa27_p9QfV67g","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-17_02,2026-04-17_04,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 spamscore=0\n clxscore=1015 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604170209","Received-SPF":"pass client-ip=205.220.180.131;\n envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 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_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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"}}]