Use Go 1.19's new atomic types to fix alignment issues on Raspberry Pi
As described in https://go101.org/article/concurrent-atomic-operation.html#overview-1.19:
Go 1.19 introduced a more elegant way to guarantee 8-byte alignments for some values. Go 1.19 added several atomic types in the sync/atomic standard package. The types include atomic.Int64 and atomic.Uint64, which values are guaranteed to be 8-byte aligned, even on 32-bit architectures. We may make use of this fact to make some 64-bit words always 8-byte aligned on 32-bit architectures. For example, in the following code, the x field of any value of the type T is always 8-byte aligned, in any situations, either on 64-bit or 32-bit architectures.
We currently have to deal with 64-bit alignment issues: #4701 (closed)