)]}'
{
  "commit": "979d2352bc8bc8205a8dca760e2e4e4d3362902b",
  "tree": "cd9b6600a8e7438da69f9e5955fe6c5931682b93",
  "parents": [
    "f00ee013b1a576358b202fcb48dffab776616214"
  ],
  "author": {
    "name": "Ahmed Charles",
    "email": "acharles@outlook.com",
    "time": "Sat Jul 16 21:58:41 2022 -0700"
  },
  "committer": {
    "name": "Sam Leffler",
    "email": "sleffler@google.com",
    "time": "Mon Oct 03 14:36:24 2022 +0000"
  },
  "message": "Clarify choice of illegal instruction encoding\n\nThe unprivileged spec says the following:\n\nWe consider it a feature that any length of instruction containing all\nzero bits is not legal, as this quickly traps erroneous jumps into\nzeroed memory regions. Similarly, we also reserve the instruction\nencoding containing all ones to be an illegal instruction, to catch the\nother common pattern observed with unprogrammed non-volatile memory\ndevices, disconnected memory buses, or broken memory devices.\n\nSoftware can rely on a naturally aligned 32-bit word containing zero to\nact as an illegal instruction on all RISC-V implementations, to be used\nby software where an illegal instruction is explicitly desired. Defining\na corresponding known illegal value for all ones is more difficult due\nto the variable-length encoding. Software cannot generally use the\nillegal value of ILEN bits of all 1s, as software might not know ILEN\nfor the eventual target machine (e.g., if software is compiled into a\nstandard binary library used by many different machines). Defining a\n32-bit word of all ones as illegal was also considered, as all machines\nmust support a 32-bit instruction size, but this requires the\ninstruction-fetch unit on machines with ILEN\u003e32 report an illegal\ninstruction exception rather than access fault when such an instruction\nborders a protection boundary, complicating variable-instruction-length\nfetch and decode.\n\nSigned-off-by: Ahmed Charles \u003cacharles@outlook.com\u003e\nChange-Id: I86c1b165efaaec0cb4c942da37f91903d737edb6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "107236cdfb597e23b8ff14f09fd2172ce08023d3",
      "old_mode": 33188,
      "old_path": "apps/sel4test-tests/src/tests/faults.c",
      "new_id": "7ae78391c7ba9012142551e8f3d2ab49bcf5e42e",
      "new_mode": 33188,
      "new_path": "apps/sel4test-tests/src/tests/faults.c"
    }
  ]
}
