)]}'
{
  "commit": "f1d5fdefa8e8d7a2bacb640888bc6f4e4d1b6b6d",
  "tree": "e4a870fd144c1b333fb8969fd85d40d98302aaa2",
  "parents": [
    "d222ddc4d90743dfc1e53b610be8fc9d95893d2c"
  ],
  "author": {
    "name": "Brian Cain",
    "email": "brian.cain@oss.qualcomm.com",
    "time": "Fri Jan 23 23:18:36 2026 -0600"
  },
  "committer": {
    "name": "Brian Cain",
    "email": "brian.cain@oss.qualcomm.com",
    "time": "Fri Jan 23 23:46:49 2026 -0600"
  },
  "message": "Fix Hexagon ABI calling convention for small aggregates\n\nSmall structs (\u003c\u003d 64 bits) were being passed with their fields split\ninto separate arguments instead of being packed into register-sized\nchunks. This caused ABI mismatches.\n\nThe fix properly casts small aggregates to consecutive register-sized\nchunks using Uniform::consecutive(), matching the Hexagon C ABI where\nsmall structs are packed into R1:0 register pair.\n\nThis fixes tests like extern-pass-TwoU16s.rs and extern-pass-TwoU8s.rs.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e08e6daa7405a476c34542e07f3399530c039eb3",
      "old_mode": 33188,
      "old_path": "compiler/rustc_target/src/callconv/hexagon.rs",
      "new_id": "e07aa32251aa2ff2f7b0641fed564402013f51e8",
      "new_mode": 33188,
      "new_path": "compiler/rustc_target/src/callconv/hexagon.rs"
    }
  ]
}
