)]}'
{
  "commit": "1c3a3d60275bff55db18da012806afddebcbb6ee",
  "tree": "f5734458f225870252a1a724ad3fdb695048b1fd",
  "parents": [
    "38ca080d4ae9f399f0888e3fda3affaec0dc08f9"
  ],
  "author": {
    "name": "Tor Jeremiassen",
    "email": "torerik@google.com",
    "time": "Fri Dec 13 15:21:15 2024 -0800"
  },
  "committer": {
    "name": "Tor Jeremiassen",
    "email": "torerik@google.com",
    "time": "Fri Dec 13 15:38:22 2024 -0800"
  },
  "message": "This adds the ability to specify an instruction encoding as specializing that of another.\n\nIn some cases, there is a desire to specialize some instructions with specific operand\nvalues to different mnemonics, even though the decoding of that instruction would match\nthe \"general\" instruction. For instance, in RiscV the \u0027rdcycle t5\u0027 instruction is the same\nas \u0027csrrs t5, zero, cycle\u0027, or even \u0027csrrs t5, cycle\u0027. The new capability allows this\nto be expressed in the bin_fmt file as:\n\n  rdcycle : specializes csrrs_nw : u_imm12 \u003d\u003d 0xc00;\n\nWhich means that rdcycle has the same encoding as csrrs_nw, with one added constraint.\nThe generated decoder will now contain code to check for rdcycle whenever a csrrs_nw\ninstruction is matched, and prefer to return that opcode as opposed to the more generic\ncsrrs_nw opcode. Multiple such specializations can be added for an opcode. There is no\norder in which they are considered, except that the base opcode will be considered last.\n\nPiperOrigin-RevId: 706018484\nChange-Id: I2a5393a33d96ab3023b04defef24dd83111f527c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "912fe0a1d936e8a9f1702da6e3891c3059111ed7",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/BinFormat.g4",
      "new_id": "c09440f03e6785561d22a7991bb5ad08fdf87f29",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/BinFormat.g4"
    },
    {
      "type": "modify",
      "old_id": "d278ca2ebaeaf08cd567739b1f2b611bce014479",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/bin_format_visitor.cc",
      "new_id": "ccd01d68d5f5fafd858ab419958f4331f4033e70",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/bin_format_visitor.cc"
    },
    {
      "type": "modify",
      "old_id": "f6e9e63c00753802ba27a9ec0c9476109a6b27fa",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/bin_format_visitor.h",
      "new_id": "f10455a3a3719dac8ca548395a4f99952cb2d22f",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/bin_format_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "9238df177a6d98271d7b56911d2da364691109b2",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/encoding_group.cc",
      "new_id": "30d203f3be58f6295ddb5f4074e71bbc9478b792",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/encoding_group.cc"
    },
    {
      "type": "modify",
      "old_id": "9b91ff2c8b7e012bc7e6fd40e0891b808beb4d45",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/instruction_encoding.cc",
      "new_id": "3fd17b7729883991b6d6f78d63e80e01c6cc7af9",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/instruction_encoding.cc"
    },
    {
      "type": "modify",
      "old_id": "730e68b138df19c55e7b3c0ad933cebb0853ab31",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/instruction_encoding.h",
      "new_id": "6e7a2466f0d318c3fd1e713383ff01972de8d219",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/instruction_encoding.h"
    },
    {
      "type": "modify",
      "old_id": "ca0018c38675f169a00d89a8b0550c45d575fc7c",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/instruction_group.cc",
      "new_id": "4b4e39459df7ae787565c45fa661f11296b74409",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/instruction_group.cc"
    },
    {
      "type": "modify",
      "old_id": "2f7fb77fbcb1ddfcd18989067d5b372710af40f3",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/instruction_group.h",
      "new_id": "40459e2f6fb647534baa33bc4c6de121824c0578",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/instruction_group.h"
    },
    {
      "type": "modify",
      "old_id": "95eb73dfc443f3a2e7abdd4119431522f6fbc094",
      "old_mode": 33188,
      "old_path": "mpact/sim/decoder/test/testfiles/instruction_group.bin_fmt",
      "new_id": "ff97c54fc37b7140986081cfa14e0b7451471167",
      "new_mode": 33188,
      "new_path": "mpact/sim/decoder/test/testfiles/instruction_group.bin_fmt"
    }
  ]
}
