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