Replace bcopy() to update ether_addr

Wojciech Puchar wojtek at wojtek.tensor.gdynia.pl
Mon Aug 20 16:49:31 UTC 2012


> #if defined(__i386__) || defined(__amd64__)
>    *dst = *src;
> #else
>    bcopy(src, dst, ETHER_ADDR_LEN);
#else
short *tmp1=((*short)src),*tmp2=((*short)dst);
*tmp2=*tmp1; *(tmp2+1)=*(tmp1+1); *(tmp2+2)=*(tmp1+2);

or use ++.

i think it is always aligned to 2 bytes and this should produce usable 
code on any CPU? should be 6 instructions on MIPS and PPC IMHO.


More information about the freebsd-hackers mailing list