On 3/24/10, Richard Henderson <r...@twiddle.net> wrote: > On 03/24/2010 02:47 AM, Paolo Bonzini wrote: > > > 1) make CPUState define only common fields. Include CPUState at the > > beginning of each per-target CPUXYZState. > > > > Irritatingly, the common fields contain quite big TLBs. And the > offsets from the start of env affect the compactness of the code > generated from TCG. We really really want the general registers > to come first to make sure that those offsets fit the host's > reg+offset addressing mode.
One trick is to define a fixed offset (about half CPUState size) and make env point to CPUState + offset. Then the negative part of the offset space can be used efficiently. But this just doubles the space that can be accessed fast, so it's not a big win.