On Mon, Dec 14, 2009 at 5:04 PM, Daniel Jacobowitz <d...@false.org> 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 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 handle the cost then ?
   - Just say that an unspec has a higher cost?


>
>> - Add the new rtl in the MD file and the generated assembly instruction
>>
>> However, the solution seems to work, except in O0, where I get this error:
>
> This means whatever is calling gen_newrtl to create the insn is not
> checking operand predicates first.  That's probably code you wrote
> too.

You are probably right, I'll move it into a register first before
generating my instruction.


Thanks a lot,
Jc

Reply via email to