--- src/greenlet/slp_platformselect.h	2023-01-28 22:19:23.000000000 +0800
+++ src/greenlet/slp_platformselect.h	2024-08-28 23:43:43.000000000 +0800
@@ -20,7 +20,7 @@
 #include "platform/switch_ppc64_linux.h" /* gcc on PowerPC 64-bit */
 #elif defined(__GNUC__) && defined(__PPC__) && (defined(__linux__) || defined(__FreeBSD__))
 #include "platform/switch_ppc_linux.h" /* gcc on PowerPC */
-#elif defined(__GNUC__) && defined(__ppc__) && defined(__APPLE__)
+#elif defined(__GNUC__) && defined(__POWERPC__) && defined(__APPLE__)
 #include "platform/switch_ppc_macosx.h" /* Apple MacOS X on PowerPC */
 #elif defined(__GNUC__) && defined(__powerpc64__) && defined(_AIX)
 #include "platform/switch_ppc64_aix.h" /* gcc on AIX/PowerPC 64-bit */

--- src/greenlet/platform/switch_ppc_macosx.h	2023-01-28 22:19:23.000000000 +0800
+++ src/greenlet/platform/switch_ppc_macosx.h	2024-08-28 23:42:43.000000000 +0800
@@ -49,7 +49,7 @@
     register int err;
     register int *stackref, stsizediff;
     __asm__ volatile ("" : : : REGS_TO_SAVE);
-    __asm__ ("; asm block 2\n\tmr %0, r1" : "=g" (stackref) : );
+    __asm__ ("; asm block 2\n\tmr %0, r1" : "=r" (stackref) : );
     {
         SLP_SAVE_STATE(stackref, stsizediff);
         __asm__ volatile (
@@ -58,7 +58,7 @@
             "\tadd r1, r1, r11\n"
             "\tadd r30, r30, r11\n"
             : /* no outputs */
-            : "g" (stsizediff)
+            : "r" (stsizediff)
             : "r11"
             );
         SLP_RESTORE_STATE();

--- src/greenlet/platform/switch_ppc_unix.h	2023-01-28 22:19:23.000000000 +0800
+++ src/greenlet/platform/switch_ppc_unix.h	2024-08-28 23:42:43.000000000 +0800
@@ -50,7 +50,7 @@
     register int err;
     register int *stackref, stsizediff;
     __asm__ volatile ("" : : : REGS_TO_SAVE);
-    __asm__ ("mr %0, 1" : "=g" (stackref) : );
+    __asm__ ("mr %0, 1" : "=r" (stackref) : );
     {
         SLP_SAVE_STATE(stackref, stsizediff);
         __asm__ volatile (
@@ -58,7 +58,7 @@
             "add 1, 1, 11\n"
             "add 30, 30, 11\n"
             : /* no outputs */
-            : "g" (stsizediff)
+            : "r" (stsizediff)
             : "11"
             );
         SLP_RESTORE_STATE();
