diff options
author | Richard Henderson <rth@redhat.com> | 2011-11-26 16:20:48 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-11-26 16:20:48 -0800 |
commit | 380af8096daaabbdfc0d112f02f62814a670e524 (patch) | |
tree | b9bcf43f9ccd57fb0278e23b03bc347790776ba3 /gcc | |
parent | 14bb3de00f282273504fb87e82f6edc4feaca4bb (diff) | |
download | gcc-380af8096daaabbdfc0d112f02f62814a670e524.zip gcc-380af8096daaabbdfc0d112f02f62814a670e524.tar.gz gcc-380af8096daaabbdfc0d112f02f62814a670e524.tar.bz2 |
arm: Install __sync libfuncs for Linux.
* config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
for Linux.
From-SVN: r181755
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c16f1d8..5a6b5d3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-11-26 Richard Henderson <rth@redhat.com> + * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs + for Linux. + +2011-11-26 Richard Henderson <rth@redhat.com> + * optabs.c (expand_atomic_fetch_op): Always return result. * optabs.c (init_sync_libfuncs_1): Include max in iteration. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index e3b0b88..ee26c51 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1096,6 +1096,10 @@ arm_set_fixed_conv_libfunc (convert_optab optable, enum machine_mode to, static void arm_init_libfuncs (void) { + /* For Linux, we have access to kernel support for atomic operations. */ + if (arm_abi == ARM_ABI_AAPCS_LINUX) + init_sync_libfuncs (2 * UNITS_PER_WORD); + /* There are no special library functions unless we are using the ARM BPABI. */ if (!TARGET_BPABI) |