)]}'
{
  "commit": "10d85fa0f6218704f7d9f3fccbab3952c064eddc",
  "tree": "ea1e91788bf0b28669eeb3b82c2c230cb2ca35b4",
  "parents": [
    "bd3a1f24e79d064f957d5b7cb5aaf93313a8069c"
  ],
  "author": {
    "name": "Meng Zhuo",
    "email": "mzh@golangcn.org",
    "time": "Tue Jul 11 14:53:54 2023 +0800"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Wed Jul 26 16:23:04 2023 +0000"
  },
  "message": "[release-branch.go1.20] cmd/asm, cmd/internal/obj: generate proper atomic ops for riscv64\n\nGo\u0027s memory model closely follows the approach C++ concurrency memory\nmodel (https://go.dev/ref/mem) and Go atomic \"has the same semantics as C++\u0027s\nsequentially consistent atomics\".\n\nMeanwhile according to RISCV manual A.6 \"Mappings from C/C++ primitives to RISC-V primitives\".\nC/C++ atomic operations (memory_order_acq_rel) should be map to \"amo\u003cop\u003e.{w|d}.aqrl\"\nLR/SC (memory_order_acq_rel) should map to \"lr.{w|d}.aq; \u003cop\u003e; sc.{w|d}.rl\"\n\ngoos: linux\ngoarch: riscv64\npkg: runtime/internal/atomic\n                │ atomic.old.bench │          atomic.new.bench           │\n                │      sec/op      │   sec/op     vs base                │\nAtomicLoad64-4         4.216n ± 1%   4.202n ± 0%        ~ (p\u003d0.127 n\u003d10)\nAtomicStore64-4        5.040n ± 0%   6.718n ± 0%  +33.30% (p\u003d0.000 n\u003d10)\nAtomicLoad-4           4.217n ± 0%   4.213n ± 0%        ~ (p\u003d0.145 n\u003d10)\nAtomicStore-4          5.040n ± 0%   6.718n ± 0%  +33.30% (p\u003d0.000 n\u003d10)\nAnd8-4                 9.237n ± 0%   9.240n ± 0%        ~ (p\u003d0.582 n\u003d10)\nAnd-4                  5.878n ± 0%   6.719n ± 0%  +14.31% (p\u003d0.000 n\u003d10)\nAnd8Parallel-4         28.44n ± 0%   28.46n ± 0%   +0.07% (p\u003d0.000 n\u003d10)\nAndParallel-4          28.40n ± 0%   28.43n ± 0%   +0.11% (p\u003d0.000 n\u003d10)\nOr8-4                  8.399n ± 0%   8.398n ± 0%        ~ (p\u003d0.357 n\u003d10)\nOr-4                   5.879n ± 0%   6.718n ± 0%  +14.27% (p\u003d0.000 n\u003d10)\nOr8Parallel-4          28.43n ± 0%   28.45n ± 0%   +0.09% (p\u003d0.000 n\u003d10)\nOrParallel-4           28.40n ± 0%   28.43n ± 0%   +0.11% (p\u003d0.000 n\u003d10)\nXadd-4                 30.05n ± 0%   30.10n ± 0%   +0.18% (p\u003d0.000 n\u003d10)\nXadd64-4               30.05n ± 0%   30.09n ± 0%   +0.12% (p\u003d0.000 n\u003d10)\nCas-4                  60.48n ± 0%   61.13n ± 0%   +1.08% (p\u003d0.000 n\u003d10)\nCas64-4                62.28n ± 0%   62.34n ± 0%        ~ (p\u003d0.810 n\u003d10)\nXchg-4                 30.05n ± 0%   30.09n ± 0%   +0.15% (p\u003d0.000 n\u003d10)\nXchg64-4               30.05n ± 0%   30.09n ± 0%   +0.13% (p\u003d0.000 n\u003d10)\ngeomean                15.42n        16.17n        +4.89%\n\nFixes #61471\n\nChange-Id: I97b5325db50467eeec36fb079bded7b09a32330f\nReviewed-on: https://go-review.googlesource.com/c/go/+/508715\nReviewed-by: Austin Clements \u003caustin@google.com\u003e\nReviewed-by: Joel Sing \u003cjoel@sing.id.au\u003e\nRun-TryBot: M Zhuo \u003cmzh@golangcn.org\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Bryan Mills \u003cbcmills@google.com\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\n(cherry picked from commit 890b96f7abd8ba5b2243959d9b49c212a0fc4d78)\nReviewed-on: https://go-review.googlesource.com/c/go/+/511515\nAuto-Submit: Matthew Dempsky \u003cmdempsky@google.com\u003e\nReviewed-by: Heschi Kreinick \u003cheschi@google.com\u003e\nReviewed-by: Matthew Dempsky \u003cmdempsky@google.com\u003e\nReviewed-by: M Zhuo \u003cmzh@golangcn.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79d60548695a12c08752169e670de0ae80e502fd",
      "old_mode": 33188,
      "old_path": "src/cmd/asm/internal/asm/testdata/riscv64.s",
      "new_id": "be1bffb771a57cf0eaa14a094c1770b4ec17cc86",
      "new_mode": 33188,
      "new_path": "src/cmd/asm/internal/asm/testdata/riscv64.s"
    },
    {
      "type": "modify",
      "old_id": "95cd3659e8624b6b5eec4117eaafaf30b76b0385",
      "old_mode": 33188,
      "old_path": "src/cmd/internal/obj/riscv/obj.go",
      "new_id": "da322a75b4a01c4901716714d3cb3d26f4a2d681",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/obj/riscv/obj.go"
    }
  ]
}
