From: Peter Bergner Date: Thu, 22 May 2014 16:07:07 +0000 (-0500) Subject: backport: htm.md (ttest): Use correct shift value to get CR0. X-Git-Tag: releases/gcc-4.8.4~458 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9be8f307514dbc175833a2f976949ae1eb065517;p=thirdparty%2Fgcc.git backport: htm.md (ttest): Use correct shift value to get CR0. Backport from mainline 2014-05-22 Peter Bergner gcc/ * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. gcc/testsuite/ * gcc.target/powerpc/htm-ttest.c: New test. From-SVN: r210818 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 97346e852c06..667a495b12f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-22 Peter Bergner + + Backport from mainline + 2014-05-22 Peter Bergner + + * config/rs6000/htm.md (ttest): Use correct shift value to get CR0. + 2014-05-22 Richard Earnshaw PR target/61208 diff --git a/gcc/config/rs6000/htm.md b/gcc/config/rs6000/htm.md index e8ec91aef71d..1a1e4351e5c5 100644 --- a/gcc/config/rs6000/htm.md +++ b/gcc/config/rs6000/htm.md @@ -179,7 +179,7 @@ (const_int 0)] UNSPECV_HTM_TABORTWCI)) (set (subreg:CC (match_dup 2) 0) (match_dup 1)) - (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 24))) + (set (match_dup 3) (lshiftrt:SI (match_dup 2) (const_int 28))) (parallel [(set (match_operand:SI 0 "int_reg_operand" "") (and:SI (match_dup 3) (const_int 15))) (clobber (scratch:CC))])] diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 28598e5da21a..1d4513fc7b54 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-05-22 Peter Bergner + + Backport from mainline + 2014-05-22 Peter Bergner + + * gcc.target/powerpc/htm-ttest.c: New test. + 2014-05-22 Release Manager * GCC 4.8.3 released. diff --git a/gcc/testsuite/gcc.target/powerpc/htm-ttest.c b/gcc/testsuite/gcc.target/powerpc/htm-ttest.c new file mode 100644 index 000000000000..29cbd5b90b3b --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/htm-ttest.c @@ -0,0 +1,14 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-require-effective-target powerpc_htm_ok } */ +/* { dg-options "-O2 -mhtm" } */ + +/* { dg-final { scan-assembler "rlwinm r?\[0-9\]+,r?\[0-9\]+,3,30,31" { target { ilp32 } } } } */ +/* { dg-final { scan-assembler "rldicl r?\[0-9\]+,r?\[0-9\]+,35,62" { target { lp64 } } } } */ + +#include +long +ttest (void) +{ + return _HTM_STATE(__builtin_ttest()); +}