diff options
author | David Faust <david.faust@oracle.com> | 2025-10-15 13:36:38 -0700 |
---|---|---|
committer | David Faust <david.faust@oracle.com> | 2025-10-17 08:40:46 -0700 |
commit | 239535e9b0c4313072dda0ee1dcbd8ad8636a326 (patch) | |
tree | 1522c90bfd787a8e294d1c6520fd49f0f2e408c4 /gcc/config/arm/mve.md | |
parent | d1965b1fd8938f35f78be503e36b98b406751e21 (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
The BPF backend expansion of setmem was broken, because it could elect
to use stores of HI, SI or DI modes based on the destination alignment
when the value was QI, but fail to duplicate the byte value across to
those larger sizes. This resulted in not all bytes of the destination
actually being set to the desired value.
Fix bpf_expand_setmem to ensure the desired byte value is really
duplicated as necessary, whether it is constant or a (sub)reg:QI.
PR target/122139
gcc/
* config/bpf/bpf.cc (bpf_expand_setmem): Duplicate byte value
across to new mode when using larger modes for store.
gcc/testsuite/
* gcc.target/bpf/memset-3.c: New.
* gcc.target/bpf/memset-4.c: New.
Diffstat (limited to 'gcc/config/arm/mve.md')
0 files changed, 0 insertions, 0 deletions