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