This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH ARM] Enable __sync_* tests for arm-*-linux-gnueabi, and fix resulting ARM failures.


On Fri, 2010-08-06 at 16:12 +0100, Richard Earnshaw wrote:
> On Fri, 2010-08-06 at 16:02 +0100, Marcus Shawcroft wrote:
> > Ooops, missed the ChangeLog entry for the testsuite:
> > 
> > 2010-08-03  Marcus Shawcroft  <marcus.shawcroft@arm.com>
> > 
> >         * lib/target-supports.exp: (check_effective_target_sync_int_long):
> >         Add arm*-*-linux-gnueabi.
> >         (check_effective_target_sync_char_short): Add arm*-*-linux-gnueabi.
> 
> No colon after the file name.  It's also usual to use 'Likewise' when
> the ChangeLog entry for one function is the same as the previous entry.
> 
> The rest of this is OK.

Committed after making the necessary changes. Shouldn't this be
backported to 4.4 and 4.5 branches ? 

Ramana

> 
> R.
> 
> > 
> > > -----Original Message-----
> > > From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches-
> > > owner@gcc.gnu.org] On Behalf Of Marcus Shawcroft
> > > Sent: 06 August 2010 15:34
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: [PATCH ARM] Enable __sync_* tests for arm-*-linux-gnueabi, and
> > > fix resulting ARM failures.
> > > 
> > > This patch enables the existing __sync_* builtin test cases for
> > > arm-*-linux-gnueabi and fixes two issues exposed in the ARM
> > > implementation.
> > > 
> > > The first issue was highlighted by Ramana (
> > > http://gcc.gnu.org/ml/gcc-patches/2010-07/msg01585.html ). The
> > > sync_nand_
> > > operation should implement *mem = ~ (*mem & new_value) but actually
> > > implements *mem = (~ *mem) & new_value. The second issue exposed is
> > > that all
> > > of the __sync_* builtins introduce inappropriate sign extension for 8
> > > and 16
> > > bit primitives. This behaviour is normally masked for 8 bit primitives
> > > because 'char' is unsigned by default on ARM.
> > > 
> > > Tested on ARM QEMU no regressions.
> > > 
> > > 2010-08-03  Marcus Shawcroft <marcus.shawcroft@arm.com>
> > > 
> > >        * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
> > >        'unsigned short' and 'unsigned char' instead of 'short' and
> > > 'char'.
> > >        (SUBWORD_BOOL_CAS): Likewise.
> > >        (SUBWORD_SYNC_OP): Likewise.
> > >        (SUBWORD_TEST_AND_SET): Likewise.
> > >        (FETCH_AND_OP_WORD): Parenthesise INF_OP
> > >        (SUBWORD_SYNC_OP): Likewise.
> > >        (OP_AND_FETCH_WORD): Likewise.
> > > 
> > > /Marcus
> > 
> 
> 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]