aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-08-02 21:24:54 +0000
committerJim Wilson <wilson@tuliptree.org>2000-08-02 21:24:54 +0000
commit3d56ab850cf81361423699ed8d78c40199d22862 (patch)
tree5a84e31d0909eb00794cb5865f447bf7841b9d18 /gas
parent63266560e98843b391a571290bc6d5dfb788d0f5 (diff)
downloadgdb-3d56ab850cf81361423699ed8d78c40199d22862.zip
gdb-3d56ab850cf81361423699ed8d78c40199d22862.tar.gz
gdb-3d56ab850cf81361423699ed8d78c40199d22862.tar.bz2
Fix memory leaks for IA-64 opcode idescs.
gas/ * config/tc-ia64.c (emit_one_bundle): Call ia64_free_opcode before ia64_find_opcode. (md_assemble): Likewise. opcodes/ * ia64-dis.c (print_insn_ia64): Call ia64_free_opcode at end.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ia64.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 57f6fde..be071af 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2000-08-02 Jim Wilson <wilson@cygnus.com>
+
+ * config/tc-ia64.c (emit_one_bundle): Call ia64_free_opcode
+ before ia64_find_opcode.
+ (md_assemble): Likewise.
+
2000-08-01 Nick Clifton <nickc@cygnus.com>
* config/tc-arm.c (do_mrs): Fix skip fo 'cpsr_all' flag.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index abcfe63..c704cc6 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -5390,6 +5390,7 @@ emit_one_bundle ()
as_fatal ("emit_one_bundle: unexpected dynamic op");
sprintf (mnemonic, "%s.%c", idesc->name, "?imbf??"[insn_unit]);
+ ia64_free_opcode (idesc);
md.slot[curr].idesc = idesc = ia64_find_opcode (mnemonic);
#if 0
know (!idesc->next); /* no resolved dynamic ops have collisions */
@@ -8493,6 +8494,7 @@ md_assemble (str)
mnemonic = "addl";
else
mnemonic = "adds";
+ ia64_free_opcode (idesc);
idesc = ia64_find_opcode (mnemonic);
#if 0
know (!idesc->next);
@@ -8516,6 +8518,7 @@ md_assemble (str)
mnemonic = "mov.i";
else
mnemonic = "mov.m";
+ ia64_free_opcode (idesc);
idesc = ia64_find_opcode (mnemonic);
while (idesc != NULL
&& (idesc->operands[0] != opnd1