r273811 - in /branches/ibm/pcrel-trunk/gcc: Cha...
meissner@gcc.gnu.org
meissner@gcc.gnu.org
Thu Jul 25 18:39:00 GMT 2019
Author: meissner
Date: Thu Jul 25 18:39:14 2019
New Revision: 273811
URL: https://gcc.gnu.org/viewcvs?rev=273811&root=gcc&view=rev
Log:
Add support for using prefixed addressing mode on DImode.
2019-07-25 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/predicates.md (add_operand): Add support for
PADDI.
(non_add_cint_operand): Add support for PADDI.
* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add field to
say whether a mode supports using prefixed memory instructions.
(mode_supports_prefixed_address_p): Make static inline. Use the
prefixed_memory_p to say whether a give mode supports prefixed
memory instructions.
(rs6000_hard_regno_mode_ok_uncached): Allow for larger vector
types in the future.
(rs6000_init_hard_regno_mode_ok): Set VOIDmode and DImode as the
modes that support prefixed memory.
(num_insns_constant_gpr): Use SIGNED_16BIT_OFFSET_P macro. If we
support prefixed memory instructions, know that we can load up
34-bit constants directly in one instruction.
(quad_address_p): Allow for larger vector types in the future.
(rs6000_legitimate_offset_address_p): Add support for larger
offsets if we have prefixed addressing.
(rs6000_legitimate_address_p): Add support for prefixed
addresses. Do not allow update forms of addressing if the offset
is larger than 16 bits, since prefixed memory instructions don't
have update addressing formats.
(rs6000_mode_dependent_address): Add support for 34 bit offsets if
we have prefixed addressing.
(rs6000_rtx_costs): Allow adds with 34-bit values which show up if
we have prefixed addressing.
(rs6000_num_insns): New function.
(rs6000_insn_cost): When using the instruction length, count
prefixed instructions as one instruction instead of three.
* config/rs6000/rs6000.md (add<mode>, GPR iterator): Add support
for the PADDI instruction if we have prefixed addressing.
(movdi_internal64): Add support to load up 34 bit constants if we
have prefixed addressing.
Modified:
branches/ibm/pcrel-trunk/gcc/ChangeLog.meissner
branches/ibm/pcrel-trunk/gcc/config/rs6000/predicates.md
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.c
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.md
More information about the Gcc-cvs
mailing list