Skip to content

Commit d824512

Browse files
authored
gh-112535: Update _Py_ThreadId() to support PowerPC (gh-112624)
1 parent 81ee026 commit d824512

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

Include/object.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,22 @@ _Py_ThreadId(void)
261261
__asm__ ("mrs %0, tpidrro_el0" : "=r" (tid));
262262
#elif defined(__aarch64__)
263263
__asm__ ("mrs %0, tpidr_el0" : "=r" (tid));
264+
#elif defined(__powerpc64__)
265+
#if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer)
266+
tid = (uintptr_t)__builtin_thread_pointer();
267+
#else
268+
register uintptr_t tp __asm__ ("r13");
269+
__asm__("" : "=r" (tp));
270+
tid = tp;
271+
#endif
272+
#elif defined(__powerpc__)
273+
#if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer)
274+
tid = (uintptr_t)__builtin_thread_pointer();
275+
#else
276+
register uintptr_t tp __asm__ ("r2");
277+
__asm__ ("" : "=r" (tp));
278+
tid = tp;
279+
#endif
264280
#else
265281
# error "define _Py_ThreadId for this platform"
266282
#endif

0 commit comments

Comments
 (0)