c code:
a^=b^=a^=b;
as
compiled by
gcc:
movl -4(%ebp),%eax
xorl -8(%ebp),%eax
movl %eax,%edx
movl %edx,-4(%ebp)
movl %edx,%eax
xorl -8(%ebp),%eax
movl %eax,%edx
movl %edx,-8(%ebp)
xorl %edx,-4(%ebp)
alternatively:
register int c;
c=a; a=b; b=c;
as compiled by gcc:
movl -4(%ebp),%eax
movl -8(%ebp),%edx
movl %edx,-4(%ebp)
movl %eax,-8(%ebp)
sorry.