diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-12-20 12:53:44 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-12-20 12:53:44 +0000 |
commit | 2d7b38df8e50a2c29bbc778a34c6ab6349178994 (patch) | |
tree | 9434a81dbc47de40990db4b2e1ba787ae865df97 /gcc/expmed.h | |
parent | 73ca989cb823c3857336ada13446bc5c04cec3eb (diff) | |
download | gcc-2d7b38df8e50a2c29bbc778a34c6ab6349178994.zip gcc-2d7b38df8e50a2c29bbc778a34c6ab6349178994.tar.gz gcc-2d7b38df8e50a2c29bbc778a34c6ab6349178994.tar.bz2 |
poly_int: store_bit_field bitrange
This patch changes the bitnum and bitsize arguments to
store_bit_field from unsigned HOST_WIDE_INTs to poly_uint64s.
The later part of store_bit_field_1 still needs to operate
on constant bit positions and sizes, so the patch splits
it out into a subfunction (store_integral_bit_field).
2017-12-20 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* expmed.h (store_bit_field): Take bitsize and bitnum as
poly_uint64s rather than unsigned HOST_WIDE_INTs.
* expmed.c (simple_mem_bitfield_p): Likewise. Add a parameter
that returns the byte size.
(store_bit_field_1): Take bitsize and bitnum as
poly_uint64s rather than unsigned HOST_WIDE_INTs. Update call
to simple_mem_bitfield_p. Split the part that can only handle
constant bitsize and bitnum out into...
(store_integral_bit_field): ...this new function.
(store_bit_field): Take bitsize and bitnum as poly_uint64s rather
than unsigned HOST_WIDE_INTs.
(extract_bit_field_1): Update call to simple_mem_bitfield_p.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r255877
Diffstat (limited to 'gcc/expmed.h')
-rw-r--r-- | gcc/expmed.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/expmed.h b/gcc/expmed.h index 69be076..2148e1b 100644 --- a/gcc/expmed.h +++ b/gcc/expmed.h @@ -718,8 +718,7 @@ extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx, rtx, int); #endif -extern void store_bit_field (rtx, unsigned HOST_WIDE_INT, - unsigned HOST_WIDE_INT, +extern void store_bit_field (rtx, poly_uint64, poly_uint64, unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT, machine_mode, rtx, bool); |