Traps are expensive. They clear the cache and the TLB, slowing the process that did the trap after the trap returns. A translation-based approach can replace a trap by function call, which is much faster.