A fine-grained memory protection system and technique provide computer
memory protection at least to a word granularity. A permissions table
having permission values associated with a computer memory is arranged as
protection domains. The permissions table can be cached in a protection
lookaside buffer (PLD) and/or in sidecar registers. A software calls
across protection domains (a cross-domain call) can be facilitated with a
switch gate and a return gate. In some embodiments, a gate table is
provided to store the switch gates and return gates, each having gate
values. In some embodiments, a stack permission stable allows stack
frames to be associated with the cross-domain call.