On 06/21/2011 03:27 PM, Andrew MacLeod wrote: > * doc/extend.texi (__sync_mem_exchange): Document. > * cppbuiltin.c (define__GNUC__): Define __SYNC_MEM*. > * c-family/c-common.c (BUILT_IN_SYNC_MEM_EXCHANGE_N): Add case. > * optabs.c (expand_sync_mem_exchange): New. > * optabs.h (enum direct_optab_index): Add DOI_sync_mem_exchange entry. > (sync_mem_exchange_optab): Define. > * genopinit.c: Add entry for sync_mem_exchange. > * builtins.c (get_memmodel): New. > (expand_builtin_sync_mem_exchange): New. > (expand_builtin_sync_synchronize): Remove static. > (expand_builtin): Add cases for BUILT_IN_SYNC_MEM_EXCHANGE_*. > * sync-builtins.def: Add entries for BUILT_IN_SYNC_MEM_EXCHANGE_*. > * testsuite/gcc.dg/x86-sync-1.c: New test. > * builtin-types.def (BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New. > * expr.h (expand_sync_mem_exchange): Declare. > (expand_builtin_sync_synchronize): Declare. > * fortran/types.def (BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New. > * coretypes.h (enum memmodel): New. > * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H) > * config/i386/sync.md (sync_mem_exchange<mode>): New pattern. >
Looks good. r~