Use movl+xchgl instead of pushl+popl.