mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 06:43:53 -06:00
Gprof prooved the PowerPC emulation spent too much time in MSR load and store
routines. Coming back to a raw MSR storage model then speed-up the emulation. Improve fast MSR updates (wrtee wrteei and mtriee cases). Share rfi family instructions helpers code to avoid bug in duplicated code. Allow entering halt mode as the result of a rfi instruction. Add a new helper_regs.h file to avoid duplication of special registers manipulation routines (currently XER and MSR). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3436 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
7ac256b872
commit
0411a97258
11 changed files with 408 additions and 472 deletions
|
@ -2168,14 +2168,13 @@ int main(int argc, char **argv)
|
|||
}
|
||||
cpu_ppc_register(env, def);
|
||||
cpu_ppc_reset(env);
|
||||
for (i = 0; i < 32; i++) {
|
||||
if (i != 12 && i != 6 && i != 13)
|
||||
env->msr[i] = (regs->msr >> i) & 1;
|
||||
}
|
||||
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
|
||||
msr_sf = 1;
|
||||
env->msr = regs->msr & ~((1 << 6) | (1 << 12) | (1 << 13));
|
||||
#if defined(TARGET_PPC64)
|
||||
#if defined(TARGET_ABI32)
|
||||
env->msr &= ~((target_ulong)1 << MSR_SF);
|
||||
#else
|
||||
msr_sf = 0;
|
||||
env->msr |= (target_ulong)1 << MSR_SF;
|
||||
#endif
|
||||
#endif
|
||||
env->nip = regs->nip;
|
||||
for(i = 0; i < 32; i++) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue