This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCJ on mipsel-unknown-linux-gnu


Andrew Haley wrote:

> > > >
> That is correct. There are several problems with the current > MD_FALLBACK_FRAME_STATE_FOR.
> > 1) I think that the current definition of SIGNAL_UNWIND_RETURN_COLUMN > should be changed as I think it currently resides in the slot of a real > register (not sure about this though).


Yeah, I think that's probably true. I guess it ought not to require a
special column, but i can't remember the MIPS ABI well enough to know.


If all the hard registers had to be preserved, so would be no place for the return address, so the pseudo-register column is needed.

I am unclear on how GCC generates code. If it guarantees that the callee-saved registers can be clobbered at the catch point, then one of these registers' columns could be used to hold the signal return address. There are two unusable registers (k0, k1) that could probably be used also.

There are also several unused columns and one of those could also be used to track the return address.

Its current value puts it in $hi's column. This might be OK, or it might not. I am not sure.

> 2) It probably does not do the right thing WRT floating point > registers. But with respect to libgcj, the signal handler does not use > floating point,so it works.

This all depends on how the MIPS ABI uses floating-point registers.
If they're all callee-saved as they are on some systems, you won't
have a problem.

Andrew.


They are not all callee-saved. I think the only thing that might allow it to work as is, is the fact that the unwinder does not use floating point, so the registers magically never get changed.

For the platform I am using, we use software floating point, so the hardware floating point registers are never used, so we will never have problems WRT this issue.

If it is important to fix these things, I might be persuaded to look into it...

David Daney.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]