Add support for the Infineon XC16X.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | 2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com> | ||||||
|  |             Anil Paranjape   <anilp1@kpitcummins.com> | ||||||
|  |             Shilin Shakti    <shilins@kpitcummins.com> | ||||||
|  |  | ||||||
|  | 	* dis-asm.h (print_insn_xc16c): New prototype. | ||||||
|  |  | ||||||
| 2006-02-06  Steve Ellcey  <sje@cup.hp.com> | 2006-02-06  Steve Ellcey  <sje@cup.hp.com> | ||||||
|  |  | ||||||
| 	* elf/ia64.h (SHF_IA_64_HP_TLS): New. | 	* elf/ia64.h (SHF_IA_64_HP_TLS): New. | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  |  | ||||||
|    Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 |    Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 | ||||||
|    Free Software Foundation, Inc. |    Free Software Foundation, Inc. | ||||||
|     |  | ||||||
|    This program is free software; you can redistribute it and/or modify |    This program is free software; you can redistribute it and/or modify | ||||||
|    it under the terms of the GNU General Public License as published by |    it under the terms of the GNU General Public License as published by | ||||||
|    the Free Software Foundation; either version 2, or (at your option) |    the Free Software Foundation; either version 2, or (at your option) | ||||||
| @@ -17,7 +17,7 @@ | |||||||
|    along with this program; if not, write to the Free Software |    along with this program; if not, write to the Free Software | ||||||
|    Foundation, Inc., 51 Franklin Street - Fifth Floor, |    Foundation, Inc., 51 Franklin Street - Fifth Floor, | ||||||
|    Boston, MA 02110-1301, USA. |    Boston, MA 02110-1301, USA. | ||||||
|     |  | ||||||
|    Written by Cygnus Support, 1993. |    Written by Cygnus Support, 1993. | ||||||
|  |  | ||||||
|    The opcode library (libopcodes.a) provides instruction decoders for |    The opcode library (libopcodes.a) provides instruction decoders for | ||||||
| @@ -48,7 +48,7 @@ enum dis_insn_type { | |||||||
|   dis_dref2			/* Two data references in instruction */ |   dis_dref2			/* Two data references in instruction */ | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* This struct is passed into the instruction decoding routine,  | /* This struct is passed into the instruction decoding routine, | ||||||
|    and is passed back out into each callback.  The various fields are used |    and is passed back out into each callback.  The various fields are used | ||||||
|    for conveying information from your main routine into your callbacks, |    for conveying information from your main routine into your callbacks, | ||||||
|    for passing information into the instruction decoders (such as the |    for passing information into the instruction decoders (such as the | ||||||
| @@ -136,7 +136,7 @@ typedef struct disassemble_info { | |||||||
|      displaying debugging outout.  */ |      displaying debugging outout.  */ | ||||||
|   bfd_boolean (* symbol_is_valid) |   bfd_boolean (* symbol_is_valid) | ||||||
|     (asymbol *, struct disassemble_info * info); |     (asymbol *, struct disassemble_info * info); | ||||||
|      |  | ||||||
|   /* These are for buffer_read_memory.  */ |   /* These are for buffer_read_memory.  */ | ||||||
|   bfd_byte *buffer; |   bfd_byte *buffer; | ||||||
|   bfd_vma buffer_vma; |   bfd_vma buffer_vma; | ||||||
| @@ -156,7 +156,7 @@ typedef struct disassemble_info { | |||||||
|   int bytes_per_chunk; |   int bytes_per_chunk; | ||||||
|   enum bfd_endian display_endian; |   enum bfd_endian display_endian; | ||||||
|  |  | ||||||
|   /* Number of octets per incremented target address  |   /* Number of octets per incremented target address | ||||||
|      Normally one, but some DSPs have byte sizes of 16 or 32 bits.  */ |      Normally one, but some DSPs have byte sizes of 16 or 32 bits.  */ | ||||||
|   unsigned int octets_per_byte; |   unsigned int octets_per_byte; | ||||||
|  |  | ||||||
| @@ -252,7 +252,7 @@ extern int print_insn_pj		(bfd_vma, disassemble_info *); | |||||||
| extern int print_insn_big_powerpc	(bfd_vma, disassemble_info *); | extern int print_insn_big_powerpc	(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *); | extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_rs6000		(bfd_vma, disassemble_info *); | extern int print_insn_rs6000		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_s390		(bfd_vma, disassemble_info *);  | extern int print_insn_s390		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_sh		(bfd_vma, disassemble_info *); | extern int print_insn_sh		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_tic30		(bfd_vma, disassemble_info *); | extern int print_insn_tic30		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_tic4x		(bfd_vma, disassemble_info *); | extern int print_insn_tic4x		(bfd_vma, disassemble_info *); | ||||||
| @@ -267,6 +267,7 @@ extern int print_insn_sh64		(bfd_vma, disassemble_info *); | |||||||
| extern int print_insn_sh64x_media	(bfd_vma, disassemble_info *); | extern int print_insn_sh64x_media	(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_frv		(bfd_vma, disassemble_info *); | extern int print_insn_frv		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_iq2000		(bfd_vma, disassemble_info *); | extern int print_insn_iq2000		(bfd_vma, disassemble_info *); | ||||||
|  | extern int print_insn_xc16x		(bfd_vma, disassemble_info *); | ||||||
| extern int print_insn_m32c	(bfd_vma, disassemble_info *); | extern int print_insn_m32c	(bfd_vma, disassemble_info *); | ||||||
|  |  | ||||||
| extern disassembler_ftype arc_get_disassembler (void *); | extern disassembler_ftype arc_get_disassembler (void *); | ||||||
| @@ -315,10 +316,10 @@ extern void generic_print_address | |||||||
| extern int generic_symbol_at_address | extern int generic_symbol_at_address | ||||||
|   (bfd_vma, struct disassemble_info *); |   (bfd_vma, struct disassemble_info *); | ||||||
|  |  | ||||||
| /* Also always true.  */   | /* Also always true.  */ | ||||||
| extern bfd_boolean generic_symbol_is_valid | extern bfd_boolean generic_symbol_is_valid | ||||||
|   (asymbol *, struct disassemble_info *); |   (asymbol *, struct disassemble_info *); | ||||||
|    |  | ||||||
| /* Method to initialize a disassemble_info struct.  This should be | /* Method to initialize a disassemble_info struct.  This should be | ||||||
|    called by all applications creating such a struct.  */ |    called by all applications creating such a struct.  */ | ||||||
| extern void init_disassemble_info (struct disassemble_info *info, void *stream, | extern void init_disassemble_info (struct disassemble_info *info, void *stream, | ||||||
|   | |||||||
| @@ -1,3 +1,11 @@ | |||||||
|  | 2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com> | ||||||
|  |             Anil Paranjape   <anilp1@kpitcummins.com> | ||||||
|  |             Shilin Shakti    <shilins@kpitcummins.com> | ||||||
|  |  | ||||||
|  | 	* common.h (EM_XC16X): New entry for xc16x cpu. | ||||||
|  | 	Sort other EM_* numbers into numerical order. | ||||||
|  | 	* xc16x.h: New file. | ||||||
|  |    	 | ||||||
| 2006-02-10  H.J. Lu  <hongjiu.lu@intel.com> | 2006-02-10  H.J. Lu  <hongjiu.lu@intel.com> | ||||||
|  |  | ||||||
| 	PR binutils/2258 | 	PR binutils/2258 | ||||||
|   | |||||||
| @@ -198,79 +198,80 @@ | |||||||
|    unofficial e_machine number should eventually ask registry@caldera.com for |    unofficial e_machine number should eventually ask registry@caldera.com for | ||||||
|    an officially blessed number to be added to the list above.	*/ |    an officially blessed number to be added to the list above.	*/ | ||||||
|  |  | ||||||
| #define EM_PJ_OLD      99	/* picoJava */ | /* Old version of Sparc v9, from before the ABI; | ||||||
|  |    This should be removed shortly.  */ | ||||||
| /* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */ | #define EM_OLD_SPARCV9		11 | ||||||
| #define EM_CYGNUS_POWERPC 0x9025 |  | ||||||
|  |  | ||||||
| /* Old version of Sparc v9, from before the ABI; this should be |  | ||||||
|    removed shortly.  */ |  | ||||||
| #define EM_OLD_SPARCV9	11 |  | ||||||
|  |  | ||||||
| /* Old version of PowerPC, this should be removed shortly. */ | /* Old version of PowerPC, this should be removed shortly. */ | ||||||
| #define EM_PPC_OLD	17 | #define EM_PPC_OLD		17 | ||||||
|  |  | ||||||
| /* (Deprecated) Temporary number for the OpenRISC processor.  */ | /* picoJava */ | ||||||
| #define EM_OR32		0x8472 | #define EM_PJ_OLD      		99 | ||||||
|  |  | ||||||
| /* Renesas M32C and M16C.  */ | /* AVR magic number.  Written in the absense of an ABI.  */ | ||||||
| #define EM_M32C			0xFEB0 | #define EM_AVR_OLD		0x1057 | ||||||
|  |  | ||||||
| /* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */ | /* MSP430 magic number.  Written in the absense of everything.  */ | ||||||
| #define EM_CYGNUS_M32R	0x9041 | #define EM_MSP430_OLD		0x1059 | ||||||
|  |  | ||||||
| /* Alpha backend magic number.  Written in the absence of an ABI.  */ | /* Morpho MT.   Written in the absense of an ABI.  */ | ||||||
| #define EM_ALPHA	0x9026 | #define EM_MT                   0x2530 | ||||||
|  |  | ||||||
| /* old S/390 backend magic number. Written in the absence of an ABI.  */ |  | ||||||
| #define EM_S390_OLD	0xa390 |  | ||||||
|  |  | ||||||
| /* D10V backend magic number.  Written in the absence of an ABI.  */ |  | ||||||
| #define EM_CYGNUS_D10V	0x7650 |  | ||||||
|  |  | ||||||
| /* D30V backend magic number.  Written in the absence of an ABI.  */ |  | ||||||
| #define EM_CYGNUS_D30V	0x7676 |  | ||||||
|  |  | ||||||
| /* V850 backend magic number.  Written in the absense of an ABI.  */ |  | ||||||
| #define EM_CYGNUS_V850	0x9080 |  | ||||||
|  |  | ||||||
| /* mn10200 and mn10300 backend magic numbers. |  | ||||||
|    Written in the absense of an ABI.  */ |  | ||||||
| #define EM_CYGNUS_MN10200	0xdead |  | ||||||
| #define EM_CYGNUS_MN10300	0xbeef |  | ||||||
|  |  | ||||||
| /* FR30 magic number - no EABI available.  */ | /* FR30 magic number - no EABI available.  */ | ||||||
| #define EM_CYGNUS_FR30		0x3330 | #define EM_CYGNUS_FR30		0x3330 | ||||||
|  |  | ||||||
| /* AVR magic number | /* OpenRISC magic number.  Written in the absense of an ABI.  */ | ||||||
|    Written in the absense of an ABI.  */ |  | ||||||
| #define EM_AVR_OLD		0x1057 |  | ||||||
|  |  | ||||||
| /* OpenRISC magic number |  | ||||||
|    Written in the absense of an ABI.  */ |  | ||||||
| #define EM_OPENRISC_OLD		0x3426 | #define EM_OPENRISC_OLD		0x3426 | ||||||
|  |  | ||||||
| /* DLX magic number | /* DLX magic number.  Written in the absense of an ABI.  */ | ||||||
|    Written in the absense of an ABI.  */ |  | ||||||
| #define EM_DLX			0x5aa5 | #define EM_DLX			0x5aa5 | ||||||
|  |  | ||||||
| #define EM_XSTORMY16		0xad45 |  | ||||||
|  |  | ||||||
| /* FRV magic number - no EABI available??.  */ | /* FRV magic number - no EABI available??.  */ | ||||||
| #define EM_CYGNUS_FRV		0x5441 | #define EM_CYGNUS_FRV		0x5441 | ||||||
|  |  | ||||||
| /* Ubicom IP2xxx; no ABI */ | /* Infineon Technologies 16-bit microcontroller with C166-V2 core.  */ | ||||||
|  | #define EM_XC16X   		0x4688 | ||||||
|  |  | ||||||
|  | /* D10V backend magic number.  Written in the absence of an ABI.  */ | ||||||
|  | #define EM_CYGNUS_D10V		0x7650 | ||||||
|  |  | ||||||
|  | /* D30V backend magic number.  Written in the absence of an ABI.  */ | ||||||
|  | #define EM_CYGNUS_D30V		0x7676 | ||||||
|  |  | ||||||
|  | /* Ubicom IP2xxx;   Written in the absense of an ABI.  */ | ||||||
| #define EM_IP2K_OLD		0x8217 | #define EM_IP2K_OLD		0x8217 | ||||||
|  |  | ||||||
| #define EM_MT                   0x2530  /* Morpho MT; no ABI */ | /* (Deprecated) Temporary number for the OpenRISC processor.  */ | ||||||
|  | #define EM_OR32			0x8472 | ||||||
|  |  | ||||||
| /* MSP430 magic number | /* Cygnus PowerPC ELF backend.  Written in the absence of an ABI.  */ | ||||||
|       Written in the absense everything.  */ | #define EM_CYGNUS_POWERPC 	0x9025 | ||||||
| #define EM_MSP430_OLD		0x1059 |  | ||||||
|  | /* Alpha backend magic number.  Written in the absence of an ABI.  */ | ||||||
|  | #define EM_ALPHA		0x9026 | ||||||
|  |  | ||||||
|  | /* Cygnus M32R ELF backend.  Written in the absence of an ABI.  */ | ||||||
|  | #define EM_CYGNUS_M32R		0x9041 | ||||||
|  |  | ||||||
|  | /* V850 backend magic number.  Written in the absense of an ABI.  */ | ||||||
|  | #define EM_CYGNUS_V850		0x9080 | ||||||
|  |  | ||||||
|  | /* old S/390 backend magic number. Written in the absence of an ABI.  */ | ||||||
|  | #define EM_S390_OLD		0xa390 | ||||||
|  |  | ||||||
| /* Old, unofficial value for Xtensa.  */ | /* Old, unofficial value for Xtensa.  */ | ||||||
| #define EM_XTENSA_OLD		0xabc7 | #define EM_XTENSA_OLD		0xabc7 | ||||||
|  |  | ||||||
|  | #define EM_XSTORMY16		0xad45 | ||||||
|  |  | ||||||
|  | /* mn10200 and mn10300 backend magic numbers. | ||||||
|  |    Written in the absense of an ABI.  */ | ||||||
|  | #define EM_CYGNUS_MN10300	0xbeef | ||||||
|  | #define EM_CYGNUS_MN10200	0xdead | ||||||
|  |  | ||||||
|  | /* Renesas M32C and M16C.  */ | ||||||
|  | #define EM_M32C			0xFEB0 | ||||||
|  |  | ||||||
| /* Vitesse IQ2000.  */ | /* Vitesse IQ2000.  */ | ||||||
| #define EM_IQ2000		0xFEBA | #define EM_IQ2000		0xFEBA | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								include/elf/xc16x.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								include/elf/xc16x.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | /* Infineon XC16X ELF support for BFD. | ||||||
|  |    Copyright 2006 Free Software Foundation, Inc. | ||||||
|  |    Contributed by KPIT Cummins Infosystems  | ||||||
|  |  | ||||||
|  |    This file is part of BFD, the Binary File Descriptor library. | ||||||
|  |  | ||||||
|  |    This program is free software; you can redistribute it and/or modify | ||||||
|  |    it under the terms of the GNU General Public License as published by | ||||||
|  |    the Free Software Foundation; either version 2 of the License, or | ||||||
|  |    (at your option) any later version. | ||||||
|  |  | ||||||
|  |    This program is distributed in the hope that it will be useful, | ||||||
|  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |    GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |    You should have received a copy of the GNU General Public License | ||||||
|  |    along with this program; if not, write to the Free Software Foundation, Inc., | ||||||
|  |    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef _ELF_XC16X_H | ||||||
|  | #define _ELF_XC16X_H | ||||||
|  |  | ||||||
|  | #include "elf/reloc-macros.h" | ||||||
|  |  | ||||||
|  | /* Relocations.  */ | ||||||
|  | START_RELOC_NUMBERS (elf_xc16x_reloc_type) | ||||||
|  |   RELOC_NUMBER (R_XC16X_NONE, 0) | ||||||
|  |   RELOC_NUMBER (R_XC16X_ABS_8, 1) | ||||||
|  |   RELOC_NUMBER (R_XC16X_ABS_16, 2) | ||||||
|  |   RELOC_NUMBER (R_XC16X_ABS_32, 3) | ||||||
|  |   RELOC_NUMBER (R_XC16X_8_PCREL, 4) | ||||||
|  |   RELOC_NUMBER (R_XC16X_PAG, 5) | ||||||
|  |   RELOC_NUMBER (R_XC16X_POF, 6) | ||||||
|  |   RELOC_NUMBER (R_XC16X_SEG, 7) | ||||||
|  |   RELOC_NUMBER (R_XC16X_SOF, 8) | ||||||
|  |  | ||||||
|  | END_RELOC_NUMBERS (R_XC16X_max) | ||||||
|  |  | ||||||
|  | #endif /* _ELF_XC16X_H */ | ||||||
		Reference in New Issue
	
	Block a user