• nickc's avatar
    * config/mn10300/mn10300.c: Include tm-constrs.h. · e7076c21
    nickc authored
    	(struct liw_data): New data structure describing an LIW candidate
    	instruction.
    	(extract_bundle): Use struct liw_data.  Allow small integer
    	operands for some instructions.
    	(check_liw_constraints): Use struct liw_data.  Remove swapped
    	parameter.  Add comments describing the checks.  Fix bug when
    	assigning the source of liw1 to the source of liw2.
    	(liw_candidate): Delete.  Code moved into extract_bundle.
    	(mn10300_bundle_liw): Use struct liw_data.  Check constraints
    	before swapping.
    	* config/mn10300/predicates.md (liw_operand): New predicate.
    	Allows registers and small integer constants.
    	* config/mn10300/constraints.md (O): New constraint.  Accetps
    	integers in the range -8 to +7 inclusive.
    	* config/mn10300/mn10300.md (movesi_internal): Add an alternative
    	for moving a small integer into a register.  Give this alternative
    	LIW attributes.
    	(addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
    	(ashlsi3): Likewise, plus give LIW attributes to the alternatives
    	using the J,K,L and M constraints,
    	(liw): Remove SI mode on second operands to allow for HI and QI
    	mode values.
    	(cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
    	instruction.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170182 138bc75d-0d04-0410-961f-82ee72b054a4
    e7076c21
ChangeLog 126 KB