)]}'
{
  "commit": "9ad94eaded134cf5824776ab0ccf8ecd47518919",
  "tree": "6e045bbd5995d982a53f5ea0dd68de3abd5e6a95",
  "parents": [
    "182f44d67243a3270ec540e92a8ba6ea327ba004"
  ],
  "author": {
    "name": "Alan Hayward",
    "email": "alan.hayward@arm.com",
    "time": "Wed Aug 01 10:57:13 2018 +0100"
  },
  "committer": {
    "name": "Alan Hayward",
    "email": "alan.hayward@arm.com",
    "time": "Thu Sep 13 16:49:24 2018 +0100"
  },
  "message": "Aarch64 SVE: Support changing vector lengths in gdbserver\n\nThere are two parts to this patch - gdbserver and GDB.\n\nIn gdbserver, there needs to be an equivalent of the thread_architecture\nmethod used in GDB. In regcache, validate the tdesc with the\nuse target_validate_tdesc target function. If this fails then re-obtain\nthe target descriptor via general setup.\nThe aarch64 validation step simply checks the value of the VG register to\nsee if it matches the current kernel value.\n\nIn GDB, we have a similar check when receiving a stop reply. Validate the\ntdesc using gdbarch_target_description_changed_p. If this fails re-obtain\nthe target descriptor via general setup - which is done by setting up an\ntdep info structure containing the vector length.\nThe aarch64 validation step checks the value of VG (which is marked as\nan expediated register, so is in the stop reply).\n\n2018-08-03  Alan Hayward  \u003calan.hayward@arm.com\u003e\n\ngdb/\n\t* aarch64-tdep.c\n\t(aarch64_target_description_changed_p): Check vector length.\n\t(aarch64_target_get_tdep_info): Store vector length.\n\t* remote.c (remote_target::process_stop_reply): Validate tdesc.\n\t* target-descriptions.c (target_find_description): Pass through info.\n\t* target-descriptions.h (target_find_description): Add arg.\n\ngdbserver/\n\t* linux-aarch64-low.c (aarch64_validate_tdesc): Check vector length.\n\t* regcache.c (get_thread_regcache): Validate tdesc.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "209bc256f35c560cfa56ec55587fb70ad53a881d",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-tdep.c",
      "new_id": "6f0f5c69168e79c09c138358c746d04c3063abc2",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "dcc19ce18c0e09a0d0729d6b6750a85443163019",
      "old_mode": 33188,
      "old_path": "gdb/gdbserver/linux-aarch64-low.c",
      "new_id": "6cea4b215aefc76ed189b8dfc55c1f6944e345e4",
      "new_mode": 33188,
      "new_path": "gdb/gdbserver/linux-aarch64-low.c"
    },
    {
      "type": "modify",
      "old_id": "0ffec534c3674913b428b7b7d133e26824a22a41",
      "old_mode": 33188,
      "old_path": "gdb/gdbserver/regcache.c",
      "new_id": "7b879be9e212ff9c85507b4bb0f39cc0b0ac5df6",
      "new_mode": 33188,
      "new_path": "gdb/gdbserver/regcache.c"
    },
    {
      "type": "modify",
      "old_id": "69e7d93c87ec146ad95029020a9e5787f4ecf40f",
      "old_mode": 33188,
      "old_path": "gdb/remote.c",
      "new_id": "a54bd014a496ec21bf29669cca65f5b99e63e4bc",
      "new_mode": 33188,
      "new_path": "gdb/remote.c"
    },
    {
      "type": "modify",
      "old_id": "087de141f7f9fad75bcc27e046c5cfc8d2961081",
      "old_mode": 33188,
      "old_path": "gdb/target-descriptions.c",
      "new_id": "a56a38ad97d22f5c4ce748cf1f57d3d6ae60f725",
      "new_mode": 33188,
      "new_path": "gdb/target-descriptions.c"
    },
    {
      "type": "modify",
      "old_id": "96290b7d97ea27776b675224cb397b4dc680c4e0",
      "old_mode": 33188,
      "old_path": "gdb/target-descriptions.h",
      "new_id": "1376b02c4254d2df0e8f0bafadb6b2ab3f59ff37",
      "new_mode": 33188,
      "new_path": "gdb/target-descriptions.h"
    }
  ]
}
