)]}'
{
  "commit": "43ca6e2df12a28bdd6b86ba4fe113f0b5e50a5f2",
  "tree": "9c2e1ec568706f4e291fc7fe69fb97233b7cf680",
  "parents": [
    "8bad8f17988ab83e5e7c5fd8c1e40684ade3c3fb"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Jan 21 14:13:35 2026 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jan 27 13:14:37 2026 -0800"
  },
  "message": "sha512-armv8: Pull the .16b suffixes out of the variables\n\nIn aarch64 AdvSIMD (aka NEON), each 128-bit vector register can be\nviewed in different ways. E.g. v0.16b is v0 viewed as 16 bytes, while\nv0.4s is v0 viewed as 4 32-bit words. (s stands for \"single word\".)\n\nIn the assembly language, some instructions take multiple suffixes,\nwhile others can only be used with one suffix. A single register may\nneed to be used with multiple suffixes in a given function. This makes\npackaging the suffixes into variables tricky because the code cannot\nchoose which one.\n\nThis file works by just always writing .16b and then using regexes at\nthe bottom to fix them up, sometimes by inventing ad-hoc instructions\nlike add.i32. Other times, it just always gets them wrong (sha256 and\nsha512 instructions) but gets by because the regexes rewrite them into\nbytes anyway.\n\nSo this file looks like more \"normal\" aarch64 assembly, let\u0027s remove\nthese. This first commit pulls the suffixes out of the variables and\ninto where they are used. Other than whitespace to realign the comments,\nthis should not change the value of $code.\n\nBug: 478924351\nChange-Id: I9cad9b1552eb6115240e2e80096e511d594374c5\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/87527\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Lily Chen \u003cchlily@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79ca630f566eda03572f38365b9e2bffcc3a6f9c",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/asm/sha512-armv8.pl",
      "new_id": "dc4ffef0f0ce27ef34f9ab1e7e92a480e63f7353",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/asm/sha512-armv8.pl"
    },
    {
      "type": "modify",
      "old_id": "b56252e774df77016c3195dc137648fc67c599d0",
      "old_mode": 33188,
      "old_path": "gen/bcm/sha512-armv8-apple.S",
      "new_id": "1a523cc720659027bb75d5ce2fc110ab7166a20a",
      "new_mode": 33188,
      "new_path": "gen/bcm/sha512-armv8-apple.S"
    },
    {
      "type": "modify",
      "old_id": "793e9e6217648930a1c5b4945223cc308739f1f2",
      "old_mode": 33188,
      "old_path": "gen/bcm/sha512-armv8-linux.S",
      "new_id": "ba33c06dbfde0894ba52e312aad39a841a7b2d44",
      "new_mode": 33188,
      "new_path": "gen/bcm/sha512-armv8-linux.S"
    },
    {
      "type": "modify",
      "old_id": "7b09813fcae80a26eeea0503e7cf631e476924e3",
      "old_mode": 33188,
      "old_path": "gen/bcm/sha512-armv8-win.S",
      "new_id": "d8610acb075013b6325b63b72b22cfbf81374646",
      "new_mode": 33188,
      "new_path": "gen/bcm/sha512-armv8-win.S"
    }
  ]
}
