runtime: split up ticks to get correct alignment

On 32-bit x86 a uint64 variable by itself is aligned to an 8-byte boundary.
A uint64 field in a struct is aligned to a 4-byte boundary.
The runtime.ticks variable has a uint64 field that must be aligned
to an 8-byte boundary.  Rather than rely on luck, split up the struct
into separate vars so that the required alignment happens reliably.

It would be much nicer if issue golang/go#19057 were fixed somehow,
but that is for another day.

Change-Id: If609ed165fb9cb1ea89fd351268c9984aa5df20d
Reviewed-by: Than McIntosh <>
1 file changed