BUG FIX: The asm declaration required the use of a gnu exension on c99, this
version does not.