[PATCH 1/3] opcodes: support insn endianness in cgen_cpu_open

Alan Modra amodra@gmail.com
Mon Jun 1 07:19:59 GMT 2020


On Fri, May 29, 2020 at 07:08:18PM +0200, Jose E. Marchesi via Binutils wrote:
> include/ChangeLog:
> 
> 2020-05-29  Jose E. Marchesi  <jemarch@gnu.org>
> 
> 	* opcode/cgen.h (enum cgen_cpu_open_arg): New value
> 	CGEN_CPU_OPEN_INSN_ENDIAN.
> 
> opcodes/ChangeLog:
> 
> 2020-05-29  Jose E. Marchesi  <jemarch@gnu.org>
> 
> 	* cgen-dis.in (cpu_desc_list): New field `insn_endian'.
> 	(print_insn_): Handle instruction endian.
> 	* bpf-dis.c: Regenerate.
> 	* bpf-desc.c: Regenerate.
> 	* epiphany-dis.c: Likewise.
> 	* epiphany-desc.c: Likewise.
> 	* fr30-dis.c: Likewise.
> 	* fr30-desc.c: Likewise.
> 	* frv-dis.c: Likewise.
> 	* frv-desc.c: Likewise.
> 	* ip2k-dis.c: Likewise.
> 	* ip2k-desc.c: Likewise.
> 	* iq2000-dis.c: Likewise.
> 	* iq2000-desc.c: Likewise.
> 	* lm32-dis.c: Likewise.
> 	* lm32-desc.c: Likewise.
> 	* m32c-dis.c: Likewise.
> 	* m32c-desc.c: Likewise.
> 	* m32r-dis.c: Likewise.
> 	* m32r-desc.c: Likewise.
> 	* mep-dis.c: Likewise.
> 	* mep-desc.c: Likewise.
> 	* mt-dis.c: Likewise.
> 	* mt-desc.c: Likewise.
> 	* or1k-dis.c: Likewise.
> 	* or1k-desc.c: Likewise.
> 	* xc16x-dis.c: Likewise.
> 	* xc16x-desc.c: Likewise.
> 	* xstormy16-dis.c: Likewise.
> 	* xstormy16-desc.c: Likewise.
> 
> binutils/ChangeLog:
> 
> 2020-05-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
> 
> 	* objdump.c (disassemble_data): Set disasm_info.endian_code to
> 	disasm_info.endian after the later is initialized to the
> 	endianness reported by BFD.

OK, except s/later/latter/ above, and..

> @@ -2269,10 +2271,18 @@ epiphany_cgen_cpu_close (CGEN_CPU_DESC cd)
>  	  regfree (CGEN_INSN_RX (insns));
>      }
>  
> -  free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
> -  free ((CGEN_INSN *) cd->insn_table.init_entries);
> -  free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
> -  free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
> +  if (cd->macro_insn_table.init_entries)
> +    free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
> +
> +  if (cd->insn_table.init_entries)
> +    free ((CGEN_INSN *) cd->insn_table.init_entries);
> +
> +  if (cd->hw_table.entries)
> +    free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
> +
> +  if (cd->operand_table.entries)
> +    free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
> +
>    free (cd);
>  }
>  

Please ensure your copy of cgen is up to date before regenerating.

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list