Асмовая вставка - это зло, согласен. Но функция, написанная на ASM и вызываемая из Си-шного исходника, это вполне допустимо. Проблема возможна лишь в различающихся приемах/способах передачи/возврата аргументов при вызове функций, используемых в разных компиляторах.