aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2011-09-21 18:13:16 +0000
committerBlue Swirl <blauwirbel@gmail.com>2011-10-01 09:31:43 +0000
commit3917149d96cfa5f619de770af6059f37b6e1df77 (patch)
tree5ab453462b2547211575129d051bd14ddc422396
parentbccd9ec5f098668576342c83d90d6d6833d61d33 (diff)
Move GETPC from dyngen-exec.h to exec-all.h
GETPC() can be used even from outside of helper code. Move the macro to a more accessible location. Avoid a compile warning from redefining it in exec.c. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r--dyngen-exec.h12
-rw-r--r--exec-all.h12
-rw-r--r--exec.c1
3 files changed, 13 insertions, 12 deletions
diff --git a/dyngen-exec.h b/dyngen-exec.h
index 8beb7f3344..fbde29ea01 100644
--- a/dyngen-exec.h
+++ b/dyngen-exec.h
@@ -57,16 +57,4 @@
register CPUState *env asm(AREG0);
-/* The return address may point to the start of the next instruction.
- Subtracting one gets us the call instruction itself. */
-#if defined(__s390__) && !defined(__s390x__)
-# define GETPC() ((void*)(((unsigned long)__builtin_return_address(0) & 0x7fffffffUL) - 1))
-#elif defined(__arm__)
-/* Thumb return addresses have the low bit set, so we need to subtract two.
- This is still safe in ARM mode because instructions are 4 bytes. */
-# define GETPC() ((void *)((unsigned long)__builtin_return_address(0) - 2))
-#else
-# define GETPC() ((void *)((unsigned long)__builtin_return_address(0) - 1))
-#endif
-
#endif /* !defined(__DYNGEN_EXEC_H__) */
diff --git a/exec-all.h b/exec-all.h
index b1dfe109d2..1120f84661 100644
--- a/exec-all.h
+++ b/exec-all.h
@@ -267,6 +267,18 @@ extern spinlock_t tb_lock;
extern int tb_invalidated_flag;
+/* The return address may point to the start of the next instruction.
+ Subtracting one gets us the call instruction itself. */
+#if defined(__s390__) && !defined(__s390x__)
+# define GETPC() ((void*)(((unsigned long)__builtin_return_address(0) & 0x7fffffffUL) - 1))
+#elif defined(__arm__)
+/* Thumb return addresses have the low bit set, so we need to subtract two.
+ This is still safe in ARM mode because instructions are 4 bytes. */
+# define GETPC() ((void *)((unsigned long)__builtin_return_address(0) - 2))
+#else
+# define GETPC() ((void *)((unsigned long)__builtin_return_address(0) - 1))
+#endif
+
#if !defined(CONFIG_USER_ONLY)
extern CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4];
diff --git a/exec.c b/exec.c
index 1e6f732d1d..d0cbf15822 100644
--- a/exec.c
+++ b/exec.c
@@ -4763,6 +4763,7 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
}
#define MMUSUFFIX _cmmu
+#undef GETPC
#define GETPC() NULL
#define env cpu_single_env
#define SOFTMMU_CODE_ACCESS