re PR target/57909 ([ARM] ICE with internal memcpy and -mno-unaligned-access)
Fix PR target/57909. 2013-07-17 Yvan Roux <yvan.roux@linaro.org> PR target/57909 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store usage in HI mode. From-SVN: r201005
This commit is contained in:
parent
167f68ede4
commit
a1259a1302
|
@ -1,3 +1,9 @@
|
||||||
|
2013-07-17 Yvan Roux <yvan.roux@linaro.org>
|
||||||
|
|
||||||
|
PR target/57909
|
||||||
|
* config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
|
||||||
|
usage in HI mode.
|
||||||
|
|
||||||
2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||||
|
|
||||||
* config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
|
* config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
|
||||||
|
|
|
@ -12018,8 +12018,16 @@ gen_movmem_ldrd_strd (rtx *operands)
|
||||||
dst = adjust_address (dst, HImode, 0);
|
dst = adjust_address (dst, HImode, 0);
|
||||||
src = adjust_address (src, HImode, 0);
|
src = adjust_address (src, HImode, 0);
|
||||||
reg0 = gen_reg_rtx (SImode);
|
reg0 = gen_reg_rtx (SImode);
|
||||||
emit_insn (gen_unaligned_loadhiu (reg0, src));
|
if (src_aligned)
|
||||||
emit_insn (gen_unaligned_storehi (dst, gen_lowpart (HImode, reg0)));
|
emit_insn (gen_zero_extendhisi2 (reg0, src));
|
||||||
|
else
|
||||||
|
emit_insn (gen_unaligned_loadhiu (reg0, src));
|
||||||
|
|
||||||
|
if (dst_aligned)
|
||||||
|
emit_insn (gen_movhi (dst, gen_lowpart(HImode, reg0)));
|
||||||
|
else
|
||||||
|
emit_insn (gen_unaligned_storehi (dst, gen_lowpart (HImode, reg0)));
|
||||||
|
|
||||||
src = next_consecutive_mem (src);
|
src = next_consecutive_mem (src);
|
||||||
dst = next_consecutive_mem (dst);
|
dst = next_consecutive_mem (dst);
|
||||||
if (len == 2)
|
if (len == 2)
|
||||||
|
|
Loading…
Reference in New Issue