Re: Supporting FP cmp lib routines

2009-10-23 Thread Joern Rennecke
Quoting Mohamed Shafi : I have implemented the above solution and it works. I have to support the same for DF also. But with DF i have a problem with the constraints. My target generates code for both big and little endian. The ABI specifies that when a 64bit value is passed as an argument they a

Re: Supporting FP cmp lib routines

2009-10-23 Thread Mohamed Shafi
2009/9/14 Richard Henderson : > Another thing to look at, since you have hand-written routines and may be > able to specify that e.g. only a subset of the normal call clobbered > registers are actually modified, is to leave the call as a "compare" insn. >  Something like > > (define_insn "*cmpsf" >

Re: Supporting FP cmp lib routines

2009-09-14 Thread Richard Henderson
Another thing to look at, since you have hand-written routines and may be able to specify that e.g. only a subset of the normal call clobbered registers are actually modified, is to leave the call as a "compare" insn. Something like (define_insn "*cmpsf" [(set (reg:CC status-reg) (c

Re: Supporting FP cmp lib routines

2009-09-14 Thread Richard Henderson
On 09/14/2009 06:59 AM, Mohamed Shafi wrote: Is there a way to let GCC know that the result for FP compare are stored in the Status Register so that GCC generates directly a jump operation? How can i implement this? There is no way to do this via the standard libcall sequence. In order to impl

Supporting FP cmp lib routines

2009-09-14 Thread Mohamed Shafi
Hi all, I am doing a GCC port for a 32bit target in GCC 4.4.0. The target uses hand coded floating point compare routines. Generally the function returns the values in the general purpose registers. But these fp cmp routines return the result in the Status Register itself. So there is no need to