aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2005-10-16 21:30:42 +0000
committerHans-Peter Nilsson <hp@axis.com>2005-10-16 21:30:42 +0000
commit641d539950602d8928757971559fdf6d025b3218 (patch)
treee210bb428c550aed0dd2c1bdb5fb9560a71b2a4b
parent393959b755ff174614b37a61fa7c72da2eeeda33 (diff)
* builtins.c (get_builtin_sync_mode): Make unlimited
mode_for_size request. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@105469 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/builtins.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9384f1705a9..e0eeab178a5 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 2136900f083..a3986057408 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.