[Stackless] New 3 platforms for Stackless Python

Christian Tismer tismer at tismer.com
Tue Mar 5 20:24:35 CET 2002


Hye-Shik Chang wrote:

[see the bus error reported by Just]

I just read about the typical registers used for
calls. Can it be that we have to save registers r14-r31?
Is there a cheap way to push/pop them all?

If so, the code would probably look like this:

+slp_switch(void)
+{
+ 
register int *stackref, stsizediff;
---> add asm code here that saves registers to the stack
+ 
__asm__ ("mr %0, r1" : "=g" (stackref) : );
+ 
SLP_SAVE_STATE(stackref, stsizediff);
+ 
__asm__ ("
+ 
	mr r11, %0
+ 
	add r1, r1, r11
+ 
	add r30, r30, r11"
+ 
	: /* no outputs */
+ 
	: "g" (stsizediff)
+ 
	: "r11"
+ 
	);
+ 
SLP_RESTORE_STATE();
---> add asm code here that restores registers from the stack
+}

Hope this works - ciao - chris

-- 
Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Kaunstr. 26                  :    *Starship* http://starship.python.net/
14163 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
      where do you want to jump today?   http://www.stackless.com/


_______________________________________________
Stackless mailing list
Stackless at www.tismer.com
http://www.tismer.com/mailman/listinfo/stackless



More information about the Stackless mailing list