/* SPDX-License-Identifier: LGPL-2.1-only OR MIT */ /* * rseq-ppc-thread-pointer.h * * (C) Copyright 2021 - Mathieu Desnoyers */ #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