)]}'
{
  "commit": "bcb0f91bbceb3486cc7f10102ff046661fb4d364",
  "tree": "f498babedd4176afa3d38607403fc38f4c7571b6",
  "parents": [
    "7eace71069e621a910a5158a1b46314d38f724ae"
  ],
  "author": {
    "name": "Garrett Bodley",
    "email": "garrett.bodley@gmail.com",
    "time": "Sun Jul 21 14:23:57 2024 -0400"
  },
  "committer": {
    "name": "Roland Shoemaker",
    "email": "roland@golang.org",
    "time": "Wed Sep 04 20:35:25 2024 +0000"
  },
  "message": "internal/poly1305: Port sum_amd64.s to Avo\n\nThis implementation utilizes the same registers found in the reference\nimplementation, aiming to produce a minimal semantic diff between the\nAvo-generated output and the original hand-written assembly.\n\nTo verify the Avo implementation, the reference and Avo-generated\nassembly files are fed to `go tool asm`, capturing the debug output into\ncorresponding temp files. The debug output contains supplementary\nmetadata (line numbers, instruction offsets, and source file references)\nthat must be removed in order to obtain a semantic diff of the two\nfiles. This is accomplished via a small utility script written in awk.\n\nCommands used to verify Avo output:\n\nGOROOT\u003d$(go env GOROOT)\nASM_PATH\u003d\"internal/poly1305/sum_amd64.s\"\nREFERENCE\u003d\"b2d3a6a4b4d36521cd7f653879cf6981e7c5c340\"\n\ngo tool asm -o /dev/null -I \"$GOROOT\"/src/runtime -debug \\\n  \u003c(git cat-file -p \"$REFERENCE:$ASM_PATH\") \\\n  \u003e /tmp/reference.s\n\ngo tool asm -o /dev/null -I \"$GOROOT\"/src/runtime -debug \\\n  \"$ASM_PATH\" \\\n  \u003e /tmp/avo.s\n\nnormalize(){\n  awk \u0027{\n    $1\u003d$2\u003d$3\u003d\"\";\n    print substr($0,4)\n  }\u0027\n}\n\ndiff \u003c(normalize \u003c /tmp/reference.s) \u003c(normalize \u003c /tmp/avo.s)\n\nChange-Id: I80212c95d1b05335d7f6b73a3030b6f812f6105b\nReviewed-on: https://go-review.googlesource.com/c/crypto/+/600035\nReviewed-by: Roland Shoemaker \u003croland@golang.org\u003e\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47f2b758efc0b9733047e38d6bf8d11d83f36759",
      "new_mode": 33188,
      "new_path": "internal/poly1305/_asm/go.mod"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62ea9dfb709719d422a223fe4aa89c4d5796e4a9",
      "new_mode": 33188,
      "new_path": "internal/poly1305/_asm/go.sum"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a445c68f0197771d936ca475403d726144ccfc7a",
      "new_mode": 33188,
      "new_path": "internal/poly1305/_asm/sum_amd64_asm.go"
    },
    {
      "type": "modify",
      "old_id": "e0d3c64756692b68aa1179398fdbc03cde0113a2",
      "old_mode": 33188,
      "old_path": "internal/poly1305/sum_amd64.s",
      "new_id": "133757384b787ff854f2367112ecd1480ac5b1b6",
      "new_mode": 33188,
      "new_path": "internal/poly1305/sum_amd64.s"
    }
  ]
}
