/* SPDX-License-Identifier: LGPL-2.1-only OR MIT */ | |
/* | |
* rseq-ppc-thread-pointer.h | |
* | |
* (C) Copyright 2021 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
*/ | |
#ifndef _RSEQ_PPC_THREAD_POINTER | |
#define _RSEQ_PPC_THREAD_POINTER | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
static inline void *rseq_thread_pointer(void) | |
{ | |
#ifdef __powerpc64__ | |
register void *__result asm ("r13"); | |
#else | |
register void *__result asm ("r2"); | |
#endif | |
asm ("" : "=r" (__result)); | |
return __result; | |
} | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif |