MIPS SF toolchain
David Daney
ddaney@avtrex.com
Thu Sep 8 15:29:00 GMT 2005
Matej Kupljen wrote:
> Hi
>
> I think I found the problem.
>
>
>>-------------------------------------------------------------
>>0002fe80 <__longjmp>:
>> 2fe80: c4940038 lwc1 $f20,56(a0)
>> 2fe84: c495003c lwc1 $f21,60(a0)
>
> ....
>
> This code is written in sysdeps/mips/setjmp_aux.c in
> inline assembly.
>
>
>>and
>>-------------------------------------------------------------
>>0002ff70 <__sigsetjmp_aux>:
>> 2ff70: 3c1c0017 lui gp,0x17
>> 2ff74: 279cce40 addiu gp,gp,-12736
>
>
> This code is written in sysdeps/mips/__longjmp.c in
> inline assembly.
>
>
>>How to solve this?
>
>
> Because I am using sf, there is no need to store those
> registers, or is it?
> Can I just #ifdef this code if compiled for sf?
>
I do have some patches for glibc to get rid of these in a soft float
build. However as Ralf Baechle said in the other message, the kernel FP
emulator works and is not that large of an overhead.
The reason I did the glibc patch was that some IDT processor/linux
kernel combination I was using was broken WRT the FP emulator. I
suppose if you had a lot of code doing setjump (like C++ code with
exeception handling that uses setjump/longjump as would be obtained with
uClibc) than this would be bad. But since you are using glibc, the
tools will be using DWARF exception handling and it is not really an issue.
David Daney.
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list