summaryrefslogtreecommitdiffstats
path: root/gcc/config/m32c
Commit message (Collapse)AuthorAgeFilesLines
...
* * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16cdj2006-04-061-1/+1
| | | | | | | vs m32c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112730 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/cond.md: Set condition flags properly throughout.dj2006-03-3112-35/+344
| | | | | | | | | | | | | | | | | | | | | | | | | * config/m32c/minmax.md: Likewise. * config/m32c/prologue.md: Likewise. * config/m32c/bitops.md: Likewise. * config/m32c/muldiv.md: Likewise. * config/m32c/mov.md: Likewise. * config/m32c/addsub.md: Likewise. * config/m32c/m32c.md: Likewise. * config/m32c/jump.md: Likewise. * config/m32c/shift.md: Likewise. * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to conditionally output the pattern for this. * config/m32c/m32c.c (flags_needed_for_conditional): New. (m32c_compare_redundant): New. (m32c_output_compare): New. * config/m32c/m32c-protos.h (m32c_output_compare): New. * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber dest, not src. Allow other 4-byte modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112591 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbersdj2006-03-101-5/+9
| | | | | | | | start at zero. (m32c_expand_insv): Fix test for an AND mask. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111937 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/addsub.md (addqi3): Disparage a0/a1.dj2006-03-0912-172/+1370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (addpsi3): Expand to include memory operands. Remove reload-specific splits. * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New. (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New. (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New. (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders. (shift1_qi, shift1_hi, insv): New. * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove. (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed, cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc, cond_to_int): New. * config/m32c/m32c-protos.h: Update as needed. * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1. Fail for unrecognized R* constraints. (m32c_cannot_change_mode_class): Be more picky about pseudos. (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00. (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)). Add Sp constraint. (m32c_init_libfuncs): New. (m32c_legitimate_address_p): Add debug wrapper. (m32c_rtx_costs): New. (m32c_address_cost): New. (conversions): Add 'B' prefix. (m32c_print_operand): 'h' and 'H' pick lower and upper halves of operands, or word regnames for QI operands. 'B' prints bit position. (m32c_expand_setmemhi): New. (m32c_expand_movmemhi): New. (m32c_expand_movstr): New. (m32c_expand_cmpstr): New. (m32c_prepare_shift): Shift counts are limited to 16 bits at a time. (m32c_expand_neg_mulpsi3): Handle non-ints. (m32c_cmp_flg_0): New. (m32c_expand_movcc): New. (m32c_expand_insv): New. (m32c_scc_pattern): New. * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take a0/a1 out of SIregs. (STORE_FLAG_VALUE): New. * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and code macros. (no_insn): New. * config/m32c/mov.md: Make constraints more liberal. (zero_extendqihi2): Optimize r0/r1 case. * config/m32c/muldiv.md (mulpsi3): Check for intvals. * config/m32c/predicates.md (m32c_any_operand): New. (m32c_nonimmediate_operand): New. (m32c_hl_operand): New. (m32c_r3_operand): New. (ap_operand): New. (ma_operand): New. (memsym_operand): New. (memimmed_operand): New. (a_qi_operand): New. (m32c_eqne_operator): New. (m32c_1bit8_operand): New. (m32c_1bit16_operand): New. (m32c_1mask8_operand): New. (m32c_1mask16_operand): New. * config/m32c/blkmov.md: New file. * config/m32c/t-m32c (MD_FILES): Add blkmov. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111859 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.dj2006-01-201-0/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110003 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal withdj2006-01-191-4/+64
| | | | | | | the 16 bit shift limit of the m16c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109987 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/shift.md: Rewrite: Allow arbitrary operands fordj2006-01-133-59/+146
| | | | | | | | | | | | | | | | | 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
* * config/m32c/addsub.md (addhi3): Add two more alternatives, fordj2006-01-124-11/+87
| | | | | | | | | | | | | | | | | | | mova with fb, and for fb+0 -> An. * config/m32c/mov.md (peephole2): Fix enabling logic. * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP, FINI_ARRAY_SECTION_ASM_OP): Define. * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary variable. (m32c_legitimize_reload_address): New logic to reload FB to An. (m32c_output_reg_push): Add newline. (m32c_output_reg_pop): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109648 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/predicates.md (m32c_psi_scale): New.dj2005-12-163-3/+45
| | | | | | | | * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New. * config/m32c/muldiv.md (mulpsi3): Support negative constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108620 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (pragma_lex): Rename from c_lex.rth2005-11-261-2/+2
| | | | | | | | | | | | | | | * c-pch.c: Update for pragma_lex rename. * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise. * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise. * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise. * config/sol2-c.c, config/v850/v850-c.c: Likewise. * doc/tm.texi: Likewise. cp/ * lex.c: Update for pragma_lex rename. * parser.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107544 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,kazu2005-11-051-1/+1
| | | | | | | | | | | config/ms1/ms1.h, config/rs6000/predicates.md, config/s390/s390.c, params.def, postreload-gcse.c, tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c, tree-vrp.c, tree.c: Fix comment typos. * doc/invoke.texi: Fix typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106532 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insnsdj2005-10-171-5/+2
| | | | | | | as frame related. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105511 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.dj2005-09-151-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104328 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspellingdj2005-09-061-1/+1
| | | | | | | of macro. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103928 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debugdj2005-09-021-1/+0
| | | | | | | fprintf. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103761 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/m32c.c (m32c_valid_pointer_mode): New.dj2005-09-011-0/+26
| | | | | | | (m32c_asm_integer): Add support for 32 bit pointers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103715 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/m32c/mov.md (movqi_op): Immediates can't be moved todj2005-08-162-4/+11
| | | | | | | | | | the stack. (movsi_splittable): Allow, but split, moves to the stack. * config/m32c/m32c.c (m32c_split_move): Always split moves to the stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103140 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,kazu2005-07-262-2/+2
| | | | | | | | | | tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix comment typos. * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102385 138bc75d-0d04-0410-961f-82ee72b054a4
* * config.gcc: Add m32c-elf support.dj2005-07-2021-0/+6295
* doc/contrib.texi: Mention m32c. * doc/extend.texi: Document m32c extensions. * doc/install.texi: Mention m32c. * doc/invoke.texi: Document m32c options. * doc/md.texi: Document m32c constraints. * config/m32c/addsub.md: New file. * config/m32c/bitops.md: New file. * config/m32c/cond.md: New file. * config/m32c/jump.md: New file. * config/m32c/m32c-lib1.S: New file. * config/m32c/m32c-lib2.c: New file. * config/m32c/m32c-modes.def: New file. * config/m32c/m32c-pragma.c: New file. * config/m32c/m32c-protos.h: New file. * config/m32c/m32c.abi: New file. * config/m32c/m32c.c: New file. * config/m32c/m32c.h: New file. * config/m32c/m32c.md: New file. * config/m32c/m32c.opt: New file. * config/m32c/minmax.md: New file. * config/m32c/mov.md: New file. * config/m32c/muldiv.md: New file. * config/m32c/predicates.md: New file. * config/m32c/prologue.md: New file. * config/m32c/shift.md: New file. * config/m32c/t-m32c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102207 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud