)]}'
{
  "commit": "6abf2eeffa3771cf5dbd30fef79c9b7a8c39b973",
  "tree": "f3a1c20d336a98620670e9d71bda771e6d77ecf1",
  "parents": [
    "44019209faf3db952a6a04aaeeaa779a8ff7e661"
  ],
  "author": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Sun Mar 26 09:42:10 2023 +0000"
  },
  "committer": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Tue Apr 11 10:11:14 2023 +0100"
  },
  "message": "gdb/riscv: Support c.li in prologue unwinder\n\nI was seeing some failures in gdb.threads/omp-par-scope.exp when run\non a riscv64 target.  It turns out the cause of the problem is that I\ndidn\u0027t have debug information installed for libgomp.so, which this\ntest makes use of.  The test requires GDB to backtrace through a\nlibgomp function, and the riscv prologue unwinder was failing to\nunwind this particular stack frame.\n\nThe reason for the failure to unwind was that the function prologue\nincludes a c.li (compressed load immediate) instruction, and the riscv\nprologue scanning unwinder doesn\u0027t know what to do with this\ninstruction, though the unwinder does understand c.lui (compressed\nload unsigned immediate).\n\nThis commit adds support for c.li.  After this GDB is able to unwind\nthrough libgomp, and I no longer see any unexpected failures in\ngdb.threads/omp-par-scope.exp.\n\nI\u0027ve also included a new test in gdb.arch/ which specifically checks\nfor our c.li support.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d01ba9bfa6a6ef3499dbd6a8c56fb20fc154f6ee",
      "old_mode": 33188,
      "old_path": "gdb/riscv-tdep.c",
      "new_id": "144eb7e0132737dddd83f5f25d7317e7b33f14b3",
      "new_mode": 33188,
      "new_path": "gdb/riscv-tdep.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "787aacdd8f32b5b9446dd98b1d9c931109be6807",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3a0cb3ff40ff281d6e4b0fecf001416a4c00efd",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "069effa2b875b2396c2ecf409925054c903f2052",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp"
    }
  ]
}
