arm.c (arm_block_set_aligned_non_vect): Use gen_unaligned_storedi for 4-byte aligned addresses.

2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
        gen_unaligned_storedi for 4-byte aligned addresses.

testsuite:
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr91684.c: New test.

From-SVN: r275483
This commit is contained in:
Bernd Edlinger 2019-09-07 04:38:58 +00:00 committed by Bernd Edlinger
parent 7397488502
commit d405dc2302
4 changed files with 28 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
* config/arm/arm.c (arm_block_set_aligned_non_vect): Use
gen_unaligned_storedi for 4-byte aligned addresses.
2019-09-06 Jim Wilson <jimw@sifive.com>
* config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30

View file

@ -30352,7 +30352,10 @@ arm_block_set_aligned_non_vect (rtx dstbase,
{
addr = plus_constant (Pmode, dst, i);
mem = adjust_automodify_address (dstbase, DImode, addr, i);
emit_move_insn (mem, reg);
if (MEM_ALIGN (mem) >= 2 * BITS_PER_WORD)
emit_move_insn (mem, reg);
else
emit_insn (gen_unaligned_storedi (mem, reg));
}
}
else

View file

@ -1,3 +1,7 @@
2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
* gcc.target/arm/pr91684.c: New test.
2019-09-06 Ian Lance Taylor <iant@golang.org>
* go.test/test/fixedbugs/bug369.go: Update to match libgo update

View file

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_ldrd_strd_ok } */
/* { dg-options "-O3" } */
typedef struct { int a, b, c; } S;
void g (S *s);
void bug1 (void)
{
S s;
__builtin_memset (&s, 0, sizeof (S));
g (&s);
}
/* { dg-final { scan-assembler-times "strd" 1 } } */