@@ -620,17 +620,17 @@ func init() {
620
620
// LDAXR (Rarg0), Rout
621
621
// STLXR Rarg1, (Rarg0), Rtmp
622
622
// CBNZ Rtmp, -2(PC)
623
- {name : "LoweredAtomicExchange64" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true },
624
- {name : "LoweredAtomicExchange32" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true },
623
+ {name : "LoweredAtomicExchange64" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
624
+ {name : "LoweredAtomicExchange32" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
625
625
626
626
// atomic add.
627
627
// *arg0 += arg1. arg2=mem. returns <new content of *arg0, memory>. auxint must be zero.
628
628
// LDAXR (Rarg0), Rout
629
629
// ADD Rarg1, Rout
630
630
// STLXR Rout, (Rarg0), Rtmp
631
631
// CBNZ Rtmp, -3(PC)
632
- {name : "LoweredAtomicAdd64" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true },
633
- {name : "LoweredAtomicAdd32" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true },
632
+ {name : "LoweredAtomicAdd64" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
633
+ {name : "LoweredAtomicAdd32" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
634
634
635
635
// atomic add variant.
636
636
// *arg0 += arg1. arg2=mem. returns <new content of *arg0, memory>. auxint must be zero.
@@ -653,17 +653,17 @@ func init() {
653
653
// STLXR Rarg2, (Rarg0), Rtmp
654
654
// CBNZ Rtmp, -4(PC)
655
655
// CSET EQ, Rout
656
- {name : "LoweredAtomicCas64" , argLength : 4 , reg : gpcas , resultNotInArgs : true , clobberFlags : true , faultOnNilArg0 : true , hasSideEffects : true },
657
- {name : "LoweredAtomicCas32" , argLength : 4 , reg : gpcas , resultNotInArgs : true , clobberFlags : true , faultOnNilArg0 : true , hasSideEffects : true },
656
+ {name : "LoweredAtomicCas64" , argLength : 4 , reg : gpcas , resultNotInArgs : true , clobberFlags : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
657
+ {name : "LoweredAtomicCas32" , argLength : 4 , reg : gpcas , resultNotInArgs : true , clobberFlags : true , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
658
658
659
659
// atomic and/or.
660
660
// *arg0 &= (|=) arg1. arg2=mem. returns <new content of *arg0, memory>. auxint must be zero.
661
661
// LDAXRB (Rarg0), Rout
662
662
// AND/OR Rarg1, Rout
663
663
// STLXRB Rout, (Rarg0), Rtmp
664
664
// CBNZ Rtmp, -3(PC)
665
- {name : "LoweredAtomicAnd8" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , asm : "AND" , typ : "(UInt8,Mem)" , faultOnNilArg0 : true , hasSideEffects : true },
666
- {name : "LoweredAtomicOr8" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , asm : "ORR" , typ : "(UInt8,Mem)" , faultOnNilArg0 : true , hasSideEffects : true },
665
+ {name : "LoweredAtomicAnd8" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , asm : "AND" , typ : "(UInt8,Mem)" , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
666
+ {name : "LoweredAtomicOr8" , argLength : 3 , reg : gpxchg , resultNotInArgs : true , asm : "ORR" , typ : "(UInt8,Mem)" , faultOnNilArg0 : true , hasSideEffects : true , unsafePoint : true },
667
667
668
668
// LoweredWB invokes runtime.gcWriteBarrier. arg0=destptr, arg1=srcptr, arg2=mem, aux=runtime.gcWriteBarrier
669
669
// It saves all GP registers if necessary,
0 commit comments