aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2013-01-09 18:19:16 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2013-01-09 18:19:16 +0000
commit9a002da86b6a69292b2d520a17cf1412e092ec76 (patch)
treed95935d5d4ca6f06429b4ffd9a9f54942215415d /gcc/builtins.c
parent511dcace074c36f4c8d7fcf835ba795fa82268c0 (diff)
downloadgcc-9a002da86b6a69292b2d520a17cf1412e092ec76.zip
gcc-9a002da86b6a69292b2d520a17cf1412e092ec76.tar.gz
gcc-9a002da86b6a69292b2d520a17cf1412e092ec76.tar.bz2
re PR middle-end/55114 (gcc.dg/builtins-53.c ICEs on mips64 soft-float)
gcc/ PR middle-end/55114 * expr.h (maybe_emit_group_store): Declare. * expr.c (maybe_emit_group_store): New function. * builtins.c (expand_builtin_int_roundingfn): Call it. (expand_builtin_int_roundingfn_2): Likewise. From-SVN: r195060
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 67c96df..2b615a1 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -2753,6 +2753,7 @@ expand_builtin_int_roundingfn (tree exp, rtx target)
exp = build_call_nofold_loc (EXPR_LOCATION (exp), fallback_fndecl, 1, arg);
tmp = expand_normal (exp);
+ tmp = maybe_emit_group_store (tmp, TREE_TYPE (exp));
/* Truncate the result of floating point optab to integer
via expand_fix (). */
@@ -2856,6 +2857,7 @@ expand_builtin_int_roundingfn_2 (tree exp, rtx target)
fallback_fndecl, 1, arg);
target = expand_call (exp, NULL_RTX, target == const0_rtx);
+ target = maybe_emit_group_store (target, TREE_TYPE (exp));
return convert_to_mode (mode, target, 0);
}