Commit 9ed92901 by Adrian Straetling Committed by Ulrich Weigand

expr.c: (set_storage_via_setmem): Convert opchar to mode defined by back-end.

2005-07-07  Adrian Straetling  <straetling@de.ibm.com>

	* expr.c: (set_storage_via_setmem): Convert opchar to mode
	defined by back-end.

From-SVN: r101703
parent 1a9cb483
2005-07-07 Adrian Straetling <straetling@de.ibm.com>
* expr.c: (set_storage_via_setmem): Convert opchar to mode
defined by back-end.
2005-07-07 Jakub Jelinek <jakub@redhat.com> 2005-07-07 Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.md (stack_protect_testsi): Put clobbers after * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
......
...@@ -2608,7 +2608,8 @@ set_storage_via_setmem (rtx object, rtx size, rtx val, unsigned int align) ...@@ -2608,7 +2608,8 @@ set_storage_via_setmem (rtx object, rtx size, rtx val, unsigned int align)
&& ((pred = insn_data[(int) code].operand[3].predicate) == 0 && ((pred = insn_data[(int) code].operand[3].predicate) == 0
|| (*pred) (opalign, VOIDmode))) || (*pred) (opalign, VOIDmode)))
{ {
rtx opsize,opchar; rtx opsize, opchar;
enum machine_mode char_mode;
rtx last = get_last_insn (); rtx last = get_last_insn ();
rtx pat; rtx pat;
...@@ -2617,10 +2618,15 @@ set_storage_via_setmem (rtx object, rtx size, rtx val, unsigned int align) ...@@ -2617,10 +2618,15 @@ set_storage_via_setmem (rtx object, rtx size, rtx val, unsigned int align)
if (pred != 0 && ! (*pred) (opsize, mode)) if (pred != 0 && ! (*pred) (opsize, mode))
opsize = copy_to_mode_reg (mode, opsize); opsize = copy_to_mode_reg (mode, opsize);
opchar = convert_to_mode (mode, val, 1); opchar = val;
pred = insn_data[(int) code].operand[2].predicate; char_mode = insn_data[(int) code].operand[2].mode;
if (pred != 0 && ! (*pred) (opchar, mode)) if (char_mode != VOIDmode)
opchar = copy_to_mode_reg (mode, opchar); {
opchar = convert_to_mode (char_mode, opchar, 1);
pred = insn_data[(int) code].operand[2].predicate;
if (pred != 0 && ! (*pred) (opchar, char_mode))
opchar = copy_to_mode_reg (char_mode, opchar);
}
pat = GEN_FCN ((int) code) (object, opsize, opchar, opalign); pat = GEN_FCN ((int) code) (object, opsize, opchar, opalign);
if (pat) if (pat)
......
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