Hi All,
I had a single movsf insn that accepts all alternatives for the reload to work.
(define_insn "movsf"
[(set (match_operand:SF 0 "nonimmediate_operand" "=f,m,f,f,d,d")
(match_operand:SF 1 "general_operand" "m,f,f,d,f,i"))
]
But for the alternative 3, i need a another data register.
so i used
(define_insn "movsf"
[(set (match_operand:SF 0 "nonimmediate_operand" "=f,m,f,f,d,d")
(match_operand:SF 1 "general_operand" "m,f,f,d,f,i"))
(clobber (match_scratch:SF 2 "=X,X,X,&d,X,X")) ]
But i am getting: error: insn does not satisfy its constraints:
Is there any other way to generate a temporary register other than
using gen_reg_RTX in define expand and emitting the corresponding mov
patterns?
Regards,
Rohit
On 3/15/07, Jim Wilson <[EMAIL PROTECTED]> wrote:
Rohit Arul Raj wrote:
> (define_insn "movsf_store"
> [(set (match_operand:SF 0 "memory_operand" "=m")
> (match_operand:SF 1 "float_reg" "f"))]
You must have a single movsf define_insn that accepts all alternatives
so that reload will work. You can't have separate define_insns for
movsf and movsf_store.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com