diff --git a/include/ChangeLog b/include/ChangeLog index 716b43b66..cec4c43c9 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2011-10-25 Joern Rennecke + + * dis-asm.h (print_insn_epiphany): Declare. + 2011-10-21 Ulrich Drepper * obstack.h [!GNUC] (obstack_free): Avoid cast to int. diff --git a/include/dis-asm.h b/include/dis-asm.h index d654211c3..ff4732568 100644 --- a/include/dis-asm.h +++ b/include/dis-asm.h @@ -233,6 +233,7 @@ extern int print_insn_crx (bfd_vma, disassemble_info *); extern int print_insn_d10v (bfd_vma, disassemble_info *); extern int print_insn_d30v (bfd_vma, disassemble_info *); extern int print_insn_dlx (bfd_vma, disassemble_info *); +extern int print_insn_epiphany (bfd_vma, disassemble_info *); extern int print_insn_fr30 (bfd_vma, disassemble_info *); extern int print_insn_frv (bfd_vma, disassemble_info *); extern int print_insn_h8300 (bfd_vma, disassemble_info *); diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 369654393..b269004f2 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,8 @@ +2011-10-25 Joern Rennecke + + * epiphany.h: New file. + * common.h (EM_ADAPTEVA_EPIPHANY): Define. + 2011-10-10 Alan Modra * ppc64.h (R_PPC64_TOCSAVE): Add. diff --git a/include/elf/common.h b/include/elf/common.h index e46ae3370..a62db77aa 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -401,6 +401,8 @@ #define EM_MICROBLAZE_OLD 0xbaab /* Old MicroBlaze */ +#define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */ + /* See the above comment before you add a new EM_* value here. */ /* Values for e_version. */ diff --git a/include/elf/epiphany.h b/include/elf/epiphany.h new file mode 100755 index 000000000..333762506 --- /dev/null +++ b/include/elf/epiphany.h @@ -0,0 +1,59 @@ +/* Adapteva EPIPHANY ELF support for BFD. + Copyright (C) 2011 Free Software Foundation, Inc. + Contributed by Embecosm on behalf of Adapteva, Inc. + + 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 3 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_EPIPHANY_H +#define _ELF_EPIPHANY_H + +#include "elf/reloc-macros.h" + +/* Relocations. */ +START_RELOC_NUMBERS (elf_epiphany_reloc_type) + RELOC_NUMBER (R_EPIPHANY_NONE, 0) + + /* Absolute address relocations. */ + RELOC_NUMBER (R_EPIPHANY_8, 1) + RELOC_NUMBER (R_EPIPHANY_16, 2) + RELOC_NUMBER (R_EPIPHANY_32, 3) + + /* PC-relative relocations. */ + RELOC_NUMBER (R_EPIPHANY_8_PCREL, 4) + RELOC_NUMBER (R_EPIPHANY_16_PCREL,5) + RELOC_NUMBER (R_EPIPHANY_32_PCREL,6) + + /* special forms for 8/24 bit branch displacements. */ + RELOC_NUMBER (R_EPIPHANY_SIMM8, 7) + RELOC_NUMBER (R_EPIPHANY_SIMM24, 8) + + /* HIGH and LOW relocations taking part of a 32 bit address and + depositing it into the IMM16 field of a destination. */ + RELOC_NUMBER (R_EPIPHANY_HIGH, 9) + RELOC_NUMBER (R_EPIPHANY_LOW,10) + + /* 11 bit signed immediate value. */ + RELOC_NUMBER (R_EPIPHANY_SIMM11, 11) + /* 11 bit magnitude addressing displacement. */ + RELOC_NUMBER (R_EPIPHANY_IMM11, 12) + + /* 8 bit immediate for MOV.S R,IMM8. */ + RELOC_NUMBER (R_EPIPHANY_IMM8, 13) + +END_RELOC_NUMBERS(R_EPIPHANY_max) + +#endif /* _ELF_EPIPHANY_H */