diff options
author | Aaron Sawdey <acsawdey@gcc.gnu.org> | 2017-12-12 16:22:53 -0600 |
---|---|---|
committer | Aaron Sawdey <acsawdey@gcc.gnu.org> | 2017-12-12 16:22:53 -0600 |
commit | 708eab9b5bfdb5be44253dbac5f58cea5c652c55 (patch) | |
tree | eae294451e639aa701218cf4b0cb5c1211fa70be /gcc/config | |
parent | 48f43f9547392ede42dbd56514d7386c564baa8d (diff) | |
download | gcc-708eab9b5bfdb5be44253dbac5f58cea5c652c55.zip gcc-708eab9b5bfdb5be44253dbac5f58cea5c652c55.tar.gz gcc-708eab9b5bfdb5be44253dbac5f58cea5c652c55.tar.bz2 |
re PR target/82190 (Possibly latent miscompilation issue on ppc64le-linux-gnu for memcpy-bi.c with -fweb -fno-optimize-strlen)
2017-12-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
PR target/82190
* config/rs6000/rs6000-string.c (expand_block_compare,
expand_strn_compare): Fix set_mem_size() calls.
From-SVN: r255592
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000-string.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c index 8c2a93e..1ff4284 100644 --- a/gcc/config/rs6000/rs6000-string.c +++ b/gcc/config/rs6000/rs6000-string.c @@ -459,14 +459,14 @@ expand_block_compare (rtx operands[]) rtx src1_reg = copy_addr_to_reg (XEXP (src1, 0)); src1 = replace_equiv_address (src1, src1_reg); } - set_mem_size (src1, cmp_bytes); + set_mem_size (src1, load_mode_size); if (!REG_P (XEXP (src2, 0))) { rtx src2_reg = copy_addr_to_reg (XEXP (src2, 0)); src2 = replace_equiv_address (src2, src2_reg); } - set_mem_size (src2, cmp_bytes); + set_mem_size (src2, load_mode_size); do_load_for_compare (tmp_reg_src1, src1, load_mode); do_load_for_compare (tmp_reg_src2, src2, load_mode); @@ -937,14 +937,14 @@ expand_strn_compare (rtx operands[], int no_length) rtx src1_reg = copy_addr_to_reg (XEXP (src1, 0)); src1 = replace_equiv_address (src1, src1_reg); } - set_mem_size (src1, cmp_bytes); + set_mem_size (src1, load_mode_size); if (!REG_P (XEXP (src2, 0))) { rtx src2_reg = copy_addr_to_reg (XEXP (src2, 0)); src2 = replace_equiv_address (src2, src2_reg); } - set_mem_size (src2, cmp_bytes); + set_mem_size (src2, load_mode_size); do_load_for_compare (tmp_reg_src1, src1, load_mode); do_load_for_compare (tmp_reg_src2, src2, load_mode); @@ -1096,14 +1096,14 @@ expand_strn_compare (rtx operands[], int no_length) rtx src1_reg = copy_addr_to_reg (XEXP (src1, 0)); src1 = replace_equiv_address (src1, src1_reg); } - set_mem_size (src1, cmp_bytes); + set_mem_size (src1, load_mode_size); if (!REG_P (XEXP (src2, 0))) { rtx src2_reg = copy_addr_to_reg (XEXP (src2, 0)); src2 = replace_equiv_address (src2, src2_reg); } - set_mem_size (src2, cmp_bytes); + set_mem_size (src2, load_mode_size); /* Construct call to strcmp/strncmp to compare the rest of the string. */ if (no_length) |