1. A method for performing distributed multi-stage page-table lookups in a shared-memory multiprocessor system with two or more processors, the method comprising: receiving, at a first processor, a request for a page-table entry, wherein the request is associated with a multi-stage address translation operation that was initiated by a requesting processor that is distinct from the first processor, wherein the multi-stage address translation operation comprises multiple sequentially dependent memory accesses for multiple page-table entries that include the page-table entry, wherein the request includes a physical address for the page-table entry, and wherein the first processor includes a directory controller that manages a portion of the address space of the shared-memory multiprocessor system that includes the physical address; accessing the directory controller to retrieve the page-table entry; using the page-table entry to calculate at the first processor a subsequent physical address for a subsequent page-table entry for the next stage of the multi-stage address translation operation; determining a home processor that manages the subsequent physical address; sending a subsequent request for the subsequent page-table entry to the home processor; and sending a response from the home processor to the requesting processor, wherein the response comprises the subsequent physical address and a final address translation for the multi-stage address translation operation.