• Cherry Zhang's avatar
    runtime/internal/atomic: improve ARM atomics · 14f929af
    Cherry Zhang authored
    This is a follow-up of CL 93637. There, when we redirect sync/atomic
    to runtime/internal/atomic, a few good implementations of ARM atomics
    were lost. This CL brings most of them back, with some improvements.
    
    - Change atomic Store to a plain store with memory barrier, as we
      already changed atomic Load to plain load with memory barrier.
    
    - Use native 64-bit atomics on ARMv7, jump to Go implementations
      on older machines. But drop the kernel helper. In particular,
      for Load64, just do loads, not using Cas on the address being
      load from, so it works also for read-only memory (since we have
      already fixed 32-bit Load).
    
    Change-Id: I725cd65cf945ae5200db81a35be3f251c9f7af14
    Reviewed-on: https://go-review.googlesource.com/111315
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarAustin Clements <austin@google.com>
    14f929af
atomic_arm.go 3.9 KB