diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2001-03-07 20:28:19 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2001-03-07 20:28:19 +0000 |
commit | c874ab1193089e2de87c7193f5e264719d10ebb1 (patch) | |
tree | 774f84f647b157e3598dd84baefe2616d3fc9dea /gcc | |
parent | de6c59795844f185e1079034b9fa777fbc12ef5a (diff) | |
download | gcc-c874ab1193089e2de87c7193f5e264719d10ebb1.zip gcc-c874ab1193089e2de87c7193f5e264719d10ebb1.tar.gz gcc-c874ab1193089e2de87c7193f5e264719d10ebb1.tar.bz2 |
a29k.c (print_operand): Free a29k_last_prologue_insn after its emitted.
2001-03-07 Andrew MacLeod <amacleod@redhat.com>
* config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn
after its emitted.
(output_prologue): Use xmalloc not oballoc.
(output_epilog): Free a29k_first_epilogue_insn when finished.
* confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand.
From-SVN: r40301
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/a29k/a29k.c | 11 | ||||
-rw-r--r-- | gcc/config/a29k/a29k.h | 1 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c24116e..1247f16 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2001-03-07 Andrew MacLeod <amacleod@redhat.com> + + * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn + after its emitted. + (output_prologue): Use xmalloc not oballoc. + (output_epilog): Free a29k_first_epilogue_insn when finished. + * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand. + 2001-03-07 Brad Lucier <lucier@math.purdue.edu> * builtins.c (expand_builtin_mathfn): Check diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c index 5a87e94..a895f44 100644 --- a/gcc/config/a29k/a29k.c +++ b/gcc/config/a29k/a29k.c @@ -1082,6 +1082,7 @@ print_operand (file, x, code) else if (a29k_last_prologue_insn) { fprintf (file, "\n\t%s", a29k_last_prologue_insn); + free (a29k_last_prologue_insn); a29k_last_prologue_insn = 0; } else if (optimize && flag_delayed_branch @@ -1105,6 +1106,7 @@ print_operand (file, x, code) if (a29k_last_prologue_insn) { fprintf (file, "\n\t%s", a29k_last_prologue_insn); + free (a29k_last_prologue_insn); a29k_last_prologue_insn = 0; } else if (GET_CODE (x) == SYMBOL_REF @@ -1159,6 +1161,7 @@ print_operand (file, x, code) if (a29k_last_prologue_insn) { fprintf (file, "\n\t%s", a29k_last_prologue_insn); + free (a29k_last_prologue_insn); a29k_last_prologue_insn = 0; } else @@ -1387,7 +1390,7 @@ output_prolog (file, size) if (num_delay_slots (insn) > 0) { - a29k_last_prologue_insn = (char *) oballoc (100); + a29k_last_prologue_insn = (char *) xmalloc (100); sprintf (a29k_last_prologue_insn, "add lr1,gr1,%d", i); break; } @@ -1404,7 +1407,7 @@ output_prolog (file, size) if (size == 0 && a29k_regstack_size == 0 && ! frame_pointer_needed) a29k_first_epilogue_insn = 0; else - a29k_first_epilogue_insn = (char *) oballoc (100); + a29k_first_epilogue_insn = (char *) xmalloc (100); if (frame_pointer_needed) sprintf (a29k_first_epilogue_insn, "sll %s,%s,0", @@ -1547,4 +1550,8 @@ output_epilog (file, size) file, 1, -2, 1); else fprintf (file, "\tnop\n"); + + if (a29k_first_epilogue_insn) + free (a29k_first_epilogue_insn); + a29k_first_epilogue_insn = 0; } diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h index 12c6526..3ee8bf7 100644 --- a/gcc/config/a29k/a29k.h +++ b/gcc/config/a29k/a29k.h @@ -1635,7 +1635,6 @@ extern int a29k_debug_reg_map[]; {"cint_16_operand", {CONST_INT}}, \ {"long_const_operand", {CONST_INT, CONST, CONST_DOUBLE, \ LABEL_REF, SYMBOL_REF}}, \ - {"shift_constant_operand", {CONST_INT, ASHIFT}}, \ {"const_0_operand", {CONST_INT, ASHIFT}}, \ {"const_8_operand", {CONST_INT, ASHIFT}}, \ {"const_16_operand", {CONST_INT, ASHIFT}}, \ |