Hm... On a lark, I increased the number of registers that are saved on the stack swap...
Index: Stackless/platf/switch_amd64_unix.h =================================================================== --- Stackless/platf/switch_amd64_unix.h (revision 83119) +++ Stackless/platf/switch_amd64_unix.h (working copy) @@ -29,9 +29,8 @@ /* the above works fine with gcc 2.96, but 2.95.3 wants this */ #define STACK_MAGIC 0 -#define REGS_TO_SAVE "rdx", "rbx", "r12", "r13", "r14", "r15" +#define REGS_TO_SAVE "rdx", "rbx", "r12", "r13", "r14", "r15", "r9", "r8", "rdi", "rsi", "rcx", "rbp" Now a 64-bit stackless 2.7 (on OS-X 10.6 at least) passes the stackless tests rather than crashing! I didn't actually study the amd64 ABI very much -- so I can't say this is the optimal solution or does not involve some sort of subtle error somewhere... I would suppose, though, that "not crashing" is a significant incremental improvement... should we commit this? On Jul 6, 2010, at 4:39 AM, Aleksandar Radulovic wrote: > Hi, > > On Tue, Jul 6, 2010 at 12:58 AM, Jeff Senn <[email protected]> wrote: >> I notice whoever built 2.6.5 stackless for OS-X (not me I think) did not >> include a 64-bit variant in the universal binary... >> I'm just wondering whether amd64 is supposed to work.. (I just went back and >> the release26-maint branch also has problems with 64 bit on OS-X -- so at >> least it's not a merely 2.7 issue...) > > As far as I remember, it didn't want even to consider building itself > on OSX with 64bits enabled. This has been a problem for a long while, > so it's not a 2.7 issue (it's more like a 2.x issue). > > -- > a lex 13 x > http://www.a13x.info > > _______________________________________________ > Stackless mailing list > [email protected] > http://www.stackless.com/mailman/listinfo/stackless > _______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
