mirror of git://gcc.gnu.org/git/gcc.git
arm: Generate correct const_ints (PR86640)
In arm_block_set_aligned_vect 8-bit constants are generated as zero- extended const_ints, not sign-extended as required. Fix that. PR target/86640 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode instead of GEN_INT. From-SVN: r263075
This commit is contained in:
parent
a64ede727f
commit
8f953899e3
|
|
@ -1,3 +1,9 @@
|
||||||
|
2018-07-30 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
|
|
||||||
|
PR target/86640
|
||||||
|
* config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode
|
||||||
|
instead of GEN_INT.
|
||||||
|
|
||||||
2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||||
|
|
||||||
* tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
|
* tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
|
||||||
|
|
|
||||||
|
|
@ -30046,7 +30046,6 @@ arm_block_set_aligned_vect (rtx dstbase,
|
||||||
rtx dst, addr, mem;
|
rtx dst, addr, mem;
|
||||||
rtx val_vec, reg;
|
rtx val_vec, reg;
|
||||||
machine_mode mode;
|
machine_mode mode;
|
||||||
unsigned HOST_WIDE_INT v = value;
|
|
||||||
unsigned int offset = 0;
|
unsigned int offset = 0;
|
||||||
|
|
||||||
gcc_assert ((align & 0x3) == 0);
|
gcc_assert ((align & 0x3) == 0);
|
||||||
|
|
@ -30065,10 +30064,8 @@ arm_block_set_aligned_vect (rtx dstbase,
|
||||||
|
|
||||||
dst = copy_addr_to_reg (XEXP (dstbase, 0));
|
dst = copy_addr_to_reg (XEXP (dstbase, 0));
|
||||||
|
|
||||||
v = sext_hwi (v, BITS_PER_WORD);
|
|
||||||
|
|
||||||
reg = gen_reg_rtx (mode);
|
reg = gen_reg_rtx (mode);
|
||||||
val_vec = gen_const_vec_duplicate (mode, GEN_INT (v));
|
val_vec = gen_const_vec_duplicate (mode, gen_int_mode (value, QImode));
|
||||||
/* Emit instruction loading the constant value. */
|
/* Emit instruction loading the constant value. */
|
||||||
emit_move_insn (reg, val_vec);
|
emit_move_insn (reg, val_vec);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue