Commit 8100d8c1 by H.J. Lu Committed by H.J. Lu

Use word_mode instead of Pmode in loop expand

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
	needed for loop.
	(ix86_expand_setmem): Likewise.

From-SVN: r185200
parent 670bb1a1
2012-03-11 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
needed for loop.
(ix86_expand_setmem): Likewise.
2012-03-11 Uros Bizjak <ubizjak@gmail.com> 2012-03-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
......
...@@ -22055,11 +22055,11 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp, ...@@ -22055,11 +22055,11 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
gcc_unreachable (); gcc_unreachable ();
case loop: case loop:
need_zero_guard = true; need_zero_guard = true;
size_needed = GET_MODE_SIZE (Pmode); size_needed = GET_MODE_SIZE (word_mode);
break; break;
case unrolled_loop: case unrolled_loop:
need_zero_guard = true; need_zero_guard = true;
size_needed = GET_MODE_SIZE (Pmode) * (TARGET_64BIT ? 4 : 2); size_needed = GET_MODE_SIZE (word_mode) * (TARGET_64BIT ? 4 : 2);
break; break;
case rep_prefix_8_byte: case rep_prefix_8_byte:
size_needed = 8; size_needed = 8;
...@@ -22225,13 +22225,13 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp, ...@@ -22225,13 +22225,13 @@ ix86_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp,
break; break;
case loop: case loop:
expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, NULL, expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, NULL,
count_exp, Pmode, 1, expected_size); count_exp, word_mode, 1, expected_size);
break; break;
case unrolled_loop: case unrolled_loop:
/* Unroll only by factor of 2 in 32bit mode, since we don't have enough /* Unroll only by factor of 2 in 32bit mode, since we don't have enough
registers for 4 temporaries anyway. */ registers for 4 temporaries anyway. */
expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, NULL, expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, NULL,
count_exp, Pmode, TARGET_64BIT ? 4 : 2, count_exp, word_mode, TARGET_64BIT ? 4 : 2,
expected_size); expected_size);
break; break;
case rep_prefix_8_byte: case rep_prefix_8_byte:
...@@ -22443,11 +22443,11 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp, ...@@ -22443,11 +22443,11 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
gcc_unreachable (); gcc_unreachable ();
case loop: case loop:
need_zero_guard = true; need_zero_guard = true;
size_needed = GET_MODE_SIZE (Pmode); size_needed = GET_MODE_SIZE (word_mode);
break; break;
case unrolled_loop: case unrolled_loop:
need_zero_guard = true; need_zero_guard = true;
size_needed = GET_MODE_SIZE (Pmode) * 4; size_needed = GET_MODE_SIZE (word_mode) * 4;
break; break;
case rep_prefix_8_byte: case rep_prefix_8_byte:
size_needed = 8; size_needed = 8;
...@@ -22618,11 +22618,11 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp, ...@@ -22618,11 +22618,11 @@ ix86_expand_setmem (rtx dst, rtx count_exp, rtx val_exp, rtx align_exp,
break; break;
case loop: case loop:
expand_set_or_movmem_via_loop (dst, NULL, destreg, NULL, promoted_val, expand_set_or_movmem_via_loop (dst, NULL, destreg, NULL, promoted_val,
count_exp, Pmode, 1, expected_size); count_exp, word_mode, 1, expected_size);
break; break;
case unrolled_loop: case unrolled_loop:
expand_set_or_movmem_via_loop (dst, NULL, destreg, NULL, promoted_val, expand_set_or_movmem_via_loop (dst, NULL, destreg, NULL, promoted_val,
count_exp, Pmode, 4, expected_size); count_exp, word_mode, 4, expected_size);
break; break;
case rep_prefix_8_byte: case rep_prefix_8_byte:
expand_setmem_via_rep_stos (dst, destreg, promoted_val, count_exp, expand_setmem_via_rep_stos (dst, destreg, promoted_val, count_exp,
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment