diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2011-03-28 21:22:58 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2011-03-28 21:22:58 +0000 |
commit | 8a445129177df896f4f78170750120eac9c90e12 (patch) | |
tree | 80568baafe1e9bc6c32eea525f52e073d00899f9 /gcc | |
parent | 8060754453f32ae22612a63a2abe5f116c9bb687 (diff) | |
download | gcc-8a445129177df896f4f78170750120eac9c90e12.zip gcc-8a445129177df896f4f78170750120eac9c90e12.tar.gz gcc-8a445129177df896f4f78170750120eac9c90e12.tar.bz2 |
builtins.c (expand_builtin_memset_args): Use gen_int_mode instead of GEN_INT.
gcc/
2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
* builtins.c (expand_builtin_memset_args): Use gen_int_mode
instead of GEN_INT.
From-SVN: r171632
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/builtins.c | 11 |
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6af0e4c..eae6519 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-03-28 Richard Sandiford <richard.sandiford@linaro.org> + + * builtins.c (expand_builtin_memset_args): Use gen_int_mode + instead of GEN_INT. + 2011-03-28 Eric Botcazou <ebotcazou@adacore.com> * cfgexpand.c (expand_gimple_cond): Always set the source location and diff --git a/gcc/builtins.c b/gcc/builtins.c index 1b93f3c..29274f4 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3935,6 +3935,7 @@ expand_builtin_memset_args (tree dest, tree val, tree len, { tree fndecl, fn; enum built_in_function fcode; + enum machine_mode val_mode; char c; unsigned int dest_align; rtx dest_mem, dest_addr, len_rtx; @@ -3969,14 +3970,14 @@ expand_builtin_memset_args (tree dest, tree val, tree len, len_rtx = expand_normal (len); dest_mem = get_memory_rtx (dest, len); + val_mode = TYPE_MODE (unsigned_char_type_node); if (TREE_CODE (val) != INTEGER_CST) { rtx val_rtx; val_rtx = expand_normal (val); - val_rtx = convert_to_mode (TYPE_MODE (unsigned_char_type_node), - val_rtx, 0); + val_rtx = convert_to_mode (val_mode, val_rtx, 0); /* Assume that we can memset by pieces if we can store * the coefficients by pieces (in the required modes). @@ -3987,8 +3988,7 @@ expand_builtin_memset_args (tree dest, tree val, tree len, builtin_memset_read_str, &c, dest_align, true)) { - val_rtx = force_reg (TYPE_MODE (unsigned_char_type_node), - val_rtx); + val_rtx = force_reg (val_mode, val_rtx); store_by_pieces (dest_mem, tree_low_cst (len, 1), builtin_memset_gen_str, val_rtx, dest_align, true, 0); @@ -4014,7 +4014,8 @@ expand_builtin_memset_args (tree dest, tree val, tree len, true)) store_by_pieces (dest_mem, tree_low_cst (len, 1), builtin_memset_read_str, &c, dest_align, true, 0); - else if (!set_storage_via_setmem (dest_mem, len_rtx, GEN_INT (c), + else if (!set_storage_via_setmem (dest_mem, len_rtx, + gen_int_mode (c, val_mode), dest_align, expected_align, expected_size)) goto do_libcall; |