get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2219444,
    "url": "http://patchwork.ozlabs.org/api/patches/2219444/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/dfb26e41-7ebc-4c5c-b23c-0c3f7a0e54fc@yahoo.co.jp/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<dfb26e41-7ebc-4c5c-b23c-0c3f7a0e54fc@yahoo.co.jp>",
    "list_archive_url": null,
    "date": "2026-04-03T02:00:32",
    "name": "[2/2] xtensa: Change xtensa_legitimize_address() to allow the emission of one more ADDMI instruction",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "db9ae633d51256a12ac0e291f3063f345cbc0c65",
    "submitter": {
        "id": 83997,
        "url": "http://patchwork.ozlabs.org/api/people/83997/?format=api",
        "name": "Takayuki 'January June' Suwa",
        "email": "jjsuwa_sys3175@yahoo.co.jp"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/dfb26e41-7ebc-4c5c-b23c-0c3f7a0e54fc@yahoo.co.jp/mbox/",
    "series": [
        {
            "id": 498578,
            "url": "http://patchwork.ozlabs.org/api/series/498578/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498578",
            "date": "2026-04-03T02:00:32",
            "name": "[1/2] xtensa: Small change to the alternative negsf2 pattern",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498578/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2219444/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219444/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=yahoo.co.jp header.i=@yahoo.co.jp header.a=rsa-sha256\n header.s=yahoocojp-202506 header.b=aisSTyOy;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=yahoo.co.jp header.i=@yahoo.co.jp header.a=rsa-sha256\n header.s=yahoocojp-202506 header.b=aisSTyOy",
            "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=yahoo.co.jp",
            "sourceware.org; spf=pass smtp.mailfrom=yahoo.co.jp",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=124.83.189.19"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fn27W6FJbz1yDH\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 13:03:18 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id E23D64BA2E18\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  3 Apr 2026 02:03:09 +0000 (GMT)",
            "from omggw2006-vm0.mail.snz.yahoo.co.jp\n (omggw2006-vm0.mail.snz.yahoo.co.jp [124.83.189.19])\n by sourceware.org (Postfix) with ESMTPS id 081684BA2E15\n for <gcc-patches@gcc.gnu.org>; Fri,  3 Apr 2026 02:02:40 +0000 (GMT)",
            "from sonicgw.mail.gze.yahoo.co.jp by\n sonicconh5101.mail.kks.ynwp.yahoo.co.jp with HTTP;\n Fri, 3 Apr 2026 02:02:38 +0000",
            "by smtphe5104.mail.kks.ynwp.yahoo.co.jp (YJ Hermes SMTP Server) with\n ESMTPA ID 1104f3d8081c4c30f1ff86da52f8b6b5;\n Fri, 03 Apr 2026 11:02:37 +0900 (JST)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org E23D64BA2E18",
            "OpenDKIM Filter v2.11.0 sourceware.org 081684BA2E15"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 081684BA2E15",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 081684BA2E15",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775181762; cv=none;\n b=OyRUIX7+EzT9xFWHOk3c61BjLvikLrPhtmFHLe0xGwjKpyw3EPv1AgRI8ZozPPQ18zX525ag1tK91ZNyNRwD9KApxwBZfXVsTWAiLlVWsMj9DDk1yWsWTT+vkPZDIcbgDRWHaqdgnGAYH7tG7oYAf4MiPe932KQqwhyXG80Udh8=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775181762; c=relaxed/simple;\n bh=PmuAHIUCzTFrgroQn4m0VkY3lEdb3gG/L/bZAtGYRTM=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject;\n b=b5yWj2LacPpLwmrbybvdTecnC/au+StnoQOE1HSvacCmw08bZJdsAAam6A2TjI/om4TnPENDcIl/zjXWcYYwnzbOYaq9cDBPKP6c7e+KkzttGAmYQLzVKG5B8TZJWYnQxWWj2mfr3NS2AYjnVplzZGQLJWrqLS4Y9Bru1Y5PCKE=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "X-YMail-OSG": "A70fz2kCABjQl9Zg6X/NwV5HsxmpcVZcG7vDgtFHj7cXV3V0388IeYfsYEbIbNI\n YFC7z9JMA/zEtocclgxTVHVfo4Yt5wg7rKAHiYikNJ0UpQQN5TdqIhWbsg2AK5MBYzpqRqZ3Lsrz\n T8RW1U4rQur3HRm563emkPFbSLBrrBsQkE/Tr1EsMl5nvNhmyPYvaR5cDwxAvKqGRjjfVjI01Bm7\n PoRkE/30V5QNQK607J7h+yIdKZylpMV3YPB9IcZfqcpO7aRqNZFAFvRcuiIj7H7tQcJutLjeIzBM\n rXAwd6ppj/9jpsAvBH1KnkAA4UVkVF2P7Rzr91P41Fs7vp5iG1FD2NLmwTM5j2MEGs9p090wW4EJ\n Jvk2NNOaa4jK3XEZXwL6R51HyELCjZsWYeahp+xM9BwIXm8uBspJKontdya6B4VAVSOvZx6Lg1m6\n ci3CjYGKf4qARAg2I7ZLBrCpsoD2hAHyJWfA6fyXgVPyTJOcWQfzliqwr4C+Wmz1jEQRtAMV9A4U\n PzVidMkQpoxUeg0TZvIqRX/Ony2skaLp/TGBaXXR3NnXuJemY14y//++FjsJYD+IUFs21bjH/d6l\n wFxn7V5O6298jqHowQ3vMlTosF4Qje+uk0ZfAspPLJbu3h9CxusXpHk5KyZ72WaLRWXeDFdME/pY\n bPfMVV6cV5zSQtLsXvS/oaL0He5QFByzTWkn9gE0C1XoekfLAxb4dhMHxSCis10BgyRNf3/nAj8J\n EAhrio69G0Wo3fwB5Pm4C4eQIJaaHk3PDL0LneZ+O1btRO5jzGaZ5oIK1fil/IO8/rGegfpJ9kdW\n ySZz3HvrLjO11f2fcOmGyfILjDoHlfwNgGilGOVMto9igblDK9QO33vlJ+aK/4m1kvFdIDXIYkTe\n kuiTHZNCcj3Mx9IMUQxyjaN14wtQiH/Kzd/Js1OHrUOw9lTbbqzGB4ZKsv3FHvDCr57v2YirwWb8\n pCYgOVuyieStV/uhUzRuJElR2dMqGgcFTpJMhxG/c0ZPojn3JIKs42RIO0+7JsSAldnRRUjhyI57\n 8BLJ8ByjTRh6jeimMyD8WEezG7EhpSF3zbd8yawlp3rGxYiazgX7DFp16AYzRFYkKcXWTVO3agjA\n lVvsi2CSaAE3GG01/TsKJH0xorF5vE6Gdg82Vg0UOaw8n7jZOpJX8nyEq6B3zRNF2Uo4ZNEhbcKd\n eyXppoA8Y5vx1RILDHMAmXdHuGUH65QWHVMCGyJ648jf5eomo4MB43xvtSI6LJbuyjMEONyAahtW\n CCEZgmXtsKfj5vSKWBHyOABLdRsU9aLxcFQlRvqgx8T/19Kp/Xyy+pQ7l/aD8fG/NK2HlRxsNzPW\n yQKr4lykJ3VIdJjFWqOpV3Sk9Le5K3U3mDrEaJTvYdm6X6lPUYwF4KUzj14VejR87pOwlUS5maQA\n 51qbGlNVH2pBwhy22ri29d1wOBOHnj/tjoy7eiNVoSQxUln+QO3s5UrdLMuGBxoEiWyusxbTaz35\n 5m3T8bZIS43uyhmuzOXHcCBecGdlJY0Tgs78W5w13/Vf9Nh5oQfl5xBOi7F8OKRD6wxUZ2TwZLu1\n Cm4pPM2O37dniaHe8phSq7kwhbHXpBOedF6OEsxxS7NZfAPSRZ6fj4dadW7GxQfBm/FooE6UBw6o\n njP0r12BVUs5C5gNsjeT1a76BkRGjbLUBc8bBzZ56ClQIm4A+vk/EzYTZLgk8VkgUN+aq/+RaLeT\n SmBOCs6NHSmieJMrZLfYCTqbhEPBhqc3m2bs5gelwtutZuTTksy0Cow00cj4wMdJ2pEX6DHwOJRS\n KBJM6DTb/XAUfFXr2zw9x0zVZBsH/0jVBYsi1aMd6De7SfFQTVz8smUam0gwU4p6G5yGAxYRaLtc\n 04XKcksjk727qkS2UYIG6Qq4PLNLVRWOCeTSYlc+Gq3fqoPIG4ssR5MZURdFi9h+7eAQ4kpqhgDX\n s1Xv0TVMD8p1ZQPk786xcFlVSS6Yjk+kPOsqnmCWintmyEfmZ92hI7e6T6LPbMwesTpl7cWlEZvq\n sRtnce6atn3C1OmrgQ98UuIs5+au5uXpmvNqiBJ3WUDdxrmunfHW6RlEeUKZZfSDnSoix/0Rx3od\n OUlgQjAn10K5fK7nq+UzPc5s16HEzzXD534fNnw4lpyI8b+FWz4bw8CnlFRVJbLyp1kbMi0hIIL+\n YXK6M3h3GIvRGjDGiy8G3zGHBTxFxHMxulkpjDV5iqkNakDh4aLcOqHAL3wZGZU5eUE8eHQANFoN\n 6tY3nv/2jdysMJC9uQt8nljQw9Pg0WMc0kTr361XAJnn3PiG88wG94SqIkiGcsvV3SGByt9ScOOq\n 9uVDfFu7nJJB6XxqIWjEx7NyayjlvJG4CkJuJ+zDCNDfSvmudKN+rQLWMVD+fGRPh15Otp1UopYN\n +bpgPnm+ApHGAaJrI8+QnVvVlYbCAPjkAmRFNRt1NVD9VKHw1LjKYcAJzqiFSK6wpZwKM0RICYOx\n d3A6hbt2kiaPGXI5EkoC/vy+dqUm1c4/TarOGG1ZOMi/ob+/MgDk83hl3vToVPVgcJ3w8YIM4lTE\n LV09GGvkQHntFMmlsEZ/DLthhd3T9cU2qM9djl1HXwdl0pUTB/D3rp/IWhK8dg3n3EhKL/3xGp0p\n 7VsmDUELoe9wpoGNew67lO+9jU2PP+U3sikqnJnjxQA4viBlKSy5PP9ya0G6tynfkBOaQLMd/qQQ\n musHD+PNa6/jgDckVGzNcCZvwyjtfhnNL5cy1em9V7raolyXBtt+icTJJwhYucefdGQ2rdFzRpMI\n cmPjHxHIg+6LzlWxmal6BvfulR8ldTyj2Cz0KKBG5FLrfe0jai8c=",
        "X-Sonic-MF": "jjsuwa_sys3175@yahoo.co.jp",
        "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1775181632;\n s=yahoocojp-202506; d=yahoo.co.jp;\n h=References:Content-Transfer-Encoding:Content-Type:Subject:From:Cc:To:MIME-Version:Date:Message-ID;\n bh=65W4YVEqEk1qndIXzJfFs8hacuv/QTLMgs8+X0GOmb4=;\n b=aisSTyOy6SbCtBRc7mTadmmoeUbBGto7x1bWKkuidkb4wIwEL5Ot+16MLMMZrFU1\n TNbnB4SVuFqCk79qmxgRf+SJLFZTtOZk2tA1hrUHO2LBtboYU/Zcc7bEOeRhCphZ++e\n +xvLYEXEKtA43ZtO5jQ+Pe7d/FTJENPOp62L+IupzGZ17zuIoIlm1ODnSnowsJkq0St\n puwSn6e9EzAKzMKtnMbameKcLvkhdZFJ1857hY4hJ89nn7fpU3fkEI2qpf9oAJRo8qm\n /9MXeVNtaMj7+d+Qy0EqSPHlG3mM7iOc5dW7STa5x2wELIVoUq890y4OvrqlhAqYmmj\n OZe2LXCocQ==",
        "Message-ID": "<dfb26e41-7ebc-4c5c-b23c-0c3f7a0e54fc@yahoo.co.jp>",
        "Date": "Fri, 3 Apr 2026 11:00:32 +0900",
        "MIME-Version": "1.0",
        "User-Agent": "Mozilla Thunderbird",
        "Content-Language": "en-US",
        "To": "gcc-patches@gcc.gnu.org",
        "Cc": "Max Filippov <jcmvbkbc@gmail.com>",
        "From": "Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>",
        "Subject": "[PATCH 2/2] xtensa: Change xtensa_legitimize_address() to allow the\n emission of one more ADDMI instruction",
        "Content-Type": "text/plain; charset=UTF-8; format=flowed",
        "Content-Transfer-Encoding": "7bit",
        "References": "<dfb26e41-7ebc-4c5c-b23c-0c3f7a0e54fc.ref@yahoo.co.jp>",
        "X-BeenThere": "gcc-patches@gcc.gnu.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>",
        "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>",
        "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>",
        "List-Post": "<mailto:gcc-patches@gcc.gnu.org>",
        "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>",
        "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "Previously, address displacement mitigation measures for exceeding machine\ninstruction limits involved using only one ADDMI machine instruction\n(adding an immediate value that is a multiple of 256) to cover approxi-\nmately 32 kilobytes before and after the address.\n\nThis patch expands the range covered by the mitigation by doubling it by\nusing just one more ADDMI instruction, slightly more advantageous than the\nresult without the mitigation, ie., covering the displacement amount by\nloading from constant pool or using CONST16 instruction pair.\n\n     /* example */\n     int test(int a[]) {\n       return a[4] + a[16032];\n     }\n\n     ;; before (-O2 -mconst16)\n     test:\n     \tentry\tsp, 32\n     \tmovi.n\ta8, 0\t\t;; 3 instructions\n     \tconst16\ta8, 64128\t;;\n     \tadd.n\ta8, a2, a8\t;;\n     \tl32i.n\ta8, a8, 0\n     \tl32i.n\ta2, a2, 16\n     \tadd.n\ta2, a2, a8\n     \tretw.n\n\n     ;; after (-O2 -mconst16)\n     test:\n     \tentry\tsp, 32\n     \taddmi\ta8, a2, 0x7b00\t;; 2 instructions\n     \taddmi\ta8, a8, 0x7f00\t;;\n     \tl32i.n\ta2, a2, 16\n     \tl32i\ta8, a8, 128\n     \tadd.n\ta2, a2, a8\n     \tretw.n\n\ngcc/ChangeLog:\n\n\t* config/xtensa/xtensa.cc (xtensa_legitimize_address):\n\tAdd code to legitimize the displacement of 64 kilobytes before and\n\tafter using two ADDMI instructions.\n---\n  gcc/config/xtensa/xtensa.cc | 50 ++++++++++++++++++++++---------------\n  1 file changed, 30 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc\nindex b20c8536f07..a6eed21c2ba 100644\n--- a/gcc/config/xtensa/xtensa.cc\n+++ b/gcc/config/xtensa/xtensa.cc\n@@ -2318,32 +2318,42 @@ xtensa_legitimize_address (rtx x,\n  \t\t\t   rtx oldx ATTRIBUTE_UNUSED,\n  \t\t\t   machine_mode mode)\n  {\n+  rtx plus0, plus1, temp;\n+  HOST_WIDE_INT offset, mem_offset, addmi_offset;\n+\n    if (xtensa_tls_symbol_p (x))\n      return xtensa_legitimize_tls_address (x);\n  \n-  if (GET_CODE (x) == PLUS)\n-    {\n-      rtx plus0 = XEXP (x, 0);\n-      rtx plus1 = XEXP (x, 1);\n+  if (GET_CODE (x) != PLUS)\n+    return x;\n  \n-      if (! REG_P (plus0) && REG_P (plus1))\n-\t{\n-\t  plus0 = XEXP (x, 1);\n-\t  plus1 = XEXP (x, 0);\n-\t}\n+  plus0 = XEXP (x, 0), plus1 = XEXP (x, 1);\n+  if (! REG_P (plus0) && REG_P (plus1))\n+    std::swap (plus0, plus1);\n+\n+  /* Try to split up the offset to use up to two ADDMI instructions.  */\n+  if (REG_P (plus0) && CONST_INT_P (plus1)\n+      && ! xtensa_mem_offset (offset = INTVAL (plus1), mode)\n+      && ! xtensa_simm8 (offset)\n+      && xtensa_mem_offset (mem_offset = offset & 0xff, mode))\n+    {\n+      /* The two ADDMIs are slightly more efficient than\n+\t \"L32R w/litpool + ADD\" or \"CONST16 pair + ADD\", if applicable.  */\n+      addmi_offset = offset & ~0xff;\n+      if (addmi_offset > 32512)\n+\toffset = 32512, addmi_offset -= 32512;\n+      else if (addmi_offset < -32768)\n+\toffset = -32768, addmi_offset += 32768;\n+      else\n+\toffset = 0;\n  \n-      /* Try to split up the offset to use an ADDMI instruction.  */\n-      if (REG_P (plus0) && CONST_INT_P (plus1)\n-\t  && !xtensa_mem_offset (INTVAL (plus1), mode)\n-\t  && !xtensa_simm8 (INTVAL (plus1))\n-\t  && xtensa_mem_offset (INTVAL (plus1) & 0xff, mode)\n-\t  && xtensa_simm8x256 (INTVAL (plus1) & ~0xff))\n+      if (xtensa_simm8x256 (addmi_offset))\n  \t{\n-\t  rtx temp = gen_reg_rtx (Pmode);\n-\t  rtx addmi_offset = GEN_INT (INTVAL (plus1) & ~0xff);\n-\t  emit_insn (gen_rtx_SET (temp, gen_rtx_PLUS (Pmode, plus0,\n-\t\t\t\t\t\t      addmi_offset)));\n-\t  return gen_rtx_PLUS (Pmode, temp, GEN_INT (INTVAL (plus1) & 0xff));\n+\t  emit_insn (gen_addsi3 (temp = gen_reg_rtx (Pmode),\n+\t\t\t\t plus0, GEN_INT (addmi_offset)));\n+\t  if (offset)\n+\t    emit_insn (gen_addsi3 (temp, temp, GEN_INT (offset)));\n+\t  return gen_rtx_PLUS (Pmode, temp, GEN_INT (mem_offset));\n  \t}\n      }\n  \n",
    "prefixes": [
        "2/2"
    ]
}