)]}'
{
  "commit": "5bf6d4cd7eb01c54e5ffccc2374aa2a671934c75",
  "tree": "e972fffcb1a75f6cbda3a3988174c53aa714c847",
  "parents": [
    "f4c12969c393a799e2468b01e71d3d7fddb094f3"
  ],
  "author": {
    "name": "Alice Carlotti",
    "email": "alice.carlotti@arm.com",
    "time": "Sat Jul 12 03:53:21 2025 +0100"
  },
  "committer": {
    "name": "Alice Carlotti",
    "email": "alice.carlotti@arm.com",
    "time": "Sat Jul 12 10:04:27 2025 +0100"
  },
  "message": "aarch64: Add missing F_STRICT flags\n\nBy default, NIL qualifiers are treated as matching any qualifier when\nchecking operand constraints.  For many SVE instructions, this would\nallow operands with missing type suffixes to be assembled as if they had\nany explicit type specified.  To prevent this, the F_STRICT flag is used\nto specify that NIL qualifiers should match only NIL qualifiers.\n\nUnfortunately, several SVE instructions incorrectly omitted this\nF_STRICT flag.  The bug has existed in the *MATMUL_SVE* macros since\nthey were added in 2019.  The macro LUT_SVE2_INSN was added last year,\nand the other incorrect macros are new in this release.\n\nLUTv2_SME2_INSN and LUTv2_SME2p1_INSN were not actually broken, because\nwe reject untyped vector lists already during parsing.  However, I have\nadded the F_STRICT flag here anyway, since this is more consistent and\nwould be more robust if those operands start accepting untyped vector\nlists in the future.  The new luti4 tests are the only ones that were\nalready rejected before this change.\n\nBFLOAT16_SVE_INSN has been unused since it was originally added, so I\njust deleted the macro.\n\nThe SVE LUT instructions were using the lut instruction class, which\nhas special handling only for SIMD operands, and isn\u0027t recognised by\naarch64_decode_variant_using_iclass (which sets the qualifiers during\ndecode for most SVE instructions).  To prevent these instructions\nfailing to disassemble, I changed their instruction class to sve_misc.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f00db806026ba571d14a79976b3bbac5b76e064",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sve-missing-qualifiers.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a258ef5c0df841439a80bda0de881d92cdefcb12",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sve-missing-qualifiers.l"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "64ee8db5fcf136a74a6ea8f1cf1c3f0d76a124b3",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/aarch64/sve-missing-qualifiers.s"
    },
    {
      "type": "modify",
      "old_id": "4b1acc2ed0bceab21783d77318f27332aeaf85d9",
      "old_mode": 33188,
      "old_path": "opcodes/aarch64-tbl.h",
      "new_id": "b23fc7c6bc5490f33350d3abf6398aa86d78b212",
      "new_mode": 33188,
      "new_path": "opcodes/aarch64-tbl.h"
    }
  ]
}
