Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: implement atomic intrinsics for riscv64 #36765

Closed
4a6f656c opened this issue Jan 25, 2020 · 9 comments
Closed

cmd/compile: implement atomic intrinsics for riscv64 #36765

4a6f656c opened this issue Jan 25, 2020 · 9 comments
Labels
arch-riscv Issues solely affecting the riscv64 architecture. FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@4a6f656c
Copy link
Contributor

Go on riscv64 does not currently support atomic intrinsics, rather all atomics are functions. This should be implemented.

@gopherbot
Copy link

Change https://golang.org/cl/216263 mentions this issue: test: adjust tests for riscv64

gopherbot pushed a commit that referenced this issue Jan 25, 2020
This disables some tests that are unsupported on riscv64 and adds support
for risc64 to test/nosplit.

Updates #27532, #36739 and #36765

Change-Id: I0a57797a05bc80236709fc240c0a0efb0ee0d16b
Reviewed-on: https://go-review.googlesource.com/c/go/+/216263
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@tklauser tklauser added the arch-riscv Issues solely affecting the riscv64 architecture. label Jan 27, 2020
@tklauser tklauser added this to the Backlog milestone Jan 27, 2020
@cagedmantis cagedmantis added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Feb 3, 2020
@cagedmantis
Copy link
Contributor

/cc @randall77 @griesemer

@gopherbot
Copy link

Change https://golang.org/cl/220540 mentions this issue: cmd/internal/obj/riscv: add LR/SC instructions

@gopherbot
Copy link

Change https://golang.org/cl/220541 mentions this issue: cmd/internal/obj/riscv: add atomic memory operation instructions

@gopherbot
Copy link

Change https://golang.org/cl/220539 mentions this issue: cmd/internal/obj/riscv: add FENCE instruction

gopherbot pushed a commit that referenced this issue Mar 15, 2020
Also remove #define's that were previously in use.

Updates #36765

Change-Id: I90b6a8629c78f549012f3f6c5f3b325336182712
Reviewed-on: https://go-review.googlesource.com/c/go/+/220539
Reviewed-by: Cherry Zhang <cherryyz@google.com>
gopherbot pushed a commit that referenced this issue Mar 15, 2020
Add support for Load-Reserved (LR) and Store-Conditional (SC) instructions.

Use instructions in place of currently used defines.

Updates #36765

Change-Id: I77e660639802293ece40cfde4865ac237e3308d6
Reviewed-on: https://go-review.googlesource.com/c/go/+/220540
Reviewed-by: Cherry Zhang <cherryyz@google.com>
gopherbot pushed a commit that referenced this issue Mar 15, 2020
Use instructions in place of currently used defines.

Updates #36765

Change-Id: I00bb59e77b1aace549d7857cc9721ba2cb4ac6ca
Reviewed-on: https://go-review.googlesource.com/c/go/+/220541
Reviewed-by: Cherry Zhang <cherryyz@google.com>
@gopherbot
Copy link

Change https://golang.org/cl/223557 mentions this issue: cmd/compile: provide Load8/Store8 atomic intrinsics on riscv64

@gopherbot
Copy link

Change https://golang.org/cl/223560 mentions this issue: test: re-enable atomic intrinsic related tests on riscv64

@gopherbot
Copy link

Change https://golang.org/cl/223558 mentions this issue: cmd/compile: provide Load32/Load64/Store32/Store64 atomic intrinsics on riscv64

@gopherbot
Copy link

Change https://golang.org/cl/223559 mentions this issue: cmd/compile: provide Add/Cas/Exchange atomic intrinsics on riscv64

gopherbot pushed a commit that referenced this issue Mar 17, 2020
Updates #36765

Change-Id: Ieeb6bbc54e4841a1348ad50e80342ec4bc675e07
Reviewed-on: https://go-review.googlesource.com/c/go/+/223557
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
gopherbot pushed a commit that referenced this issue Mar 24, 2020
…on riscv64

Updates #36765

Change-Id: Id5ce5c5f60112e4f4cf9eec1b1ec120994934950
Reviewed-on: https://go-review.googlesource.com/c/go/+/223558
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
gopherbot pushed a commit that referenced this issue Mar 25, 2020
Provide Add32, Add64, Cas32, Cas64, Exchange32 and Exchange64 atomic
intrinsics on riscv64.

Updates #36765

Change-Id: I9a3b7d2ce3d49f699171fd76a0fed891d149a6bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/223559
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
@golang golang locked and limited conversation to collaborators Mar 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-riscv Issues solely affecting the riscv64 architecture. FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

4 participants