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.
This commit is contained in:
Jim Wilson 2000-08-02 21:24:54 +00:00
parent 63266560e9
commit 3d56ab850c
4 changed files with 14 additions and 0 deletions

View File

@ -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.

View File

@ -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

View File

@ -1,3 +1,7 @@
2000-08-02 Jim Wilson <wilson@cygnus.com>
* ia64-dis.c (print_insn_ia64): Call ia64_free_opcode at end.
2000-07-28 Ben Elliston <bje@redhat.com>
* Makefile.am (CGEN, CGENDEPS, CGENDIR, CGENFLAGS): New.

View File

@ -254,6 +254,7 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
(*info->fprintf_func) (info->stream, ";;");
done:
ia64_free_opcode (idesc);
if (slotnum == 2)
retval += 16 - 3*slot_multiplier;
return retval;