)]}'
{
  "commit": "87a2016dddeef9671f26124f8dde138627abf6ad",
  "tree": "703ad05555123b2972698b6b4a1cb9835217eaed",
  "parents": [
    "e6d0a97c05d238c17eeae5116cb6e9c0fc9fdb56"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Aug 21 11:27:09 2026 +0100"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Aug 21 11:47:52 2026 +0100"
  },
  "message": "[s390x] Add missing condition code clobbers to inline assembly\n\nFor x86, GCC will assume that any inline assembly instruction clobbers\nthe condition code and so it is not necessary to explicitly include\n\"cc\" within the clobber list.\n\nFor s390x, GCC will assume that the condition code is preserved unless\nexplicitly clobbered.  It is extremely rare for GCC to emit code that\nactually relies upon this behaviour, but it has been observed to\nhappen within a series of memcpy() calls with condition-dependent\nsource addresses.\n\nFix by adding \"cc\" to the clobber list on all inline assembly blocks\nwhere the condition code is not guaranteed to be preserved.\n\nIt would be possible to use \"\u003d@cc\" as an output constraint to obtain\nthe carry result from bigint_add() and bigint_subtract(), but the\ninstructions generated by GCC to extract the condition code end up\nbeing larger than the single \"alcr\"/\"slbr\" that we currently use to\nobtain the carry result.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d3ab6b45310c4c18f69f30939e5b713315b7d4eb",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/core/facility.c",
      "new_id": "0d169e733d69698d29a986c29f4e3fb5f94a1ddc",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/core/facility.c"
    },
    {
      "type": "modify",
      "old_id": "75e6b7ca5948c03dea0c5a8769461c33b0de4b41",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/core/prno.c",
      "new_id": "79b81c196c83a140902198f5645e7c7f8b85a7d7",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/core/prno.c"
    },
    {
      "type": "modify",
      "old_id": "57d64832f0daae6cf1ae09494e528550c574b891",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/bigint.h",
      "new_id": "db8356e702cb1ff7b2793c9683c0343c0e69a2bd",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/bigint.h"
    },
    {
      "type": "modify",
      "old_id": "2065ddbb89215f9dc2d6b669002b24f32fe9489e",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/bitops.h",
      "new_id": "d7c76629b3ed1d619e16a5506186790c73cf1325",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/bitops.h"
    },
    {
      "type": "modify",
      "old_id": "b67934360373bfa96d45b63f50a77e3f8ef73a92",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/profile.h",
      "new_id": "cf2ac68281087da51b9720daa2e2343413d12b8f",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/profile.h"
    },
    {
      "type": "modify",
      "old_id": "235a8781983b1e06fdabc49bff438c1bb19935d1",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/string.h",
      "new_id": "b11e61168c239c46591e3b92695cb66c87d8c863",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/string.h"
    },
    {
      "type": "modify",
      "old_id": "6fbe0e88cb1d22d7aa876444f2f0bcd65b015ce1",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/strings.h",
      "new_id": "48938280da641edcec1d2ce717c51b60b71d28a7",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/strings.h"
    },
    {
      "type": "modify",
      "old_id": "423b1a1761e009c554b41ad5134f41b567b10a8f",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/bits/tcpip.h",
      "new_id": "b4f7734c8132bf68659a14235ccbb5734c7e36f6",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/bits/tcpip.h"
    },
    {
      "type": "modify",
      "old_id": "55c7ff5a71003659c1577dfbb46e52f0f97e0075",
      "old_mode": 33188,
      "old_path": "src/arch/s390x/include/ipxe/tod.h",
      "new_id": "73e0eb5986c3c1a36ccd5420b478dc2ddf1d4180",
      "new_mode": 33188,
      "new_path": "src/arch/s390x/include/ipxe/tod.h"
    }
  ]
}
