On Mon, Jun 1, 2015 at 12:03 PM, Richard Henderson <r...@twiddle.net> wrote: > On 05/30/2015 11:11 PM, Peter Crosthwaite wrote: >> Remove un-needed usages of CPU_GET_ENV by converting the APIs to use >> CPUState pointers and retrieving the env_ptr as minimally needed. >> >> FIXME: apply target-foo change pattern to all archs. > > Yes, please. >
Fixed. >> #ifdef TARGET_I386 >> X86CPU *x86_cpu = X86_CPU(cpu); >> + CPUArchState *env = (CPUArchState *)cpu->env_ptr; >> #endif > > CPUArchState *env = &x86_cpu.env; > Fixed. >> #ifdef TARGET_I386 >> + env = cpu->env_ptr; >> x86_cpu = X86_CPU(cpu); >> #endif > > Likewise. > And fixed. > Or, indeed, it might be worth propagating away "env" entirely, so you don't > have to reload it here at the end of the setjmp. > I'm leaving this as follow-up for the moment as it is a bit of a change to target-i386 code. cpu_svm_check_intercept_param() needs to be de-envified but it has a fair few internal uses in target-x86. I'm thinking it should take a CPU * (not an X86CPU) due to its call from common code. This means we should be able to stubbify the function and remove the TARGET_I386 ifeffery entirely one day. The drawback is adding QOM casts in target-i386. Is this thing ever a fast path? Will other arches want to use this hook one day as well? Regards, Peter > Otherwise this starter patch looks good. > > > r~ > >