xref: /qemu/include/accel/tcg/getpc.h (revision 7cef6d686309e2792186504ae17cf4f3eb57ef68)
1*b73f5849SRichard Henderson /*
2*b73f5849SRichard Henderson  * Get host pc for helper unwinding.
3*b73f5849SRichard Henderson  *
4*b73f5849SRichard Henderson  * Copyright (c) 2003 Fabrice Bellard
5*b73f5849SRichard Henderson  * SPDX-License-Identifier: LGPL-2.1-or-later
6*b73f5849SRichard Henderson  */
7*b73f5849SRichard Henderson 
8*b73f5849SRichard Henderson #ifndef ACCEL_TCG_GETPC_H
9*b73f5849SRichard Henderson #define ACCEL_TCG_GETPC_H
10*b73f5849SRichard Henderson 
11*b73f5849SRichard Henderson /* GETPC is the true target of the return instruction that we'll execute.  */
12*b73f5849SRichard Henderson #ifdef CONFIG_TCG_INTERPRETER
13*b73f5849SRichard Henderson extern __thread uintptr_t tci_tb_ptr;
14*b73f5849SRichard Henderson # define GETPC() tci_tb_ptr
15*b73f5849SRichard Henderson #else
16*b73f5849SRichard Henderson # define GETPC() \
17*b73f5849SRichard Henderson     ((uintptr_t)__builtin_extract_return_addr(__builtin_return_address(0)))
18*b73f5849SRichard Henderson #endif
19*b73f5849SRichard Henderson 
20*b73f5849SRichard Henderson #endif /* ACCEL_TCG_GETPC_H */
21