Date: Fri, 2 Aug 2013 19:10:46 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r253892 - in projects/atomic64/sys: amd64/include i386/include Message-ID: <201308021910.r72JAkjp068406@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jkim Date: Fri Aug 2 19:10:46 2013 New Revision: 253892 URL: http://svnweb.freebsd.org/changeset/base/253892 Log: Refine r253891. Compiler does not know the BTS instruction implicitly does modulo operation and generates poor code when the function is not inlined. Modified: projects/atomic64/sys/amd64/include/atomic.h projects/atomic64/sys/i386/include/atomic.h Modified: projects/atomic64/sys/amd64/include/atomic.h ============================================================================== --- projects/atomic64/sys/amd64/include/atomic.h Fri Aug 2 18:32:01 2013 (r253891) +++ projects/atomic64/sys/amd64/include/atomic.h Fri Aug 2 19:10:46 2013 (r253892) @@ -225,7 +225,7 @@ atomic_testandset_int(volatile u_int *p, "# atomic_testandset_int" : "=r" (res), /* 0 */ "=m" (*p) /* 1 */ - : "Ir" (v % 32), /* 2 */ + : "ir" (v), /* 2 */ "m" (*p) /* 3 */ : "cc"); return (res); @@ -243,7 +243,7 @@ atomic_testandset_long(volatile u_long * "# atomic_testandset_long" : "=r" (res), /* 0 */ "=m" (*p) /* 1 */ - : "Jr" ((u_long)v % 64), /* 2 */ + : "ir" ((u_long)v), /* 2 */ "m" (*p) /* 3 */ : "cc"); return (res); Modified: projects/atomic64/sys/i386/include/atomic.h ============================================================================== --- projects/atomic64/sys/i386/include/atomic.h Fri Aug 2 18:32:01 2013 (r253891) +++ projects/atomic64/sys/i386/include/atomic.h Fri Aug 2 19:10:46 2013 (r253892) @@ -366,7 +366,7 @@ atomic_testandset_int(volatile u_int *p, "# atomic_testandset_int" : "=r" (res), /* 0 */ "=m" (*p) /* 1 */ - : "Ir" (v % 32), /* 2 */ + : "ir" (v), /* 2 */ "m" (*p) /* 3 */ : "cc"); return (res);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308021910.r72JAkjp068406>