On Thu, Sep 04, 2014 at 08:42:31AM +0100, Venkataramanan Kumar wrote: > Hi maintainers, > > I just added "=r" and retested it.
I had a very similar patch to this sitting in my local tree. However, I am surprised you have left operand 3 as an output operand. In my tree I had marked operand 3 as "&r". What do you think? Thanks, James > gcc/ChangeLog > > 2014-09-04 Venkataramanan Kumar <venkataramanan.ku...@linaro.org> > > * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register > constraint for operand 0. > > diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md > index b5be79c..ed6e602 100644 > --- a/gcc/config/aarch64/aarch64.md > +++ b/gcc/config/aarch64/aarch64.md > @@ -4026,7 +4026,7 @@ > }) > > (define_insn "stack_protect_test_<mode>" > - [(set (match_operand:PTR 0 "register_operand") > + [(set (match_operand:PTR 0 "register_operand" "=r") > (unspec:PTR [(match_operand:PTR 1 "memory_operand" "m") > (match_operand:PTR 2 "memory_operand" "m")] > UNSPEC_SP_TEST)) > > regards, > venkat. > > On 4 September 2014 12:42, Venkataramanan Kumar > <venkataramanan.ku...@linaro.org> wrote: > > Hi Maintainers, > > > > Below patch adds register constraint "r" for destination operand in > > "stack_protect_test" pattern. > > > > We need a general register here and adding "r" will avoid vector > > register getting allocated. > > > > regression tested on aarch64-unknown-linux-gnu. > > > > Ok for trunk? > > > > regards, > > Venkat. > > > > > > gcc/ChangeLog > > > > 2014-09-04 Venkataramanan Kumar <venkataramanan.ku...@linaro.org> > > > > * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register > > constraint for operand 0. > > > > > > diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md > > index b5be79c..77588b9 100644 > > --- a/gcc/config/aarch64/aarch64.md > > +++ b/gcc/config/aarch64/aarch64.md > > @@ -4026,7 +4026,7 @@ > > }) > > > > (define_insn "stack_protect_test_<mode>" > > - [(set (match_operand:PTR 0 "register_operand") > > + [(set (match_operand:PTR 0 "register_operand" "r") > > (unspec:PTR [(match_operand:PTR 1 "memory_operand" "m") > > (match_operand:PTR 2 "memory_operand" "m")] > > UNSPEC_SP_TEST)) >