)]}'
{
  "commit": "954c940167ab42fca2df4bc322057272e165e0a3",
  "tree": "e02f9b317023062394f46b27e0dd33ceb2efecf3",
  "parents": [
    "171eaa9520669fcb482405fcd18f4aecc5f265da"
  ],
  "author": {
    "name": "Minsoo Choo",
    "email": "minsoo@minsoo.io",
    "time": "Sat Oct 24 22:46:07 2026 -0400"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Sat Oct 24 19:51:10 2026 -0700"
  },
  "message": "[libunwind] Support extended amd64 segment registers (#229176)\n\nRaise the amd64 DWARF register limit to 59 and add RFLAGS, all six\nsegment selectors, FS.base, and GS.base to the register model. Capture\nthe extended state and restore it when resuming, using sigreturn() on\nFreeBSD to restore selectors and bases together. Pack the state into the\nexisting context buffers without changing their public sizes or the\nWindows XMM offsets.\n\nAdd tests for register access, signal-frame CFI recovery, register\nbounds, and resume behavior.\n\nAssisted-by: GPT\nGitOrigin-RevId: fd4113508a64bb2dff7bbc530b41feaf33a9d08d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60ab1bdc2cf757079db9e5e1eca2035e958f7948",
      "old_mode": 33188,
      "old_path": "include/__libunwind_config.h",
      "new_id": "30a6e891bac5c19bdd5f9f08956301c898c3a836",
      "new_mode": 33188,
      "new_path": "include/__libunwind_config.h"
    },
    {
      "type": "modify",
      "old_id": "6c2dfe58e53bf1f97bca6c78dacb47cc3676b8dc",
      "old_mode": 33188,
      "old_path": "include/libunwind.h",
      "new_id": "7c2f611e208923da23d6fe417b34c438a5da5dbc",
      "new_mode": 33188,
      "new_path": "include/libunwind.h"
    },
    {
      "type": "modify",
      "old_id": "3711189f57b1d115c82811b18017b56d74284e2c",
      "old_mode": 33188,
      "old_path": "src/AddressSpace.hpp",
      "new_id": "d446f6abd9578f142c55331ef3f5273dbc5f6f54",
      "new_mode": 33188,
      "new_path": "src/AddressSpace.hpp"
    },
    {
      "type": "modify",
      "old_id": "4870e315962e096961b1619120bb4a2e9e0f4dbd",
      "old_mode": 33188,
      "old_path": "src/Registers.hpp",
      "new_id": "7b76708510bebafedadaefd7ba5f9b7a2e0366de",
      "new_mode": 33188,
      "new_path": "src/Registers.hpp"
    },
    {
      "type": "modify",
      "old_id": "dfd5b2b19e1b485cc61ec2922788899bd24b1c55",
      "old_mode": 33188,
      "old_path": "src/UnwindCursor.hpp",
      "new_id": "362738d82744918befc587304d710ad88b9eabdf",
      "new_mode": 33188,
      "new_path": "src/UnwindCursor.hpp"
    },
    {
      "type": "modify",
      "old_id": "6c9dcc48c309ad1e12084326f99a78990694ae10",
      "old_mode": 33188,
      "old_path": "src/UnwindRegistersRestore.S",
      "new_id": "5a99bfa5aec43104575e93696175bc3f7e6d4bdc",
      "new_mode": 33188,
      "new_path": "src/UnwindRegistersRestore.S"
    },
    {
      "type": "modify",
      "old_id": "81d32009952895ae707296af4189fcb0870ec2a2",
      "old_mode": 33188,
      "old_path": "src/UnwindRegistersSave.S",
      "new_id": "faea60ad55e051cfad2c36ff7e73d76f0a405619",
      "new_mode": 33188,
      "new_path": "src/UnwindRegistersSave.S"
    },
    {
      "type": "modify",
      "old_id": "84c9d526f1d7594e456b5a31c11adff57f79551a",
      "old_mode": 33188,
      "old_path": "src/assembly.h",
      "new_id": "a36d2669eaa5002e437e4fb8d1a9d2e8c69ce2b4",
      "new_mode": 33188,
      "new_path": "src/assembly.h"
    },
    {
      "type": "modify",
      "old_id": "0b9d56ec805bca92f0ed4b93be549c8cf982e809",
      "old_mode": 33188,
      "old_path": "src/libunwind.cpp",
      "new_id": "29364a0fe2818f0351636aefc5dabe27d87c93f8",
      "new_mode": 33188,
      "new_path": "src/libunwind.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23ad6aad2d57210c81a65d07057aa223a3ad88e0",
      "new_mode": 33188,
      "new_path": "test/x86_64_dwarf_registers.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "416de21b40520e08863da566122e4bf3b2408e45",
      "new_mode": 33188,
      "new_path": "test/x86_64_extended_registers.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd32883c7efafba0853144f2e86e6f812234fe89",
      "new_mode": 33188,
      "new_path": "test/x86_64_getcontext_preserves_rbx.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3c51eedf7d80554428ecb64f8bdd380b09769ff",
      "new_mode": 33188,
      "new_path": "test/x86_64_resume_extended_registers.pass.cpp"
    }
  ]
}
