[40/77] Use scalar_int_mode for extraction_insn fields
authorRichard Sandiford <richard.sandiford@linaro.org>
Wed, 30 Aug 2017 11:14:59 +0000 (11:14 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 30 Aug 2017 11:14:59 +0000 (11:14 +0000)
commit5602f58c633e51b03b5f18bbd65924b4b842d075
treed8955268a1ac99ffbf94233ae93e5a60a4f5595a
parentae9270466ed530df375bcaf6b3d834dbef6e3965
[40/77] Use scalar_int_mode for extraction_insn fields

insv, extv and eztzv modify or read a field in a register or
memory.  The field always has a scalar integer mode, while the
register or memory either has a scalar integer mode or BLKmode.
The mode of the bit position is also a scalar integer.

This patch uses the type system to make that explicit.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* optabs-query.h (extraction_insn::struct_mode): Change type to
opt_scalar_int_mode and update comment.
(extraction_insn::field_mode): Change type to scalar_int_mode.
(extraction_insn::pos_mode): Likewise.
* combine.c (make_extraction): Update accordingly.
* optabs-query.c (get_traditional_extraction_insn): Likewise.
(get_optab_extraction_insn): Likewise.
* recog.c (simplify_while_replacing): Likewise.
* expmed.c (narrow_bit_field_mem): Change the type of the mode
parameter to opt_scalar_int_mode.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251492
gcc/ChangeLog
gcc/combine.c
gcc/expmed.c
gcc/optabs-query.c
gcc/optabs-query.h
gcc/recog.c