]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: actually intrinsify runtime/internal/atomic.{And,Or}{8,} on RISCV64
authorJoel Sing <joel@sing.id.au>
Tue, 16 Mar 2021 14:39:11 +0000 (01:39 +1100)
committerJoel Sing <joel@sing.id.au>
Thu, 18 Mar 2021 03:52:02 +0000 (03:52 +0000)
Actually enable intrinsics for runtime/internal/atomic.{And,Or}{8,} on RISCV64.
This seems to have been lost when CL 268098 was rebased.

Change-Id: If072daa79c8964b186c127d5e065a7cc9e23ba27
Reviewed-on: https://go-review.googlesource.com/c/go/+/302229
Trust: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ssagen/ssa.go

index 45e39478fa2d586c68e724c1df38e4343c3453f4..293062b8ecdc9242e95e0962d6b22d4d46f59d50 100644 (file)
@@ -4019,25 +4019,25 @@ func InitTables() {
                        s.vars[memVar] = s.newValue3(ssa.OpAtomicAnd8, types.TypeMem, args[0], args[1], s.mem())
                        return nil
                },
-               sys.AMD64, sys.MIPS, sys.PPC64, sys.S390X)
+               sys.AMD64, sys.MIPS, sys.PPC64, sys.RISCV64, sys.S390X)
        addF("runtime/internal/atomic", "And",
                func(s *state, n *ir.CallExpr, args []*ssa.Value) *ssa.Value {
                        s.vars[memVar] = s.newValue3(ssa.OpAtomicAnd32, types.TypeMem, args[0], args[1], s.mem())
                        return nil
                },
-               sys.AMD64, sys.MIPS, sys.PPC64, sys.S390X)
+               sys.AMD64, sys.MIPS, sys.PPC64, sys.RISCV64, sys.S390X)
        addF("runtime/internal/atomic", "Or8",
                func(s *state, n *ir.CallExpr, args []*ssa.Value) *ssa.Value {
                        s.vars[memVar] = s.newValue3(ssa.OpAtomicOr8, types.TypeMem, args[0], args[1], s.mem())
                        return nil
                },
-               sys.AMD64, sys.ARM64, sys.MIPS, sys.PPC64, sys.S390X)
+               sys.AMD64, sys.ARM64, sys.MIPS, sys.PPC64, sys.RISCV64, sys.S390X)
        addF("runtime/internal/atomic", "Or",
                func(s *state, n *ir.CallExpr, args []*ssa.Value) *ssa.Value {
                        s.vars[memVar] = s.newValue3(ssa.OpAtomicOr32, types.TypeMem, args[0], args[1], s.mem())
                        return nil
                },
-               sys.AMD64, sys.MIPS, sys.PPC64, sys.S390X)
+               sys.AMD64, sys.MIPS, sys.PPC64, sys.RISCV64, sys.S390X)
 
        atomicAndOrEmitterARM64 := func(s *state, n *ir.CallExpr, args []*ssa.Value, op ssa.Op, typ types.Kind) {
                s.vars[memVar] = s.newValue3(op, types.TypeMem, args[0], args[1], s.mem())