add primitive InterlockedOr64 implementation

use non msvc specific type for int64_t

add umul for gcc