Show a cover letter.

GET /api/1.1/covers/2220240/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2220240,
    "url": "http://patchwork.ozlabs.org/api/1.1/covers/2220240/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260406182609.193886-1-pierrick.bouvier@linaro.org/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": ""
    },
    "msgid": "<20260406182609.193886-1-pierrick.bouvier@linaro.org>",
    "date": "2026-04-06T18:25:49",
    "name": "[v8,00/20] target/arm: single-binary",
    "submitter": {
        "id": 85798,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/85798/?format=api",
        "name": "Pierrick Bouvier",
        "email": "pierrick.bouvier@linaro.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260406182609.193886-1-pierrick.bouvier@linaro.org/mbox/",
    "series": [
        {
            "id": 498886,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/498886/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498886",
            "date": "2026-04-06T18:25:52",
            "name": "target/arm: single-binary",
            "version": 8,
            "mbox": "http://patchwork.ozlabs.org/series/498886/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2220240/comments/",
    "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=OxNfHvYf;\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 4fqHqg4w7Qz1yFt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 04:27:27 +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 1w9oea-0007L3-Is; Mon, 06 Apr 2026 14:26:28 -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 1w9oeU-0007IG-FU\n for qemu-devel@nongnu.org; Mon, 06 Apr 2026 14:26:22 -0400",
            "from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b])\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 1w9oeR-0002KQ-Nj\n for qemu-devel@nongnu.org; Mon, 06 Apr 2026 14:26:22 -0400",
            "by mail-pg1-x52b.google.com with SMTP id\n 41be03b00d2f7-c76f55b60c9so647532a12.0\n for <qemu-devel@nongnu.org>; Mon, 06 Apr 2026 11:26:19 -0700 (PDT)",
            "from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44]) by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-c76c6561fe9sm12765080a12.15.2026.04.06.11.26.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 06 Apr 2026 11:26:16 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1775499977; x=1776104777; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=M97suiVPrp1lyPoQkNqQ+dJH5bK6giyR71NuVAofqHg=;\n b=OxNfHvYfZXxzG+aV9vD7p6arQsibchSxxSo5qLLnunk0SGGffVlo/zz9YeYBxm6WKf\n Jj8TZkxuqWy54y1/8EITCTw9Kq0v5Sl7oV6ZLzpTyUmGh1sp44Ce2kz6CrNF5NzVOVIy\n j3NCtd0Zr/rQi9NMBg85i8KoYvxEJUd9+DYA6AQGw2DCVVjTKWjfoza5KILIUDLJdbWg\n XEtghhV/VoQQFs4qKZT60gHRH+wcQK9qYX/Sm3q5h3ipo8abR9XnxLZyvqSkP+0CPGX1\n qi0sHtZGKEcj1iiK7HKep92JZZzt58BSy3h/uiNsPTQUYpn8ikDbXPVE6KBc1+T7GEfU\n XNgQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775499977; x=1776104777;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=M97suiVPrp1lyPoQkNqQ+dJH5bK6giyR71NuVAofqHg=;\n b=BnHmW+FwJmFWLqWFPGSLNeCRxFq4YPncXm57daBXf8XyY8gyjz+v/IHEy1r1VtEkvY\n 8YbbOTVqYbmwVkmvILQJvqCyzi81gkddDA0/69fcyd/7fXS/kBb6HS+PY1TP3P8nb+MA\n ok7TAZ2Zj35YFdBFWXiEpp0p0PVBYu0EIvkY4aHMxvEcoSgkSoSXcqMAH5EMhp+icg2Y\n CnhDz+DRLjhQYnqJcuAPRWg93Bh9IK3yYNzUitcotFvOVCBFjVYj/YPy9MQbyVq7VuLF\n XdlFRxE9oi7/K9E155g1FnxU1/iYcILMDfr42XOqhjoq9EbYS9kKnpR0ZhvqB5qeD+M/\n ZnFw==",
        "X-Gm-Message-State": "AOJu0YxW/9h302e2gZHViFuu4F6sfq+O1nX67/uIM9JouBkNgMqYW1w7\n Mf2/AJWRWCH3R4T0mVPER9Jz/bMxybNDqqcWx9phi4TYyY5dvH6bNKyM4F0D/EyZLphzLJvPPtw\n 7x9N0R7RLRg==",
        "X-Gm-Gg": "AeBDievpbE9/QONRJ8qzBULecdFbWUXNHt5Mf3KQzISHnFAk0YN0HTX0tiLOmj5Nk3N\n PyP32enGkSMuBpkOix4+xOOLNJk8OIQAhxYNumBqJXVlyGyiOfobt0itcjGXdV8YDVd4hh71eTO\n v/au5cVaCF6qzVs1usW+FNVRL/0uQgeB6GXu/GBsRyG1MuDq/BwqpJ5pT01mpz/Mb90enUy+/E+\n sI/WbRYPGJXagWkqD1VWfypBG2JVqonlvoWigO2DAlcvsUqqQKNSlR8tUUFxfHbYOtLlhvUtNo+\n JfewieyhhsMGLrWCpEcWqHbRlCSnsz3Yfgidm57B40ynlO+bBe4jOgWxomXGqoAcHZihZtUlTWK\n VKnUEU+8XI1ydeEH+svmewZDj0RMYFisUBbG+2SLpbfn61zGBdXKiuFDR67CdsK6LGccM0kg3F0\n lOVykc7l67TUfP2DbkMAdV8qaS+4tI3fSt7WmsIwncXNAmDK/195ocDdFM0miw4Svh0hkSNi695\n KzG0tb8BFmWEME=",
        "X-Received": "by 2002:a05:6a20:12c5:b0:39f:24ad:ad00 with SMTP id\n adf61e73a8af0-39f2ed758bamr14155230637.7.1775499976973;\n Mon, 06 Apr 2026 11:26:16 -0700 (PDT)",
        "From": "Pierrick Bouvier <pierrick.bouvier@linaro.org>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Peter Maydell <peter.maydell@linaro.org>,\n Richard Henderson <richard.henderson@linaro.org>, jim.macarthur@linaro.org,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>, philmd@linaro.org, qemu-arm@nongnu.org",
        "Subject": "[PATCH v8 00/20] target/arm: single-binary",
        "Date": "Mon,  6 Apr 2026 11:25:49 -0700",
        "Message-ID": "<20260406182609.193886-1-pierrick.bouvier@linaro.org>",
        "X-Mailer": "git-send-email 2.47.3",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=2607:f8b0:4864:20::52b;\n envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x52b.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=unavailable 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": "This series tackles (most of) the rest of target/arm, especially tcg folder.\n\nWe extract tcg memory operation in a new header, with a new type representing\nvirtual addresses.\n\nInitially, I went down the way to have a dynamic definition of TCGv, which\nrequired much more boilerplate and runtime checks. After discussing with\nRichard, I realized it was not needed, and that could simply split 32 and 64 bit\nproperly in different files instead. This approach will not work with other\narchitectures, requiring something else, but it's enough for target/arm.\n\nFiles left are:\n- target/arm/tcg/mve_helper.c\n- target/arm/tcg/m_helper.c\n- target/arm/tcg/cpu32.c\n\nv8\n--\n\n- make translate.c compilation unit common.\n\nv7\n--\n\n- add parameter to translator_loop to indicate address type for current tb.\n- remove TCGv from target/arm/tcg/translate.c\n\nv6\n--\n\n- meson.build: extract decode files in separate variables and explicitly include\n  them in user and system code. The duplication is now minimized: one instance\n  for all system binaries, and one per user binary.\n\nv5\n--\n\n- reimplemented what v0 did with new approach defining new tcg-op-mem header\n- reapply all straightforward patches from v0\n- only translate.c is left, but first want to validate that changes here are ok\n  for maintainers before doing more.\n\nv0\n--\n\nSee original thread:\nhttps://lore.kernel.org/qemu-devel/20260109053158.2800705-1-pierrick.bouvier@linaro.org/#t\n\nNote about v1 -> v4\n-------------------\n\n- After v0 which was trying to do too many changes, v1 to v4 focused on smaller\n  things, and all patches have been merged already.\n  https://patchew.org/QEMU/20260219040150.2098396-1-pierrick.bouvier@linaro.org/\n\nPierrick Bouvier (20):\n  include/tcg/tcg-op: extract memory operations to tcg-op-mem.h\n  target/arm/translate.h: remove tcg-op.h include\n  target/arm/tcg/translate.h: remove tcg-op-gvec.h include\n  target/arm/tcg/translate.h: remove TARGET_AARCH64\n  target/arm/tcg/translate-vfp.c: make compilation unit common\n  target/arm/tcg/translate-neon.c: make compilation unit common\n  target/arm/tcg/translate-mve.c: make compilation unit common\n  target/arm/tcg/translate-m-nocp.c: make compilation unit common\n  target/arm/tcg/op_helper.c: make compilation unit common\n  target/arm/tcg/gengvec.c: make compilation unit common\n  target/arm/tcg/translate.c: remove MO_TE usage\n  target/arm/tcg/translate.c: replace target_ulong with uint32_t\n  tcg/translator: add parameter to translator_loop for current addr type\n  target/arm/tcg/translate.c: replace TCGv with TCGv_va\n  target/arm/tcg/translate-a64.c: use translator_ldl_end instead of\n    arm_ldl_code\n  target/arm/tcg/arm_ldst.h: merge in translate.c\n  target/arm/tcg/translate.c: replace translator_ldl_swap with\n    translator_ldl_end\n  target/arm/tcg/translate.c: remove target_ulong\n  target/arm/tcg/translate.c: remove TARGET_AARCH64\n  target/arm/tcg/translate.c: make compilation unit common\n\n include/exec/translator.h        |   4 +-\n include/tcg/tcg-op-mem.h         | 126 +++++++++++++++++++++++++++++++\n include/tcg/tcg-op.h             | 100 +-----------------------\n include/tcg/tcg.h                |   5 ++\n target/arm/internals.h           |   2 +\n target/arm/tcg/arm_ldst.h        |  47 ------------\n target/arm/tcg/translate.h       |  14 +---\n accel/tcg/translator.c           |   4 +-\n target/alpha/translate.c         |   3 +-\n target/arm/tcg/op_helper.c       |   1 -\n target/arm/tcg/stubs32.c         |  24 ++++++\n target/arm/tcg/translate-a64.c   |  14 +++-\n target/arm/tcg/translate-sme.c   |   1 +\n target/arm/tcg/translate-sve.c   |   1 +\n target/arm/tcg/translate.c       |  80 +++++++++++++-------\n target/avr/translate.c           |   3 +-\n target/hexagon/translate.c       |   3 +-\n target/hppa/translate.c          |   3 +-\n target/i386/tcg/translate.c      |   3 +-\n target/loongarch/tcg/translate.c |   3 +-\n target/m68k/translate.c          |   3 +-\n target/microblaze/translate.c    |   3 +-\n target/mips/tcg/translate.c      |   3 +-\n target/or1k/translate.c          |   3 +-\n target/ppc/translate.c           |   3 +-\n target/riscv/translate.c         |   3 +-\n target/rx/translate.c            |   3 +-\n target/s390x/tcg/translate.c     |   3 +-\n target/sh4/translate.c           |   3 +-\n target/sparc/translate.c         |   3 +-\n target/tricore/translate.c       |   3 +-\n target/xtensa/translate.c        |   3 +-\n target/arm/tcg/meson.build       |  57 ++++++++++----\n 33 files changed, 312 insertions(+), 222 deletions(-)\n create mode 100644 include/tcg/tcg-op-mem.h\n create mode 100644 target/arm/tcg/stubs32.c"
}