This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r273778 - in /branches/ibm/pcrel-trunk/gcc: Cha...


Author: meissner
Date: Wed Jul 24 23:48:54 2019
New Revision: 273778

URL: https://gcc.gnu.org/viewcvs?rev=273778&root=gcc&view=rev
Log:
Start adding support for prefixed addresses.

2019-07-24  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (lwa_operand): If we have prefixed
	addresses, allow sign extend SImode to have odd offsets.
	(pcrel_address): Rewrite to use addr_validate_p.
	(pcrel_external_address): Rewrite to use addr_validate_p.
	(pcrel_external_mem_operand): Rewrite to use addr_validate_p.
	* config/rs6000/rs6000-protos.h (addr_validate_info): New
	structure for addr_validate_p to return information.
	(ADDR_VALIDATE_REG_SINGLE): New mask for addr_validate_p.
	(ADDR_VALIDATE_REG_16BIT): New mask for addr_validate_p.
	(ADDR_VALIDATE_REG_34BIT): New mask for addr_validate_p.
	(ADDR_VALIDATE_REG_PCREL_LOCAL): New mask for addr_validate_p.
	(ADDR_VALIDATE_REG_PCREL_EXT): New mask for addr_validate_p.
	(addr_validate_p): New declaration.
	* config/rs6000/rs6000.c (mode_supports_prefixed_address_p): Move
	higher in the file.
	(quad_address_p): Add checks to see if we can use prefixed
	addresses without worrying about DQ alignment constraints.
	(mem_operand_gpr): Add checks to see if we can use prefixed
	addresses without worrying about DS alignment constraints.
	(mem_operand_ds_form): Add checks to see if we can use prefixed
	addresses without worrying about DQ alignment constraints.
	(print_operand_address): Use addr_validate_p to detect pc-relative
	addresses, and to crack them into the symbol and offset.
	(addr_validate_p): New function to validate addresses and
	optionally return the cracked information.
	(rs6000_prefixed_address_mode_p): Rewrite to use addr_validate_p.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]