)]}'
{
  "commit": "b0a101c53a1caa3f2a9fc2032f703ca4465cfbbb",
  "tree": "1f982cef3e1a4560c482629eece82363cea2f46f",
  "parents": [
    "7ab8bf1c777644f834ccbc5d1e83d721859ca1ba"
  ],
  "author": {
    "name": "Jiawei",
    "email": "jiawei@iscas.ac.cn",
    "time": "Wed Jul 12 20:40:36 2023 +0800"
  },
  "committer": {
    "name": "Nelson Chu",
    "email": "nelson@rivosinc.com",
    "time": "Tue Jul 18 11:45:58 2023 +0800"
  },
  "message": "RISC-V: Supports Zcb extension.\n\nThis patch support Zcb extension, contains new compressed instructions,\nsome instructions depend on other existed extension, like \u0027zba\u0027, \u0027zbb\u0027\nand \u0027zmmul\u0027.  Zcb also imply Zca extension to enable the compressing\nfeatures.\n\nCo-Authored by: Charlie Keaney \u003ccharlie.keaney@embecosm.com\u003e\nCo-Authored by: Mary Bennett \u003cmary.bennett@embecosm.com\u003e\nCo-Authored by: Nandni Jamnadas \u003cnandni.jamnadas@embecosm.com\u003e\nCo-Authored by: Sinan Lin \u003csinan.lin@linux.alibaba.com\u003e\nCo-Authored by: Simon Cook \u003csimon.cook@embecosm.com\u003e\nCo-Authored by: Shihua Liao \u003cshihua@iscas.ac.cn\u003e\nCo-Authored by: Yulong Shi \u003cyulong@iscas.ac.cn\u003e\n\nbfd/ChangeLog:\n\n        * elfxx-riscv.c (riscv_multi_subset_supports): New extension.\n        (riscv_multi_subset_supports_ext): Ditto.\n\ngas/ChangeLog:\n\n        * config/tc-riscv.c (validate_riscv_insn): New operators.\n        (riscv_ip): Ditto.\n        * testsuite/gas/riscv/zcb.d: New test.\n        * testsuite/gas/riscv/zcb.s: New test.\n\ninclude/ChangeLog:\n\n        * opcode/riscv-opc.h (MATCH_C_LBU): New opcode.\n        (MASK_C_LBU): New mask.\n        (MATCH_C_LHU): New opcode.\n        (MASK_C_LHU): New mask.\n        (MATCH_C_LH): New opcode.\n        (MASK_C_LH): New mask.\n        (MATCH_C_SB): New opcode.\n        (MASK_C_SB): New mask.\n        (MATCH_C_SH): New opcode.\n        (MASK_C_SH): New mask.\n        (MATCH_C_ZEXT_B): New opcode.\n        (MASK_C_ZEXT_B): New mask.\n        (MATCH_C_SEXT_B): New opcode.\n        (MASK_C_SEXT_B): New mask.\n        (MATCH_C_ZEXT_H): New opcode.\n        (MASK_C_ZEXT_H): New mask.\n        (MATCH_C_SEXT_H): New opcode.\n        (MASK_C_SEXT_H): New mask.\n        (MATCH_C_ZEXT_W): New opcode.\n        (MASK_C_ZEXT_W): New mask.\n        (MATCH_C_NOT): New opcode.\n        (MASK_C_NOT): New mask.\n        (MATCH_C_MUL): New opcode.\n        (MASK_C_MUL): New mask.\n        (DECLARE_INSN): New opcode.\n        * opcode/riscv.h (EXTRACT_ZCB_BYTE_UIMM): New inline func.\n        (EXTRACT_ZCB_HALFWORD_UIMM): Ditto.\n        (ENCODE_ZCB_BYTE_UIMM): Ditto.\n        (ENCODE_ZCB_HALFWORD_UIMM): Ditto.\n        (VALID_ZCB_BYTE_UIMM): Ditto.\n        (VALID_ZCB_HALFWORD_UIMM): Ditto.\n        (enum riscv_insn_class): New extension class.\n\nopcodes/ChangeLog:\n\n        * riscv-dis.c (print_insn_args): New operators.\n        * riscv-opc.c: New instructions.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "86351872e048e260decda3ad0216f39c41cf2564",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-riscv.c",
      "new_id": "ee96608358e82b1e7dbe43805ba1e23d9cac8593",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-riscv.c"
    },
    {
      "type": "modify",
      "old_id": "8c23c6abae79b4f5152ae0e5e08c8aca5e4a8f4e",
      "old_mode": 33188,
      "old_path": "gas/config/tc-riscv.c",
      "new_id": "80c14a3cd2211e60da9811e7e997498214647058",
      "new_mode": 33188,
      "new_path": "gas/config/tc-riscv.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26a122b205c21bfd7a4fe06d7da0b6d3d3d52056",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/riscv/zcb.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e70ab29c30063b7b0055076f79829a35ab8ebbb",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/riscv/zcb.s"
    },
    {
      "type": "modify",
      "old_id": "90f441537501dafdf1ee9b683a1e89e90a5f706c",
      "old_mode": 33188,
      "old_path": "include/opcode/riscv-opc.h",
      "new_id": "53f5f2005085ebb8027d5bc15ffd14e7de075291",
      "new_mode": 33188,
      "new_path": "include/opcode/riscv-opc.h"
    },
    {
      "type": "modify",
      "old_id": "739d6dafae9db87997055787a04c32c8f02d882a",
      "old_mode": 33188,
      "old_path": "include/opcode/riscv.h",
      "new_id": "808f36573030f88ad2d0e12f16a1ff7caa0274e1",
      "new_mode": 33188,
      "new_path": "include/opcode/riscv.h"
    },
    {
      "type": "modify",
      "old_id": "827d9b67437dbe860aa7a8947c57596030ee9556",
      "old_mode": 33188,
      "old_path": "opcodes/riscv-dis.c",
      "new_id": "2826248f8afa7d266d84776fb925204532bc4255",
      "new_mode": 33188,
      "new_path": "opcodes/riscv-dis.c"
    },
    {
      "type": "modify",
      "old_id": "533e3f4a0790fde360de43219b5a1e464339b055",
      "old_mode": 33188,
      "old_path": "opcodes/riscv-opc.c",
      "new_id": "6a854736fec0b30a7598cf31f9702e548772e9cc",
      "new_mode": 33188,
      "new_path": "opcodes/riscv-opc.c"
    }
  ]
}
