moved CPU abstractions to platform code