Re: New RTL instruction for my port

2010-01-07 Thread Jean Christophe Beyler
I am almost convinced I had tried that already but apparently not. This seems to have fixed my problem, thank you :-) Jc On Thu, Jan 7, 2010 at 4:14 PM, Richard Henderson wrote: > On 01/07/2010 12:58 PM, Jean Christophe Beyler wrote: >> >> Dear all, >> >> I've gone to using unspec and I think I

Re: New RTL instruction for my port

2010-01-07 Thread Richard Henderson
On 01/07/2010 12:58 PM, Jean Christophe Beyler wrote: Dear all, I've gone to using unspec and I think I know why I have a problem. It seems that actually, the problem lies with the fact that these instructions are touching an internal register and how I am handling that register. Since I don't

Re: New RTL instruction for my port

2010-01-07 Thread Jean Christophe Beyler
Dear all, I've gone to using unspec and I think I know why I have a problem. It seems that actually, the problem lies with the fact that these instructions are touching an internal register and how I am handling that register. Since I don't want the register allocator to use that register, I put

Re: New RTL instruction for my port

2009-12-15 Thread Jean Christophe Beyler
EPILOGUE_USES does not seem to work, the code still gets optimized out. However, unspec_volatile works but then, as you have said, the compiler doesn't optimize out things that it then could. I have for example an instruction to set this special register. Theoretically, if we had : set (x); set

Re: New RTL instruction for my port

2009-12-15 Thread Daniel Jacobowitz
On Tue, Dec 15, 2009 at 10:08:02AM -0500, Jean Christophe Beyler wrote: > You are correct. So I should be changing things in the adjust_cost > function instead. > > I was also wondering, these instructions modify an internal register > that has been set as a fixed register. However, the compiler o

Re: New RTL instruction for my port

2009-12-15 Thread Jean Christophe Beyler
You are correct. So I should be changing things in the adjust_cost function instead. I was also wondering, these instructions modify an internal register that has been set as a fixed register. However, the compiler optimizes them out when the accumulator is not retrieved for a calculation. How can

Re: New RTL instruction for my port

2009-12-14 Thread Daniel Jacobowitz
On Mon, Dec 14, 2009 at 05:52:50PM -0500, Jean Christophe Beyler wrote: > I thought of that but then how do I add the cost ? I also have another > problem: there is a second instruction that would have the exact same > signature if I use an unspec. > > Is there a solution for that and how do I han

Re: New RTL instruction for my port

2009-12-14 Thread Jean Christophe Beyler
On Mon, Dec 14, 2009 at 5:04 PM, Daniel Jacobowitz wrote: > On Mon, Dec 14, 2009 at 04:46:59PM -0500, Jean Christophe Beyler wrote: >> My current solution: >> >> - Define a new rtl in rtl.def > > Just use an unspec or unspec_volatile.  You don't need a new RTL > operation. I thought of that but t

Re: New RTL instruction for my port

2009-12-14 Thread Daniel Jacobowitz
On Mon, Dec 14, 2009 at 04:46:59PM -0500, Jean Christophe Beyler wrote: > My current solution: > > - Define a new rtl in rtl.def Just use an unspec or unspec_volatile. You don't need a new RTL operation. > - Add the new rtl in the MD file and the generated assembly instruction > > However, the