)]}'
{
  "commit": "d8ba1c40371a664fe6fa3ed768dbf78289548359",
  "tree": "8087faa358f411cbdb586ef6453c6ad90ef9b799",
  "parents": [
    "8864c4afdf2ff75e7edda6075286e07b9714ce12"
  ],
  "author": {
    "name": "Cui, Lili",
    "email": "lili.cui@intel.com",
    "time": "Tue Jun 18 10:45:49 2024 +0800"
  },
  "committer": {
    "name": "Cui, Lili",
    "email": "lili.cui@intel.com",
    "time": "Tue Jun 18 10:52:40 2024 +0800"
  },
  "message": "Support APX CCMP and CTEST\n\nCCMP and CTEST are two new sets of instructions for conditional CMP\nand TEST, SCC and OSZC flags are given as suffixes of CCMP or CTEST\nin the instruction mnemonic, e.g.:\n\nccmp\u003ccc\u003e { dfv\u003dsf , cf , of } %eax, %ecx\n\nalso add\n\n{evex} cmp/test %eax, %ecx\n\nas an alias for ccmpt.\n\nFor the encoder part, add function check_Scc_OszcOperation to parse\n\u0027{ dfv\u003dof , sf, sf, cf}\u0027, store scc in the lower 4 bits of base_opcode,\nand adjust base_opcode to its normal meaning in install_template.\n\nFor the decoder part, add \u0027SC\u0027 and \u0027DF\u0027 macros to add scc and oszc flags\nsuffixes.\n\ngas/ChangeLog:\n\n        * config/tc-i386.c (OSZC_CF): New.\n        (OSZC_ZF): Ditto.\n        (OSZC_SF): Ditto.\n        (OSZC_OF): Ditto.\n        (set_oszc_flags): Set oszc flags and report error for using the same oszc flags twice.\n        (check_Scc_OszcOperations): Handle SCC OSZC flags.\n        (install_template): Add scc and oszc_flags.\n        (build_apx_evex_prefix): Encode SCC and oszc flags bits.\n        (parse_insn): Handle check_Scc_OszcOperations.\n        * testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d: Add ivalid test case.\n        * testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s: Ditto.\n        * testsuite/gas/i386/x86-64.exp: Add test for ccmp and ctest.\n        * testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d: New test.\n        * testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.l: Ditto.\n        * testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.s: Ditto.\n        * testsuite/gas/i386/x86-64-apx-ccmp-ctest.d: Ditto.\n        * testsuite/gas/i386/x86-64-apx-ccmp-ctest.s: Ditto.\n\nopcodes/ChangeLog:\n\n        * i386-dis-evex-reg.h: Add ccmp and ctest.\n        * i386-dis-evex.h: Ditto.\n        * i386-dis.c (struct instr_info): add scc.\n        (struct dis386): Add new micro \u0027NE\u0027,\u0027SC\u0027 and\u0027DF\u0027.\n        (get_valid_dis386): Get scc value and move MAP4 invalid check to print_insn.\n        (putop): Handle %NE, %SC and %DF.\n        * i386-opc.h (SCC): New.\n        * i386-opc.tbl: Add ccmp/ctest and evex format for cmp/test.\n        * i386-mnem.h: Regenerated.\n        * i386-tbl.h: Ditto.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e0c69640e01828ffd7c026765f44d862ca53131b",
      "old_mode": 33188,
      "old_path": "gas/config/tc-i386.c",
      "new_id": "b8fc3c438196c7d16c67b858bda0ef114247c22a",
      "new_mode": 33188,
      "new_path": "gas/config/tc-i386.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c9ab3e959bfcfd07472fc5261f2d3a7ac1cb07ca",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44ed7106258003995bc34c05298c95add31e34ee",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.l"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd1be34a960a38477cf02f2f9967139a54768bf3",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f100f06e74a8d1efd9f1bf94028b0c25924b8f2",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66bf224c5bd43af402bd1e2346f4d31b05746597",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s"
    },
    {
      "type": "modify",
      "old_id": "6330367194cb0c24e7e5f289b1cbb871e0a2b3d2",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d",
      "new_id": "7c2efb08d711ccd2d7415feb9b613aa3183ec186",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d"
    },
    {
      "type": "modify",
      "old_id": "cbf34515bab04de6c45d0e5bdfe302cce51e9aeb",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s",
      "new_id": "959e4e1fb436c6ad159ace084bbdfffae8ed8008",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s"
    },
    {
      "type": "modify",
      "old_id": "8ac7aca1fec8e2fcbb0d4ff08806d3e5e8af8f8a",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/i386/x86-64.exp",
      "new_id": "a8d49cefe8c1034fd5455aec4cbc816c208b181f",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/i386/x86-64.exp"
    },
    {
      "type": "modify",
      "old_id": "7408295f8e56add730dcf7f54091ee8441100844",
      "old_mode": 33188,
      "old_path": "opcodes/i386-dis-evex-reg.h",
      "new_id": "eda0e824aef34730dd98e889ad7a32c1101282c2",
      "new_mode": 33188,
      "new_path": "opcodes/i386-dis-evex-reg.h"
    },
    {
      "type": "modify",
      "old_id": "a3d3fbe204d7636eb56495eaef60eb38f57be1cc",
      "old_mode": 33188,
      "old_path": "opcodes/i386-dis-evex.h",
      "new_id": "77c2ee772d11d9508b959c6616794575d4e0bd6c",
      "new_mode": 33188,
      "new_path": "opcodes/i386-dis-evex.h"
    },
    {
      "type": "modify",
      "old_id": "5e9e53c49393aecb1725af3cafd205b132905c94",
      "old_mode": 33188,
      "old_path": "opcodes/i386-dis.c",
      "new_id": "86745a1b933cb262857d86f9ae4f717adf38b318",
      "new_mode": 33188,
      "new_path": "opcodes/i386-dis.c"
    },
    {
      "type": "modify",
      "old_id": "c2ef4f464f06be9a2e264932131d6cf1f66ce6ae",
      "old_mode": 33188,
      "old_path": "opcodes/i386-mnem.h",
      "new_id": "5f01bb969dd48a014c5a69a69867460c262755ce",
      "new_mode": 33188,
      "new_path": "opcodes/i386-mnem.h"
    },
    {
      "type": "modify",
      "old_id": "38b8e64e75558b37f9af1d8953f634045e726e63",
      "old_mode": 33188,
      "old_path": "opcodes/i386-opc.h",
      "new_id": "7400428eb24f1600d6180a3e052b7b416ea6d528",
      "new_mode": 33188,
      "new_path": "opcodes/i386-opc.h"
    },
    {
      "type": "modify",
      "old_id": "c91068001558aed031ec176dbf4a58b5f2594040",
      "old_mode": 33188,
      "old_path": "opcodes/i386-opc.tbl",
      "new_id": "e365f06314276cd7099d3296fab1dc79c55a9cb4",
      "new_mode": 33188,
      "new_path": "opcodes/i386-opc.tbl"
    },
    {
      "type": "modify",
      "old_id": "0e84836d8dac2c8e198c349641ec48cdd490ba26",
      "old_mode": 33188,
      "old_path": "opcodes/i386-tbl.h",
      "new_id": "60a191519f3570c158dba0ae0631bb46484bac76",
      "new_mode": 33188,
      "new_path": "opcodes/i386-tbl.h"
    }
  ]
}
