)]}'
{
  "commit": "e884af534b7e77ba214e8bd8d7ba8fb6009231a4",
  "tree": "9da28d4411ef18d194c40cad6130f8bdb0380399",
  "parents": [
    "d56bdeb9c2e434b91d5e6d605b92bb1cd21177e5"
  ],
  "author": {
    "name": "Alan Hayward",
    "email": "alan.hayward@arm.com",
    "time": "Fri May 11 11:52:56 2018 +0100"
  },
  "committer": {
    "name": "Simon Marchi",
    "email": "simon.marchi@ericsson.com",
    "time": "Fri Jun 01 10:40:20 2018 -0400"
  },
  "message": "Ptrace support for Aarch64 SVE\n\nAdd support for reading and writing registers for Aarch64 SVE.\nI\u0027ve made this functionality common as it will be required for\ngdbserver when gdbsever sve support is added.\n\nGiven that gdbserver does not yet call this function, I am\nhappy to remove the regcache commonise functions from the\nprevious patch. However, this would result in code in nat/\nthat does not compile for gdbserver. I wanted to avoid that.\n\nWe need to support the cases where the kernel only gives us a\nfpsimd structure. This occurs when there is no active SVE state\nin the kernel (for example, after starting a new process).\n\nAs per the covering email description, I\u0027ve included large chunks\nof linux kernel headers within an ifdef. Formatting of these macros\nremains identical to the Kernel versions (ie not adapted to GNU style).\n\nAdded checks to make sure the vector length has not changed whilst\nthe process is running.\n\n2018-05-11  Alan Hayward  \u003calan.hayward@arm.com\u003e\n\ngdb/\n\t* aarch64-linux-nat.c (fetch_sveregs_from_thread): New function.\n\t(store_sveregs_to_thread): Likewise.\n\t(aarch64_linux_fetch_inferior_registers): Check for SVE.\n\t(aarch64_linux_store_inferior_registers): Likewise.\n\t* nat/aarch64-sve-linux-ptrace.c (aarch64_sve_get_sveregs): New\n\tfunction.\n\t(aarch64_sve_regs_copy_to_regcache): Likewise.\n\t(aarch64_sve_regs_copy_from_regcache): Likewise.\n\t* nat/aarch64-sve-linux-ptrace.h (aarch64_sve_get_sveregs): New\n\tdeclaration.\n\t(aarch64_sve_regs_copy_to_regcache): Likewise.\n\t(aarch64_sve_regs_copy_from_regcache): Likewise.\n\t(sve_context): Structure from Linux headers.\n\t(SVE_SIG_ZREGS_SIZE): Define from Linux headers.\n\t(SVE_SIG_ZREG_SIZE): Likewise.\n\t(SVE_SIG_PREG_SIZE): Likewise.\n\t(SVE_SIG_FFR_SIZE): Likewise.\n\t(SVE_SIG_REGS_OFFSET): Likewise.\n\t(SVE_SIG_ZREGS_OFFSET): Likewise.\n\t(SVE_SIG_ZREG_OFFSET): Likewise.\n\t(SVE_SIG_ZREGS_SIZE): Likewise.\n\t(SVE_SIG_PREGS_OFFSET): Likewise.\n\t(SVE_SIG_PREG_OFFSET): Likewise.\n\t(SVE_SIG_PREGS_SIZE): Likewise.\n\t(SVE_SIG_FFR_OFFSET): Likewise.\n\t(SVE_SIG_REGS_SIZE): Likewise.\n\t(SVE_SIG_CONTEXT_SIZE): Likewise.\n\t(SVE_PT_REGS_MASK): Likewise.\n\t(SVE_PT_REGS_FPSIMD): Likewise.\n\t(SVE_PT_REGS_SVE): Likewise.\n\t(SVE_PT_VL_INHERIT): Likewise.\n\t(SVE_PT_VL_ONEXEC): Likewise.\n\t(SVE_PT_REGS_OFFSET): Likewise.\n\t(SVE_PT_FPSIMD_OFFSET): Likewise.\n\t(SVE_PT_FPSIMD_SIZE): Likewise.\n\t(SVE_PT_SVE_ZREG_SIZE): Likewise.\n\t(SVE_PT_SVE_PREG_SIZE): Likewise.\n\t(SVE_PT_SVE_FFR_SIZE): Likewise.\n\t(SVE_PT_SVE_FPSR_SIZE): Likewise.\n\t(SVE_PT_SVE_FPCR_SIZE): Likewise.\n\t(__SVE_SIG_TO_PT): Likewise.\n\t(SVE_PT_SVE_OFFSET): Likewise.\n\t(SVE_PT_SVE_ZREGS_OFFSET): Likewise.\n\t(SVE_PT_SVE_ZREG_OFFSET): Likewise.\n\t(SVE_PT_SVE_ZREGS_SIZE): Likewise.\n\t(SVE_PT_SVE_PREGS_OFFSET): Likewise.\n\t(SVE_PT_SVE_PREG_OFFSET): Likewise.\n\t(SVE_PT_SVE_PREGS_SIZE): Likewise.\n\t(SVE_PT_SVE_FFR_OFFSET): Likewise.\n\t(SVE_PT_SVE_FPSR_OFFSET): Likewise.\n\t(SVE_PT_SVE_FPCR_OFFSET): Likewise.\n\t(SVE_PT_SVE_SIZE): Likewise.\n\t(SVE_PT_SIZE): Likewise.\n\t(HAS_SVE_STATE): New define.\n\ngdbserver\n\t* Makefile.in: Add aarch64-sve-linux-ptrace.c.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79dd9ceca625a4e4d70e26415c2c934fb46fccb1",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-linux-nat.c",
      "new_id": "8165594272a6545c6d03b7500c89237273a6e8b1",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "9709ba414ee35b3b163015b331dbd8d21b2ecf06",
      "old_mode": 33188,
      "old_path": "gdb/common/common-regcache.h",
      "new_id": "3f18cceb2222244efe900ee6e3bc3585b1ec71fd",
      "new_mode": 33188,
      "new_path": "gdb/common/common-regcache.h"
    },
    {
      "type": "modify",
      "old_id": "675faa43642ffc716123e577dbe5cf806a5053bf",
      "old_mode": 33188,
      "old_path": "gdb/gdbserver/Makefile.in",
      "new_id": "f924e6a7f9e53f584cc470c56643739c6f16e693",
      "new_mode": 33188,
      "new_path": "gdb/gdbserver/Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "88f0db048321304e653c4fc6842eb98c898955e9",
      "old_mode": 33188,
      "old_path": "gdb/gdbserver/regcache.c",
      "new_id": "39bc6f095c62400e7aed57e3281e77958c568a8d",
      "new_mode": 33188,
      "new_path": "gdb/gdbserver/regcache.c"
    },
    {
      "type": "modify",
      "old_id": "b3631bebd27efc29196b5b819a0a2d2144e05a7f",
      "old_mode": 33188,
      "old_path": "gdb/gdbserver/regcache.h",
      "new_id": "ad199a9ef19db2e6fa99894b545bf63daaaa42f1",
      "new_mode": 33188,
      "new_path": "gdb/gdbserver/regcache.h"
    },
    {
      "type": "modify",
      "old_id": "3a1dbae7099552907b71cb4efe8feb0e032dde49",
      "old_mode": 33188,
      "old_path": "gdb/nat/aarch64-sve-linux-ptrace.c",
      "new_id": "0f0b76c319871a14d727d64eb7e4453530df86fa",
      "new_mode": 33188,
      "new_path": "gdb/nat/aarch64-sve-linux-ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "a32ddf16768fa1985400ee05c37025b0be14b604",
      "old_mode": 33188,
      "old_path": "gdb/nat/aarch64-sve-linux-ptrace.h",
      "new_id": "1754989afd2be190bf02401f0d822941e6433498",
      "new_mode": 33188,
      "new_path": "gdb/nat/aarch64-sve-linux-ptrace.h"
    },
    {
      "type": "modify",
      "old_id": "a2a43da04604a2a14c9c1c93f1628ded9bb8b8dd",
      "old_mode": 33188,
      "old_path": "gdb/regcache.c",
      "new_id": "df521c94df7051142d0d6cbd723bebb30c3f9cb2",
      "new_mode": 33188,
      "new_path": "gdb/regcache.c"
    },
    {
      "type": "modify",
      "old_id": "432e1b30a92fa33728e1cdf17c4464502beb4508",
      "old_mode": 33188,
      "old_path": "gdb/regcache.h",
      "new_id": "f271775b52a4235d26adc1c4d3bf8258f5a4f6ae",
      "new_mode": 33188,
      "new_path": "gdb/regcache.h"
    }
  ]
}
