1. A computing device that uses segmentation to safely execute native code, comprising: a processing element that executes the native code; and a memory configured to store code and data for the processing element; a segmentation mechanism within the processing element which limits the native code executing on the processing element to accessing a specified segment of memory; an instruction-processing unit within the processing element, wherein the instruction-processing unit is configured to execute a user-level instruction that causes the segmentation mechanism to limit memory accesses by the native code to the specified segment of the memory; a descriptor table in the memory that comprises memory segment descriptors that define one or more segments in the memory, wherein upon executing the user-level instruction, the instruction-processing unit accesses the descriptor table; and a secure runtime environment that enforces code integrity, control flow integrity, and data integrity for native code executing on the processing element, wherein the secure runtime environment is configured to limit the ability of native code to access the user-level segmentation mechanism and to use the user-level segmentation mechanism to enforce control flow and data integrity for the native code module.