logo       

Saving sparc registers before longjump (was: Re: Re: netbsd compilation fai: msg#00138

java.vm.kaffe.general

Subject: Saving sparc registers before longjump (was: Re: Re: netbsd compilation fails)

Ciao Riccardo,

Riccardo wrote:
In <3FBD0901.9050307@xxxxxxxxx> 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


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise