mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
tcg-ppc: use new return-argument ld/st helpers
These use a 32-bit load-of-immediate to save a mflr+addi+mtlr sequence. Tested with a Windows 98 guest (pretty much the most recent thing I could run on my PPC machine) and kvm-unit-tests's sieve.flat. The speed up for sieve.flat is as high as 10% for qemu-system-i386, 25% (no kidding) for qemu-system-x86_64 on my PowerBook G4. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
6a11557988
commit
619f90ba62
2 changed files with 21 additions and 24 deletions
|
@ -324,9 +324,7 @@ extern uintptr_t tci_tb_ptr;
|
|||
In some implementations, we pass the "logical" return address manually;
|
||||
in others, we must infer the logical return from the true return. */
|
||||
#if defined(CONFIG_QEMU_LDST_OPTIMIZATION) && defined(CONFIG_SOFTMMU)
|
||||
# if defined (_ARCH_PPC) && !defined (_ARCH_PPC64)
|
||||
# define GETRA_LDST(RA) (*(int32_t *)((RA) - 4))
|
||||
# elif defined(__arm__)
|
||||
# if defined(__arm__)
|
||||
/* We define two insns between the return address and the branch back to
|
||||
straight-line. Find and decode that branch insn. */
|
||||
# define GETRA_LDST(RA) tcg_getra_ldst(RA)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue