This avoids the "bad register name `%dil'" compilation errors on 32bit where
because of 'r' gcc puts the value in a general purpose register and then tries
to access the lower part as %dil/%sil which is not existing on 32bit. 'q' requests
a-d registers