On Mar 26, 2004, at 10:09, Brian Tabone wrote: I was reading up on the PowerPC 7455, and happened upon an interesting document (http://e-www.motorola.com/files/if/cnb/ALTIVECTCPIPWP.pdf) on Motorola's website. This document covered the advantages of doing TCP checksum calculations in the Altivec SIMD unit versus doing it in the scalar integer units. Digging around in the xnu source, I found the checksum assembly code for Darwin (in bsd/dev/ppc/xsumas.s) and found that it was doing the checksum calculations in the integer units. My question is , beyond having to support the G3, is there any reason why the Darwin kernel does the checksum calculations in scalar code versus doing it in vector code? Is there reason to avoid Altivec instructions in the kernel? We looked at this when the G4 first showed up. As I recall, the consensus among those involved was that the setup time, together with alignment requirements, coupled with the problems associated with dealing with Altivec in the kernel, made this a non-starter. I suppose it's always worth revisiting, but for Altivec to be valuable, you have to have a fair amount of data, properly set up, to use this. Given the normal size of TCP data, this is a stretch. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | "Weaseling out of things is what | separates us from the animals. | Well, except the weasel." | - Homer J Simpson *--------------------------------------*-------------------------------* _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.