mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: provide Add/Cas/Exchange atomic intrinsics on riscv64
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>
This commit is contained in:
parent
9f343b1942
commit
efb0ac4ce6
6 changed files with 273 additions and 10 deletions
|
|
@ -47,6 +47,24 @@ func rewriteValueRISCV64(v *Value) bool {
|
|||
case OpAndB:
|
||||
v.Op = OpRISCV64AND
|
||||
return true
|
||||
case OpAtomicAdd32:
|
||||
v.Op = OpRISCV64LoweredAtomicAdd32
|
||||
return true
|
||||
case OpAtomicAdd64:
|
||||
v.Op = OpRISCV64LoweredAtomicAdd64
|
||||
return true
|
||||
case OpAtomicCompareAndSwap32:
|
||||
v.Op = OpRISCV64LoweredAtomicCas32
|
||||
return true
|
||||
case OpAtomicCompareAndSwap64:
|
||||
v.Op = OpRISCV64LoweredAtomicCas64
|
||||
return true
|
||||
case OpAtomicExchange32:
|
||||
v.Op = OpRISCV64LoweredAtomicExchange32
|
||||
return true
|
||||
case OpAtomicExchange64:
|
||||
v.Op = OpRISCV64LoweredAtomicExchange64
|
||||
return true
|
||||
case OpAtomicLoad32:
|
||||
v.Op = OpRISCV64LoweredAtomicLoad32
|
||||
return true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue