)]}'
{
  "commit": "e2dc4040f30caba49d2bb7bd1d5119dd8a72cdba",
  "tree": "0cfebab3ae6d8f57a7e9f44c876059922ec076d7",
  "parents": [
    "90cd80f8c24f9919a10117aa93fc570ac8b7767a"
  ],
  "author": {
    "name": "Richard Sandiford",
    "email": "richard.sandiford@arm.com",
    "time": "Thu Mar 30 11:09:11 2023 +0100"
  },
  "committer": {
    "name": "Richard Sandiford",
    "email": "richard.sandiford@arm.com",
    "time": "Thu Mar 30 11:09:11 2023 +0100"
  },
  "message": "aarch64: Add support for vgx2 and vgx4\n\nMany SME2 instructions operate on groups of 2 or 4 ZA vectors.\nThis is indicated by adding a \"vgx2\" or \"vgx4\" group size to the\nZA index.  The group size is optional in assembly but preferred\nfor disassembly.\n\nThere is not a binary distinction between mnemonics that have\ngroup sizes and mnemonics that don\u0027t, nor between mnemonics that\ntake vgx2 and mnemonics that take vgx4.  We therefore get better\nerror messages if we allow any ZA index to have a group size\nduring parsing, and wait until constraint checking to reject\ninvalid sizes.\n\nA quirk of the way errors are reported means that if an instruction\nis wrong both in its qualifiers and its use of a group size, we\u0027ll\nprint suggested alternative instructions that also have an incorrect\ngroup size.  But that\u0027s a general property that also applies to\nthings like out-of-range immediates.  It\u0027s also not obviously the\nwrong thing to do.  We need to be relatively confident that we\u0027re\nlooking at the right opcode before reporting detailed operand-specific\nerrors, so doing qualifier checking first seems resonable.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b4e0b937605f5a57eaca860deb253b72bfe0f1b8",
      "old_mode": 33188,
      "old_path": "gas/config/tc-aarch64.c",
      "new_id": "2d732ea17809345db6c0b87a2c0fe9ac77a12c64",
      "new_mode": 33188,
      "new_path": "gas/config/tc-aarch64.c"
    },
    {
      "type": "modify",
      "old_id": "1df18ef200239b52b35670840fd57d4199ef04dc",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-2-illegal.l",
      "new_id": "fd36ed783813137af4146941f57a77bd5e375a09",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-2-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "28eb6719c910b13f327dccdd14fb85c26de0bf71",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-2-illegal.s",
      "new_id": "8cc130ac9c0ba9091a76c936a451200ab188fe14",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-2-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "717af3b54be4c0cbb4df51de0de06e47731aa13e",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-3-illegal.l",
      "new_id": "f5fb169b78a93202f21bae4c1052f4a4744e1d46",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-3-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "6ed58ec60a118bb18defb489ccc000f1719394e0",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-3-illegal.s",
      "new_id": "aeeaf549e8f2d8a779a66d4eaaa3df141a1673c5",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-3-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "f892dcd2090c566ac49b84ad1694c5c64048fe33",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-5-illegal.l",
      "new_id": "f6eda9da5e22b9979de5e8ff212ccd8fa68b75e2",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-5-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "29f866690439396c0b90a6006c228f2b6355041d",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-5-illegal.s",
      "new_id": "9dbce626a6e70e8d40b6fac5e3a03da6a620b014",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-5-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "c8141e086ababc271fc5fe2c7058202fb6ac8c6c",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-6-illegal.l",
      "new_id": "bc0d19417fc2f1521f1142e8ae97a4eac6415f12",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-6-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "d0de01d5a6c35fce188efd4658b3dbb8d755ac1a",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-6-illegal.s",
      "new_id": "04a508821bccd82bc0f2deb60ff5a672081a173f",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-6-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "0023a84da71a4bee0443fc3d0d04ea07abcb89be",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-7-illegal.l",
      "new_id": "eb0c5e6f51acae05aa37d25b3c38103b37dd57ef",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-7-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "75e2810e647450f97bcdaa4bacc531cd2d350858",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-7-illegal.s",
      "new_id": "05d7d23fe29d5a3f0fdf9c2fc6b3922a87ee61da",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-7-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "0243c9efcdfe060cb3e8144349733013bd62c6b4",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-9-illegal.l",
      "new_id": "d7aff825288aa22de6c6a4c451a6181e48ceebfe",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-9-illegal.l"
    },
    {
      "type": "modify",
      "old_id": "f59582eeb8b27e20456cb48bab0e46c4cd017c03",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/aarch64/sme-9-illegal.s",
      "new_id": "8f41298cd3c9f6e7e267f37b306da88e30d03f44",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sme-9-illegal.s"
    },
    {
      "type": "modify",
      "old_id": "945846685178ccb9909b0ee27d17f343525b5de0",
      "old_mode": 33188,
      "old_path": "include/opcode/aarch64.h",
      "new_id": "534bdaa869f31d630f2f6c5257c7571f4c6c91b0",
      "new_mode": 33188,
      "new_path": "include/opcode/aarch64.h"
    },
    {
      "type": "modify",
      "old_id": "e97201bb03a3160b7af9e74d55ccf1592ad1ea22",
      "old_mode": 33188,
      "old_path": "opcodes/aarch64-opc.c",
      "new_id": "0d38ff250c474a0b2173751cf4a730653dd8323e",
      "new_mode": 33188,
      "new_path": "opcodes/aarch64-opc.c"
    }
  ]
}
