)]}'
{
  "commit": "45767dc2955faef710d2c136e8a1f129c448f95f",
  "tree": "2bceff17b748f50ce366088f8311c06d5f7a8a95",
  "parents": [
    "2a0debc149227a81d6a023094540371fe04706de"
  ],
  "author": {
    "name": "Junyang Shao",
    "email": "shaojunyang@google.com",
    "time": "Thu Feb 19 16:22:29 2026 +0000"
  },
  "committer": {
    "name": "Junyang Shao",
    "email": "shaojunyang@google.com",
    "time": "Fri Mar 20 10:02:20 2026 -0700"
  },
  "message": "arm64/instgen: add assembler code generator for SVE\n\nThis CL implements the code generation logic.\nIt generates 4 files to the assembler:\n- inst_gen.go: this file contains the instruction table for these new SVE\ninstructions.\n- goops_gen.go: this file contains the go op constants for these new SVE\ninstructions.\n- anames_gen.go: this file contains the anames (debugger symbols) for\nthese new SVE instructions.\n- encoding_gen.go: this file contains the encoding functions for parts\n(elements) of these new SVE instructions. They are emitted with their\nnatural language specification and we need to fill up their logic, which\nwill be in the next CL.\n\nThis CL generated files into CL 747180\n\nThis CL adds logic to allow only certain AClasses to be generated.\n\nThis CL also merged PREGZ and PREGM, and defer its check to encoding\nphase. This is required to distinguish \u003cP\u003e/\u003cZM\u003e cases.\n\nThis CL also filters out the generation of aliased encodings, as they\nare not fully specified.\n\nThis CL also added encoding specifications for another weird encoding\ndefined in the decoding section, please see the added code in\n`extractBinary` for details. An example instruction is \"Unsigned divide\n(predicated)\".\n\nIt is useful for partial code gen for assembler without all AClasses\nsupport.\n\nThis CL added a generation target that generates e2e test data, it uses\nthe GNU toolchain as an oracle. This CL assumes the toolchain version\n2.45. There currently exists a bleeding edge new toolchain 2.46, some\nspecial cases in `constructInstance` might be removed if we upgrade the\nGNU toolchain.\n\nThis CL also rearranged the types. XML types are parsed data types are\nin different files now.\n\nChange-Id: Ia7e30e1d1da17ad6aff5d963cf90fe76bc1a76fd\nReviewed-on: https://go-review.googlesource.com/c/arch/+/755180\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ceebe9407b93c0f64443993385ea441dc7302fb",
      "new_mode": 33188,
      "new_path": "arm64/instgen/encodings.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a39ff5839c9dd90794964f99d27314a83f74fc6f",
      "new_mode": 33188,
      "new_path": "arm64/instgen/generator.go"
    },
    {
      "type": "modify",
      "old_id": "fbdc14a7248c2a21a72c7af8a9e78d9e02fa3363",
      "old_mode": 33188,
      "old_path": "arm64/instgen/main.go",
      "new_id": "2db2126fc3edaf21e2737bb03a7662ccbc1fde38",
      "new_mode": 33188,
      "new_path": "arm64/instgen/main.go"
    },
    {
      "type": "delete",
      "old_id": "b80532c79cd7c9c2bb880d2de34d5802b2a08921",
      "old_mode": 33188,
      "old_path": "arm64/instgen/xmlspec/inst.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4a10ba62eff0616539ac194eb238039029b96199",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/parsed.go"
    },
    {
      "type": "modify",
      "old_id": "ffb5d7a336d406a0b466a12de8c63d6a7e138d43",
      "old_mode": 33188,
      "old_path": "arm64/instgen/xmlspec/parser.go",
      "new_id": "7bdae993272b2f223b586f3dc8dd79026ff51d11",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/parser.go"
    },
    {
      "type": "modify",
      "old_id": "9cbae57c4ae1920023ace6d21b919433503c0aee",
      "old_mode": 33188,
      "old_path": "arm64/instgen/xmlspec/parser_test.go",
      "new_id": "08d17a2a6b2fc8ebf92229b713690e556ab91c29",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/parser_test.go"
    },
    {
      "type": "modify",
      "old_id": "17c84d13b0979374bc31e908205f0076672f3131",
      "old_mode": 33188,
      "old_path": "arm64/instgen/xmlspec/printer.go",
      "new_id": "640abc906759c08e32e1a1cc65303dee227fcfd3",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/printer.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4572b31abc5438cd8a3f563447193b3f55ce9d01",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/util.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5e8cee6d7caf774aa98a8b4686a013929cbca8e5",
      "new_mode": 33188,
      "new_path": "arm64/instgen/xmlspec/xml.go"
    }
  ]
}
