On 01/07/2013 02:52 PM, Richard Sandiford wrote:

I disabled 64 bit FPU instructions by "-msoft-float". This works, but
using "-msingle-float" fails. This would be the better
configuration. There are still 64 bit FPU instructions used (e.g. "dmfc1
$2,$f0" when using "long double" multiplication). So "-msingle-float"
doesn't seem to work on generic mips64-linux-gnu.

Right.  That combination hasn't really been defined.  What happens
for plain doubles?  Do you pass those in FPRs or GPRs?
IIRC we defined doubles as 32bits wide in our old port. We simply didn't support 64bit wide doubles. I don't remember what mechanism we used to make this happen.


I tried to disable dmult and ddiv (see mips.md). Disabling worked, but
now muldi3 calls itself in libgcc2. I thought this should work, because
I got this working with GCC 4.3, but the latest GCC version is a
problem. multi3 is calling muldi3, so that muldi3 should be able to use
mulsi3, because it is the same C code in libgcc2. Can someone get me
some hints or comments? How can this be debugged?

Not sure, sorry.
IIRC I simply disabled muldi3_internal2 and I think we defined away everything related to timode except register-register moves.

Jeff

Reply via email to