)]}'
{
  "commit": "a96edb687e76a44b554b7975d9deda522c2c4302",
  "tree": "c5af340cda56025d1b408433b88dc71836566ff9",
  "parents": [
    "408b2b3d9df631102919ada62add6d785f737f74"
  ],
  "author": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue Apr 30 15:00:35 2024 +0100"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Thu May 30 16:35:17 2024 +0100"
  },
  "message": "target/arm: Implement FEAT WFxT and enable for \u0027-cpu max\u0027\n\nFEAT_WFxT introduces new instructions WFIT and WFET, which are like\nthe existing WFI and WFE but allow the guest to pass a timeout value\nin a register.  The instructions will wait for an interrupt/event as\nusual, but will also stop waiting when the value of CNTVCT_EL0 is\ngreater than or equal to the specified timeout value.\n\nWe implement WFIT by setting up a timer to expire at the right\npoint; when the timer expires it sets the EXITTB interrupt, which\nwill cause the CPU to leave the halted state. If we come out of\nhalt for some other reason, we unset the pending timer.\n\nWe implement WFET as a nop, which is architecturally permitted and\nmatches the way we currently make WFE a nop.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nMessage-id: 20240430140035.3889879-3-peter.maydell@linaro.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7fcea54d8dbe882efa2cd934c16c6ab5d7888b58",
      "old_mode": 33188,
      "old_path": "docs/system/arm/emulation.rst",
      "new_id": "1a06a5feb6e56219f96ec2a854842b0539a70730",
      "new_mode": 33188,
      "new_path": "docs/system/arm/emulation.rst"
    },
    {
      "type": "modify",
      "old_id": "b300d0446d843c767ca1d078d25f5a5dfe26d8d2",
      "old_mode": 33188,
      "old_path": "target/arm/cpu-features.h",
      "new_id": "c59ca104fe104c35f86595172d3a9ed585e7c369",
      "new_mode": 33188,
      "new_path": "target/arm/cpu-features.h"
    },
    {
      "type": "modify",
      "old_id": "77f8c9c74837a43322663890b67d3593bf5ea54a",
      "old_mode": 33188,
      "old_path": "target/arm/cpu.c",
      "new_id": "35fa281f1b9868ad34cdc1d78bd6f0d4cb685d8e",
      "new_mode": 33188,
      "new_path": "target/arm/cpu.c"
    },
    {
      "type": "modify",
      "old_id": "c17264c23904cefc34e6fadd9e7319764d2be5ec",
      "old_mode": 33188,
      "old_path": "target/arm/cpu.h",
      "new_id": "3841359d0f13d6ad085a937dc958356f174b6b69",
      "new_mode": 33188,
      "new_path": "target/arm/cpu.h"
    },
    {
      "type": "modify",
      "old_id": "7587635960802914390233c0cc9436eede359fdd",
      "old_mode": 33188,
      "old_path": "target/arm/helper.c",
      "new_id": "ce319572354a0dcb8c839f1fba5bde68ae707245",
      "new_mode": 33188,
      "new_path": "target/arm/helper.c"
    },
    {
      "type": "modify",
      "old_id": "24feecee9b43a7b069bb53b72e76a9c755844385",
      "old_mode": 33188,
      "old_path": "target/arm/helper.h",
      "new_id": "eca2043fc2a4ec384a7acee79e82aecef8d8044a",
      "new_mode": 33188,
      "new_path": "target/arm/helper.h"
    },
    {
      "type": "modify",
      "old_id": "ee3ebd383e15dc33148393dc859ea9f56f80c2cb",
      "old_mode": 33188,
      "old_path": "target/arm/internals.h",
      "new_id": "11b5da2562ffe9fa30a0a471afb194fa03a13841",
      "new_mode": 33188,
      "new_path": "target/arm/internals.h"
    },
    {
      "type": "modify",
      "old_id": "b2b39b24755975fed0aa542d5863700aecf551c0",
      "old_mode": 33188,
      "old_path": "target/arm/machine.c",
      "new_id": "0a722ca7e754ec48a5cc646039532e363744de86",
      "new_mode": 33188,
      "new_path": "target/arm/machine.c"
    },
    {
      "type": "modify",
      "old_id": "5dadbc74d73145f322ec3451cda35024ac3fb4fb",
      "old_mode": 33188,
      "old_path": "target/arm/tcg/a64.decode",
      "new_id": "2b7a3254a0e49d77b1229c433731c0a081572000",
      "new_mode": 33188,
      "new_path": "target/arm/tcg/a64.decode"
    },
    {
      "type": "modify",
      "old_id": "da41a44f75b228517d600d4015071c519abf347b",
      "old_mode": 33188,
      "old_path": "target/arm/tcg/cpu64.c",
      "new_id": "0899251eef4a17bbebd11999676cb3885ebf7de8",
      "new_mode": 33188,
      "new_path": "target/arm/tcg/cpu64.c"
    },
    {
      "type": "modify",
      "old_id": "c199b69fbff3f87e49a823a4a256f124f9c4b247",
      "old_mode": 33188,
      "old_path": "target/arm/tcg/op_helper.c",
      "new_id": "c083e5cfb8747b69f4fab6db0b75581229047d7a",
      "new_mode": 33188,
      "new_path": "target/arm/tcg/op_helper.c"
    },
    {
      "type": "modify",
      "old_id": "f1dea5834c424b895be9729309455562f6ccfe6b",
      "old_mode": 33188,
      "old_path": "target/arm/tcg/translate-a64.c",
      "new_id": "93543da39cc4605327cc0c0a6654610b60db85b0",
      "new_mode": 33188,
      "new_path": "target/arm/tcg/translate-a64.c"
    }
  ]
}
