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

Reply via email to