While I agree with you that hardware overflow traps are a bad idea, I think the article's author is referring more to the general overhead of a software BIGNUM implementation. Specifically with his JavaScript example, I think it's very plausible that using integers instead of IEEE754 would incur a 10% overhead if you were throwing lots of big enough numbers around.
What the author really wants is a hardware BIGNUM implementation, not overflow trapping. I just don't think he really thought it through.
His contention that simply checking for overflow in C or C++ incurs a 5% overhead is unquestionably false though. Typically one would check for integer overflow in C like this:
unsigned int do_addition(unsigned int a, unsigned int b)
{
unsigned int tmp;
tmp = a;
a += b;
if (a < tmp)
asm volatile ("nop;" ::); /* Handle it here */
return a;
}
Any decent compiler will do the right thing (GCC with -Os): 0000000000000000 <do_addition>:
0: 89 f0 mov %esi,%eax
2: 01 f8 add %edi,%eax
4: 73 01 jae 7 <do_addition+0x7>
6: 90 nop
7: c3 retq
I think rwallace is absolutely right in saying the overhead of such a check would be very close to zero in the non-overflow case.