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

meissner@gcc.gnu.org meissner@gcc.gnu.org
Tue Sep 17 21:35:00 GMT 2019


Author: meissner
Date: Tue Sep 17 21:35:52 2019
New Revision: 275816

URL: https://gcc.gnu.org/viewcvs?rev=275816&root=gcc&view=rev
Log:
Add support for prefixed insns.

2019-09-17  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000-protos.h (prefixed_load_p): New
	declaration.
	(prefixed_store_p): New declaration.
	(prefixed_paddi_p): New declaration.
	(rs6000_asm_output_opcode): New declaration.
	(rs6000_final_prescan_insn): Update calling signature.
	* config/rs6000/rs6000.c (rs6000_emit_move): Support loading
	pc-relative addresses.
	(address_is_prefixed): New helper function.
	(reg_to_non_prefixed): New function to identify what the
	non-prefixed memory instruction format is for a register.
	(prefixed_load_p): New function to identify prefixed loads.
	(prefixed_store_p): New function to identify prefixed stores.
	(prefixed_paddi_p): New function to identify prefixed load
	immediates.
	(next_insn_prefixed_p): New static state variable.
	(rs6000_final_prescan_insn): New function to determine if an insn
	uses a prefixed instruction.
	(rs6000_asm_output_opcode): New function to emit 'p' in front of a
	prefixed instruction.
	* config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
	(ASM_OUTPUT_OPCODE): New target hook.
	* config/rs6000/rs6000.md (prefixed): New insn attribute for
	prefixed instructions.
	(prefixed_length): New insn attribute for the size of prefixed
	instructions.
	(non_prefixed_length): New insn attribute for the size of
	non-prefixed instructions.
	(pcrel_local_addr): New insn to load up a local pc-relative
	address.
	(pcrel_extern_addr): New insn to load up an external pc-relative
	address.


Modified:
    branches/ibm/pcrel-trunk/gcc/ChangeLog.meissner
    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.h
    branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.md



More information about the Gcc-cvs mailing list