-
- Downloads
bfin-protos.h (bfin_dsp_memref_p): Declare.
* config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare. * config/bfin/bfin.c (bfin_dsp_memref_p): New function. (bfin_valid_reg_p): Test for pseudos explicitly and use only REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all callers changed. * config/bfin/bfin.h (PREG_P): Use P_REGNO_P. (IREG_P, P_REGNO_P, I_REGNO_P): New macros. (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS. (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete macros. (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS, REGNO_MODE_CODE_OK_FOR_BASE_P): New macros. (REGNO_REG_CLASS): ARGP is in PREGS. * config/bfin/bfin.md (movhi_insn): Allow for addresses containing IREGS. (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split to deal with those addresses. * addresses.h: New file. * caller-save.c: Include "addresses.h". (init_caller_save): Use new base_reg_class function. * rtl-factoring.c: Include "addresses.h". (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1. * recog.c: Include "addresses.h". (preprocess_constraints): Use new base_reg_class function. * regrename.c: Include "addresses.h". (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class functions. Keep track of a new var INDEX_CODE to compute valid classes. (replace_oldest_value_addr): Likewise. (replace_oldest_value_mem): Use base_reg_class. * reload.c: Include "addresses.h". (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros. (find_reloads): Use new base_reg_class function. (find_reloads_address): Likewise; also use regno_ok_for_base_p. (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE; all callers and prototype changed. * reload1.c: Include "addresses.h". (maybe_fix_stack_asms): Use base_reg_class. * regclass.c: Include "addresses.h". (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions. (init_reg_autoinc): Use new base_reg_class function. (record_reg_classes): Likewise. (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE, OUTER_CODE and INDEX_CODE. All callers and prototype changed. Use new args to compute necessary class. * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o, regrename.o, rtl-factoring.o): Update dependencies. * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document. (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, REG_OK_FOR_INDEX_P): Delete documentation. From-SVN: r112248
Showing
- gcc/ChangeLog 56 additions, 0 deletionsgcc/ChangeLog
- gcc/Makefile.in 7 additions, 6 deletionsgcc/Makefile.in
- gcc/addresses.h 81 additions, 0 deletionsgcc/addresses.h
- gcc/caller-save.c 2 additions, 1 deletiongcc/caller-save.c
- gcc/config/bfin/bfin-protos.h 1 addition, 0 deletionsgcc/config/bfin/bfin-protos.h
- gcc/config/bfin/bfin.c 23 additions, 7 deletionsgcc/config/bfin/bfin.c
- gcc/config/bfin/bfin.h 29 additions, 10 deletionsgcc/config/bfin/bfin.h
- gcc/config/bfin/bfin.md 32 additions, 9 deletionsgcc/config/bfin/bfin.md
- gcc/defaults.h 0 additions, 34 deletionsgcc/defaults.h
- gcc/doc/tm.texi 27 additions, 43 deletionsgcc/doc/tm.texi
- gcc/recog.c 4 additions, 2 deletionsgcc/recog.c
- gcc/regclass.c 89 additions, 51 deletionsgcc/regclass.c
- gcc/regrename.c 55 additions, 33 deletionsgcc/regrename.c
- gcc/reload.c 134 additions, 95 deletionsgcc/reload.c
- gcc/reload1.c 3 additions, 2 deletionsgcc/reload1.c
- gcc/rtl-factoring.c 4 additions, 2 deletionsgcc/rtl-factoring.c
Loading
Please register or sign in to comment