r275618 - in /branches/ibm/pcrel-trunk/gcc: Cha...
meissner@gcc.gnu.org
meissner@gcc.gnu.org
Wed Sep 11 00:02:00 GMT 2019
Author: meissner
Date: Wed Sep 11 00:02:34 2019
New Revision: 275618
URL: https://gcc.gnu.org/viewcvs?rev=275618&root=gcc&view=rev
Log:
Add basic prefixed and pc-relative support.
2019-09-10 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_adjust_vec_address): Optimize
pc-relative addresses involving constant element numbers. Add an
abort for pc-relative addresses with non-constant element
numbers.
(quad_address_p): Do not restrict the offset to DQ-form
instructions if we have prefixed addresses.
(mem_operand_gpr): Do not restrict the offset to DS-form
instructions if we have prefixed addresses. Use the
SIGNED_16BIT_OFFSET_EXTRA_P macro.
(mem_operand_ds_form): Do not restrict the offset to DS-form
instructions if we have prefixed addresses. Use the
SIGNED_16BIT_OFFSET_EXTRA_P macro.
(rs6000_legitimate_offset_address_p): Add support for prefixed
addresses with 34-bit offsets.
(rs6000_legitimate_address_p): Add support for prefixed
addresses.
(rs6000_mode_dependent_address): Add support for prefixed
addresses.
(rs6000_num_insns): New helper function for prefixed
instructions.
(rs6000_insn_cost): Count prefixed instructions like non-prefixed
instructions.
(make_memory_non_prefixed): New function.
* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Add prefixed
instruction support.
(movtd_64bit_nodm): Add prefixed instruction support.
(stack_protect_setdi): Rework to prevent prefixed memory addresses
from being generated.
(stack_protect_testdi): Rework to prevent prefixed memory
addresses from being generated.
* config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add prefixed memory
support.
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
More information about the Gcc-cvs
mailing list