On Tuesday, August 21, 2018 at 7:08:43 PM UTC-4, Carl Mastrangelo wrote:
>
>
> The reason I am interested in this is (and please don't judge too early)
> is I'm toying around with implementing some atomic primitives. In
> particular, I would like to play around with with the cmpxchg16b
> instruction which needs 16 byte alignment. Go does not provide a way to
> enforce a data structure has such alignment, so I am attempting to define a
> struct that I can index into. (assume 64bit words). For example, the
> datastructure I want is this:
>
> // alignment of foo is 16
> type foo struct {
> uintptr
> unsafe.Pointer
> }
>
>
Carl,
Here is a simple attempt to provide you with a pointer to a 16-byte aligned
Foo struct for your cmpxchg16b instruction experiments. See the NewFoo()
function. Fields, including hidden fields, are initialized to the zero
value for the type: zero for uintptr and nil for unsafe.Pointer.
Playground: https://play.golang.org/p/PSQS0iEHh7D
Peter
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.