1. A method of simulating a processor system by running system code that simulates the system on a host processor, in which the system code has two or more execution privilege levels or modes and is translated at run time to a form required by the host processor; comprising the steps of: (i) selecting a specific code dictionary from a set of two or more different code dictionaries, each execution privilege level or mode being associated with a different code dictionary; (ii) mapping all instructions to a native instruction set of the host processor using the code dictionary selected from the set of two or more different code dictionaries, in which, in a first mode, all instructions that are outside a SPECULATE/COMMIT region are mapped to a native instruction set of the host using the first code dictionary; and in which, in a second mode, all instructions within a SPECULATE/COMMIT region are mapped to the native instruction set of the host using a second code dictionary.