Yes, just seen there is a post about it on the Mess board as well (64-bit MSVC that is).
Searching for setjmp performance, it appears to be undefined by POSIX exactly what it will do - it may or may not save the signal context (ie. SYSV doesn't, BSD 4.3 does).
Which explains why it acts like a dog on Mac (and other BSDs) - it's saving the signal context.
There is _setjmp() that doesn't save the context, although it's probably equivalent and better to use sigsetjmp(buf, 0) - I'm just about to test (once the compile finishes!!).
Don't know if that will do anything for 64-bit MSVC, but you might want to give it a shot.
UPDATE: Yes, sigsetjmp(buf, 0) works fine on the Mac. No saving of signal contexts

. Obviously, need to update jmp_buf to sigjmp_buf and longjmp() to siglongjmp() to match.