)]}'
{
  "commit": "829f85cfc64cb76bb9eb65bd50987f369d9c424a",
  "tree": "a7c17bc58547d22412e86e78c0c35fab555ae082",
  "parents": [
    "a318391bbbfe25ccdde8f510c9d73cab37a101df"
  ],
  "author": {
    "name": "Richard Henderson",
    "email": "richard.henderson@linaro.org",
    "time": "Wed Sep 16 01:47:05 2026 -1000"
  },
  "committer": {
    "name": "Michael Tokarev",
    "email": "mjt@tls.msk.ru",
    "time": "Thu Sep 24 05:25:55 2026 +0300"
  },
  "message": "tcg/optimize: Fix expansion/simplification of deposit\n\nWhen we computed z_mask/o_mask for the deposit, we may accidentally\nprove that the result is a constant.\n\nIf we let the rest of the code expand as-is, when can we get to the\nend we\u0027ll see the constant, note that it\u0027s the same as the current\nvalue, remove what we think is \"the opcode\" that computes this same\nvalue.  But in this case we\u0027ve been expanding deposit to multiple\nopcodes and the removal of only the last opcode breaks the expansion.\n\nFix this by noting the constant result early, before expanding,\nallowing the entire operation to be removed.\n\nCc: qemu-stable@nongnu.org\nFixes: 5f747705a4 (\"tcg/optimize: Lower unsupported deposit during optimize\")\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/4449\nReviewed-by: Jim MacArthur \u003cjim.macarthur@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n(cherry picked from commit 0bc331d1c7d5cedc1dbe0bf21dc5f6be13c58fa4)\nSigned-off-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c266cfe99c9b8379520d3cd0a5d71a5c59fed1f7",
      "old_mode": 33188,
      "old_path": "tcg/optimize.c",
      "new_id": "891612e3126041d88ea0abe33541034f62ed8ea9",
      "new_mode": 33188,
      "new_path": "tcg/optimize.c"
    }
  ]
}
