diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2013-09-05 10:22:09 +0200 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2013-09-25 07:45:39 -0700 |
commit | 619f90ba62e27c674b1a9af8c0ae68eef8d64a92 (patch) | |
tree | 4e9aa4d72353c96caf07ac9c8c62821e7f9f0b12 /include/exec | |
parent | 6a115579883e6c0e56394bf7aaabd04260e11233 (diff) |
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>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/exec-all.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 77242e2d81..dc27f33152 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -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) |