* Jon Smirl: > Is the callstack branch correctly predicted if the routine being > called is complex?
At least the AMD CPUs have implemented a special return stack cache, so the answer is probably "yes". > This does eliminate the test./jmp after every function call. Yes, but the test/jump now happens in the callee, and you need to maintain an additional stack slot. I wouldn't be surprised if the change isn't a win. Some form of exception handling for truly exceptional situations would probably be better (and might have helped to avoid quite a few of the last CVEs 8-).