mn10300.c: Include tm-constrs.h.
authorNick Clifton <nickc@redhat.com>
Tue, 15 Feb 2011 17:09:39 +0000 (17:09 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Tue, 15 Feb 2011 17:09:39 +0000 (17:09 +0000)
commita45d420abf5125d73bfdc2d2af3753b810c349eb
tree060852815ff3bf81b7fef60acee53e79f440a99b
parent8a73faf108721a76f55441f6d2a3937fff901b36
mn10300.c: Include tm-constrs.h.

* 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.

From-SVN: r170182
gcc/ChangeLog
gcc/config/mn10300/constraints.md
gcc/config/mn10300/mn10300.c
gcc/config/mn10300/mn10300.md
gcc/config/mn10300/predicates.md