OSDN Git Service

* config/mn10300/mn10300.c: Include tm-constrs.h.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Feb 2011 17:09:39 +0000 (17:09 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Feb 2011 17:09:39 +0000 (17:09 +0000)
commite7076c2150f2e397c0ecd8398350f818a2928e29
tree060852815ff3bf81b7fef60acee53e79f440a99b
parent2e7f8af9e6363e9c68905cfc38526719a187fad5
* config/mn10300/mn10300.c: Include tm-constrs.h.
(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
gcc/ChangeLog
gcc/config/mn10300/constraints.md
gcc/config/mn10300/mn10300.c
gcc/config/mn10300/mn10300.md
gcc/config/mn10300/predicates.md