diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-03-13 09:16:29 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-03-13 09:21:42 +0100 |
commit | 82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4 (patch) | |
tree | 7aebe15ddd0a4439c4897b7cabb05a32fe6e796a /gcc/resource.c | |
parent | 54e69cb00da0b50e4fa228a0617e4e8713bbc998 (diff) | |
download | gcc-82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4.zip gcc-82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4.tar.gz gcc-82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4.tar.bz2 |
Fix unaligned load with small memcpy on the ARM
store_integral_bit_field is ready to handle BLKmode fields, there is
even a subtlety with their handling on big-endian targets, see e.g.
PR middle-end/50325, but not if they are unaligned, so the fix is
simply to call extract_bit_field for them in order to generate an
unaligned load. As a bonus, this subsumes the big-endian specific
path that was added under PR middle-end/50325.
PR middle-end/92071
* expmed.c (store_integral_bit_field): For fields larger than a
word, call extract_bit_field on the value if the mode is BLKmode.
Remove specific path for big-endian targets and tidy things up a
little bit.
Diffstat (limited to 'gcc/resource.c')
0 files changed, 0 insertions, 0 deletions