On Mon, Dec 23, 2013 at 5:11 PM, Uros Bizjak <ubiz...@gmail.com> wrote: > On Wed, Dec 18, 2013 at 2:00 PM, Kirill Yukhin <kirill.yuk...@gmail.com> > wrote: >> Hello, >> On 02 Dec 16:09, Kirill Yukhin wrote: >>> Hello, >>> On 19 Nov 12:08, Kirill Yukhin wrote: >>> > Hello, >>> > On 15 Nov 20:06, Kirill Yukhin wrote: >>> > > Ping. >>> > Ping. >>> Ping. >> Ping. >> >> Rebased patch in the bottom. > > At the end of the day, the patch looks fairly mechanical, adding > extensions to insn templates in a consistent way. The approach with > define_subst is already approved and used throughout the .md files. > > I have reviewed the patch, and didn't find any obvious mistakes - and > there is a huge testsuite to find non-obvious ones, so I'm confident > enough to approve the patch. > > So, OK for mainline, but I would kindly ask you to please wait a > couple of days for possible Richard's comments
There is one issue: +(define_subst_attr "round_constraint" "round" "vm" "v") +(define_subst_attr "round_constraint2" "round" "m" "v") +(define_subst_attr "round_constraint3" "round" "rm" "r") When substituting constraints, please also substitute corresponding operand predicate: nonimmediate_operand -> register_operand in 1st and 3rd case memory_operand -> register_operand in 2nd case. When you allow e.g. nonimmediate_operand in predicate, but only register in operand constraint, reload will resolve it, however - memory load will remain in the loop even if it is invariant. There is no pass to hoist invariant loads after reload. Uros.