cottrell@nbs-vms.ARPA (02/05/85)
/* > > > How often have you written: > > > > > > { register type t; > > > > > > t = a; > > > a = b; > > > b = t; > > > } > > Rarely. I use: `a ^= b; b ^= a; a ^= b;' Only worx for integer types. > > Also takez more cycles on most machines. > > An example: on the 68000, case 1 is > > move.l a,t # 32-bit ints > move.l b,a > move.l t,a > > case 2 is > > move.l b,d0 > eor.l d0,a > move.l a,d0 > eor.l d0,b > move.l b,d0 > eor.l d0,a > > Cute, but not worth it. > > Guy Harris > {seismo,ihnp4,allegra}!rlgvax!guy If a & b are in registers it only takes 3 eor's. I don't know if eor is slower than move. If all regs are being used, the var `t' may have to be a memory location. Why did Motorola choose `eor' instead of `xor'? Are they Winnie the Pooh freaks :-? */