This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r275821 - in /branches/ibm/pcrel-trunk/gcc: Cha...
- From: meissner at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Tue, 17 Sep 2019 22:24:47 -0000
- Subject: r275821 - in /branches/ibm/pcrel-trunk/gcc: Cha...
Author: meissner
Date: Tue Sep 17 22:24:47 2019
New Revision: 275821
URL: https://gcc.gnu.org/viewcvs?rev=275821&root=gcc&view=rev
Log:
Enable prefixed load/store on all types.
2019-09-17 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/predicates.md (non_prefixed_mem_operand): New
predicate.
* config/rs6000/rs6000-protos.h (make_memory_non_prefixed): New
declaration.
* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Add
temporary check for pc-relative addresses.
(quad_address_p): Add support for prefixed addresses.
(mem_operand_gpr): Add support for prefixed addresses. Use
SIGNED_16BIT_OFFSET_EXTRA_P to validate 16-bit address.
(mem_operand_ds_form): Add support for prefixed addresses. Use
SIGNED_16BIT_OFFSET_EXTRA_P to validate 16-bit address.
(rs6000_legitimate_offset_address_p): Add support for prefixed
addresses.
(rs6000_legitimate_address_p): Add support for prefixed
addresses.
(rs6000_mode_dependent_address): Add support for prefixed
addresses.
(rs6000_num_insns): New helper function.
(rs6000_insn_cost): Don't count prefixed instructions as being
more expensive that non-prefixed instructions due to the length
being bigger.
(make_memory_non_prefixed): New function.
* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Add support for
prefixed addresses.
(movtd_64bit_nodm): Add support for prefixed addresses.
(stack_protect_setdi): Make sure the addresses are not prefixed
during expansion. Allow using indexed loads and stores.
(stack_protect_testdi): Make sure the addresses are not prefixed
during expansion. Allow using indexed loads and stores.
* config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for
prefixed addresses.
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-protos.h
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.c
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.md
branches/ibm/pcrel-trunk/gcc/config/rs6000/vsx.md