aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2008-06-26 21:28:30 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2008-06-26 21:28:30 +0000
commite2ff10a93c232352cd9d648baa1070d2982f18cb (patch)
treeb243da2903826b74d9af4b244282d7635346588d /gcc/builtins.c
parentf78c3290cdcd5328d1924935806f8ef24d7f7788 (diff)
downloadgcc-e2ff10a93c232352cd9d648baa1070d2982f18cb.zip
gcc-e2ff10a93c232352cd9d648baa1070d2982f18cb.tar.gz
gcc-e2ff10a93c232352cd9d648baa1070d2982f18cb.tar.bz2
libfuncs.h (LTI_synchronize): New libfunc_index.
gcc/ * libfuncs.h (LTI_synchronize): New libfunc_index. (synchronize_libfunc): Declare. * builtins.c (expand_builtin_synchronize): Consider using synchronize_libfunc before falling back on an asm blockage. * config/mips/mips.c: Include libfuncs.h (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16. From-SVN: r137162
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 1039c603..10af342 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -5999,6 +5999,12 @@ expand_builtin_synchronize (void)
}
#endif
+ if (synchronize_libfunc != NULL_RTX)
+ {
+ emit_library_call (synchronize_libfunc, LCT_NORMAL, VOIDmode, 0);
+ return;
+ }
+
/* If no explicit memory barrier instruction is available, create an
empty asm stmt with a memory clobber. */
x = build4 (ASM_EXPR, void_type_node, build_string (0, ""), NULL, NULL,