* config/m32c/shift.md: Rewrite: Allow arbitrary operands for
shift counts, separate SI shifts for m32c vs m16c, pass shift type so that constant shifts can be split. * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6. (m32c_valid_pointer_mode): Make static. (shift_gen_func_for): New. (m32c_prepare_shift): Use it. Split large const shifts into multiple shifts. * config/m32c/predicates.md (shiftcount_operand): Allow more general operands. (longshiftcount_operand): New. * doc/md.texi (Machine Constraints): Document In6. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109661 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/ChangeLog 15 additions, 0 deletionsgcc/ChangeLog
- gcc/config/m32c/m32c.c 51 additions, 11 deletionsgcc/config/m32c/m32c.c
- gcc/config/m32c/predicates.md 5 additions, 1 deletiongcc/config/m32c/predicates.md
- gcc/config/m32c/shift.md 90 additions, 47 deletionsgcc/config/m32c/shift.md
- gcc/doc/md.texi 2 additions, 2 deletionsgcc/doc/md.texi
Loading
Please register or sign in to comment