diff options
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca7b57f..bf4c0e7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-01-16 Stephane Carrez <stcarrez@nerim.fr> + + * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to + allocate 4-bytes of locals on 68HC11. + (expand_epilogue): Likewise. + (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers. + 2003-01-15 Stephane Carrez <stcarrez@nerim.fr> * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index cb9593f..e7626a2 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -1657,7 +1657,7 @@ expand_prologue () emit_insn (gen_addhi3 (stack_pointer_rtx, stack_pointer_rtx, GEN_INT (-size))); } - else if (size > 8) + else if ((!optimize_size && size > 8) || (optimize_size && size > 10)) { rtx insn; @@ -1745,7 +1745,7 @@ expand_epilogue () emit_insn (gen_addhi3 (stack_pointer_rtx, stack_pointer_rtx, GEN_INT (size))); } - else if (size > 8) + else if ((!optimize_size && size > 8) || (optimize_size && size > 10)) { rtx insn; @@ -5177,7 +5177,7 @@ m68hc11_memory_move_cost (mode, class, in) else { if (GET_MODE_SIZE (mode) <= 2) - return COSTS_N_INSNS (2); + return COSTS_N_INSNS (3); else return COSTS_N_INSNS (4); } |
