Saving sparc registers before longjump (was: Re: [kaffe] Re: netbsd compilation fails)
Dalibor Topic
robilad at kaffe.org
Sun Nov 23 11:14:02 PST 2003
Ciao Riccardo,
Riccardo wrote:
> In <3FBD0901.9050307 at kaffe.org> Dalibor Topic wrote:
>
>>Riccardo wrote:
>
>
>>>My compilation of CVS on NetBSD/sparc fails with the following:
>>>
>
> <cut>
>
>>that's m68k-netbsd, right?
>
>
> sometimes it's me, but sometimes it's you.... read the first line and
> compare it with your question ;)
>
> To be precise:
> netbsd 1.6.1, sparc 32 bit
Judging by the build log Riccardo sent me, there may be some problem
with the exception frame register being clobbered in jni call.
[snip]
../../../kaffe/kaffe/kaffevm/jni.c: In function `Kaffe_NewGlobalRef':
../../../kaffe/kaffe/kaffevm/jni.c:313: warning: variable `ef' might be
clobbered by `longjmp' or `vfork'
../../../kaffe/kaffe/kaffevm/jni.c: In function `Kaffe_DefineClass':
../../../kaffe/kaffe/kaffevm/jni.c:341: warning: variable `ef' might be
clobbered by `longjmp' or `vfork'
[snip ... as it goes on like this for any jni function]
ef is defined in config/sparc/jit.h:
register exceptionFrame* ef asm("%sp"); \
So I'm wondering if saving the register before the sepjump/longjump
magic would do the trick. The only problem is that I don't know how to
do it, as I haven't programmed GCC assembler yet (not sparc assembler in
particular). Could someone who's speaks sparc/gcc assembler jump in and
provide a patch or point me to relevant information on how to patch this?
cheers,
dalibor topic
More information about the kaffe
mailing list