use asm inserts instead of gcc intrinsics for older platforms