fix a wrong assumption in creg & sync system
`long int` is not of the same size on 32bit & 64bit x86!