mirror of https://github.com/xqemu/xqemu.git
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>
This commit is contained in:
parent
bccd9ec5f0
commit
3917149d96
|
@ -57,16 +57,4 @@
|
||||||
|
|
||||||
register CPUState *env asm(AREG0);
|
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__) */
|
#endif /* !defined(__DYNGEN_EXEC_H__) */
|
||||||
|
|
12
exec-all.h
12
exec-all.h
|
@ -267,6 +267,18 @@ extern spinlock_t tb_lock;
|
||||||
|
|
||||||
extern int tb_invalidated_flag;
|
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)
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
|
|
||||||
extern CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4];
|
extern CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4];
|
||||||
|
|
1
exec.c
1
exec.c
|
@ -4763,6 +4763,7 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MMUSUFFIX _cmmu
|
#define MMUSUFFIX _cmmu
|
||||||
|
#undef GETPC
|
||||||
#define GETPC() NULL
|
#define GETPC() NULL
|
||||||
#define env cpu_single_env
|
#define env cpu_single_env
|
||||||
#define SOFTMMU_CODE_ACCESS
|
#define SOFTMMU_CODE_ACCESS
|
||||||
|
|
Loading…
Reference in New Issue