aboutsummaryrefslogtreecommitdiff
path: root/exec-all.h
diff options
context:
space:
mode:
authormalc <av1474@comtv.ru>2012-11-03 19:38:32 +0400
committermalc <av1474@comtv.ru>2012-11-03 20:17:54 +0400
commited224a56b3b3234d99832a063ee3aaee3613d115 (patch)
treef7ea0603694de0924be3bea9a85306401602c0d1 /exec-all.h
parentb51d7b2e10564aedc83513d3961a69f22509eaa9 (diff)
tcg/ppc: ld/st optimization
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'exec-all.h')
-rw-r--r--exec-all.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/exec-all.h b/exec-all.h
index 898fe2d862..94ed613e37 100644
--- a/exec-all.h
+++ b/exec-all.h
@@ -335,6 +335,9 @@ extern uintptr_t tci_tb_ptr;
# define GETRA() ((uintptr_t)__builtin_return_address(0))
# define GETPC_LDST() ((uintptr_t)(GETRA() + 7 + \
*(int32_t *)((void *)GETRA() + 3) - 1))
+# elif defined (_ARCH_PPC) && !defined (_ARCH_PPC64)
+# define GETRA() ((uintptr_t)__builtin_return_address(0))
+# define GETPC_LDST() ((uintptr_t) ((*(int32_t *)(GETRA() + 4)) - 1))
# else
# error "CONFIG_QEMU_LDST_OPTIMIZATION needs GETPC_LDST() implementation!"
# endif