setjmp/longjmp

Doug Gwyn <gwyn> gwyn at brl-tgr.ARPA
Fri Nov 9 22:47:11 AEST 1984


> Ummm... it's easy to push the register mask when you moveml the registers
> to be saved on entry to a subroutine in the 68000, but moveml mask,(a7)-
> and moveml mask,(a7)+ expect the mask reversed from each other!  How
> do you propose to invert a 16-bit mask end-for-end (i.e. 11100...001
> <=> 100...00111 ) and still have a fast calling sequence?

Just great -- more computer architecture brain damage!

The only way I can see that makes sense to try is to record the NUMBER
of registers saved (equivalently, the last register number) and use a
quick scheme to generate the appropriate mask upon cret.  (I am not
very familiar with the 68000 and so I do not know if it has any fast
way to set up such a mask; one way that would work is to index a mask
table.)

In any case, I have given up on setjmp/longjmp.  I never had any use
for them anyway.  What a lossage.



More information about the Comp.lang.c mailing list