)]}'
{
  "commit": "1ec9dd256ea287796261ba88d7bdfbeaba38343d",
  "tree": "52049ac95617ca95153661068a2eeeccff7c648b",
  "parents": [
    "c22bc215ac9496ee5f6e55ba0b0904dc825c6f56"
  ],
  "author": {
    "name": "Fangrui Song",
    "email": "i@maskray.me",
    "time": "Sat May 03 22:50:27 2025 -0700"
  },
  "committer": {
    "name": "Fangrui Song",
    "email": "i@maskray.me",
    "time": "Sat May 03 22:50:28 2025 -0700"
  },
  "message": "Sparc: Refactor R_SPARC_13/R_SPARC_GOT13 handling and fix a bug referencing absolute symbol\n\nhttps://reviews.llvm.org/D47136 did not correctly handle `ld [%i0 + abs], %o0; abs \u003d 7`\n\nTo fix it and make fixup handling less hacky,\n\n* Change TableGen MEMri to use simm13Op instead of i32imm\n* Emit a fixup of kind fixup_sparc_13 in SparcMCCodeEmitter::getSImm13OpValue\n* Convert fixup_sparc_13 to either R_SPARC_13/R_SPARC_GOT13 in getRelocType\n\nThis postpones 13/GOT13 decision to relocation generation, ensuring that\nwe suppress the relocation when referencing an absolute symbol, matching\ngas.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a730932ce9f89d26cd0778227a5343789a99c8a",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp",
      "new_id": "78fc1dad203c394b7a7935da82b8b66e4fc8a654",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp"
    },
    {
      "type": "modify",
      "old_id": "0c0f49f11a429ad890526574b9fd3d97971a6531",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp",
      "new_id": "1ed5313703b425253183f758634bd31d494c9ef0",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "b23cc16b76de43de52c54801e1275e3382ab3a7a",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp",
      "new_id": "3aaedef6120d819c87a1c03b5c6cfa5e9596296e",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp"
    },
    {
      "type": "modify",
      "old_id": "0c890721da0f4f188265fba43ec51a706dbba8e6",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/Sparc/SparcInstrInfo.td",
      "new_id": "5617681821a3f2c25aace3cc7ef384f9151cf6ad",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/Sparc/SparcInstrInfo.td"
    },
    {
      "type": "modify",
      "old_id": "18224d699fe284923177181d64191de8aa19447f",
      "old_mode": 33188,
      "old_path": "llvm/test/MC/Sparc/sparc-fixups.s",
      "new_id": "e77f56e24cad3ef5c5079f5f7ca06d6e5b1784a3",
      "new_mode": 33188,
      "new_path": "llvm/test/MC/Sparc/sparc-fixups.s"
    }
  ]
}
