Sorry, the posted patch is broken (that's what I get for doing last-minute changes). Please use the appended version instead, I did a successful build test on mips/unstable, and also ran the tests provided in py/c-extension/greenlet/test_*.
Thiemo --- /dev/null 2007-11-13 00:21:20.000000000 +0000 +++ py/c-extension/greenlet/switch_mips_unix.h 2008-01-07 16:53:55.000000000 +0000 @@ -0,0 +1,56 @@ +/* + * this is the internal transfer function. + * + * HISTORY + * 05-Jan-08 Thiemo Seufer <[EMAIL PROTECTED]> + * Ported from ppc. + */ + +#define STACK_REFPLUS 1 + +#ifdef SLP_EVAL + +#define STACK_MAGIC 0 + +#ifdef __mips64 +#define REGS_TO_SAVE "$16", "$17", "$18", "$19", "$20", "$21", "$22", \ + "$23", "$28", "$30" +#else +#define REGS_TO_SAVE "$16", "$17", "$18", "$19", "$20", "$21", "$22", \ + "$23", "$30" +#endif +static int +slp_switch(void) +{ + register int *stackref, stsizediff; + __asm__ __volatile__ ("" : : : REGS_TO_SAVE); + __asm__ ("move %0, $29" : "=r" (stackref) : ); + { + SLP_SAVE_STATE(stackref, stsizediff); + __asm__ __volatile__ ( +#ifdef __mips64 + "daddu $29, %0\n" +#else + "addu $29, %0\n" +#endif + : /* no outputs */ + : "r" (stsizediff) + ); + SLP_RESTORE_STATE(); + } + __asm__ __volatile__ ("" : : : REGS_TO_SAVE); + return 0; +} + +#endif + +/* + * further self-processing support + */ + +/* + * if you want to add self-inspection tools, place them + * here. See the x86_msvc for the necessary defines. + * These features are highly experimental und not + * essential yet. + */ --- py/c-extension/greenlet/slp_platformselect.h~ 2005-04-24 13:18:44.000000000 +0100 +++ py/c-extension/greenlet/slp_platformselect.h 2008-01-06 02:29:49.000000000 +0000 @@ -18,4 +18,6 @@ #include "switch_s390_unix.h" /* Linux/S390 */ #elif defined(__GNUC__) && defined(__s390x__) && defined(__linux__) #include "switch_s390_unix.h" /* Linux/S390 zSeries (identical) */ +#elif defined(__GNUC__) && defined(__mips__) && defined(__linux__) +#include "switch_mips_unix.h" /* Linux/MIPS */ #endif -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]