aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-09-05 10:22:09 +0200
committerRichard Henderson <rth@twiddle.net>2013-09-25 07:45:39 -0700
commit619f90ba62e27c674b1a9af8c0ae68eef8d64a92 (patch)
tree4e9aa4d72353c96caf07ac9c8c62821e7f9f0b12 /include
parent6a115579883e6c0e56394bf7aaabd04260e11233 (diff)
downloadqemu-619f90ba62e27c674b1a9af8c0ae68eef8d64a92.zip
qemu-619f90ba62e27c674b1a9af8c0ae68eef8d64a92.tar.gz
qemu-619f90ba62e27c674b1a9af8c0ae68eef8d64a92.tar.bz2
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')
-rw-r--r--include/exec/exec-all.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 77242e2..dc27f33 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)