diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/builtins.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9384f17..e0eeab1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-10-16 Hans-Peter Nilsson <hp@axis.com> + + * builtins.c (get_builtin_sync_mode): Make unlimited + mode_for_size request. + 2005-10-15 Richard Henderson <rth@redhat.com> * gimplify.c (gimplify_var_or_parm_decl): Split out from ... diff --git a/gcc/builtins.c b/gcc/builtins.c index 2136900..a398605 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -5399,7 +5399,9 @@ expand_builtin_fork_or_exec (tree fn, tree arglist, rtx target, int ignore) static inline enum machine_mode get_builtin_sync_mode (int fcode_diff) { - return mode_for_size (BITS_PER_UNIT << fcode_diff, MODE_INT, 1); + /* The size is not negotiable, so ask not to get BLKmode in return + if the target indicates that a smaller size would be better. */ + return mode_for_size (BITS_PER_UNIT << fcode_diff, MODE_INT, 0); } /* Expand the __sync_xxx_and_fetch and __sync_fetch_and_xxx intrinsics. |