I'm still trying to work out exactly what it all means (x86 isn't my strong suit EDIT:) but Okay, I've now looked through the code and I thought I'd putthink I can see how each version works... and I believe the slower version is slower because it up here for others to look atuses fewer registers and more stack space. Of course underFor small values of .NET 4n that's possibly faster (or x64) it would all be different,- but hopefully this will give uswhen the loop takes up the bulk of the time, it's slower.
Possibly the try/catch block someforces informationmore registers to be saved and restored, so the JIT uses those for the loop as well... that's the best I can come up with at the moment.