New ARC implementation.
[deliverable/binutils-gdb.git] / include / elf / arc.h
CommitLineData
252b5132 1/* ARC ELF support for BFD.
b90efa5b 2 Copyright (C) 1995-2015 Free Software Foundation, Inc.
252b5132
RH
3 Contributed by Doug Evans, (dje@cygnus.com)
4
e4e42b45 5 This file is part of BFD, the Binary File Descriptor library.
252b5132 6
e4e42b45
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
252b5132 11
e4e42b45
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
252b5132 16
e4e42b45
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132
RH
21
22/* This file holds definitions specific to the ARC ELF ABI. */
23
24#ifndef _ELF_ARC_H
25#define _ELF_ARC_H
26
27#include "elf/reloc-macros.h"
28
29/* Relocations. */
0d2bcfaf 30
886a2506
NC
31#define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \
32 RELOC_NUMBER(R_##TYPE, VALUE)
33
252b5132 34START_RELOC_NUMBERS (elf_arc_reloc_type)
886a2506 35#include "arc-reloc.def"
1b452ec6 36END_RELOC_NUMBERS (R_ARC_max)
252b5132 37
886a2506
NC
38#undef ARC_RELOC_HOWTO
39
252b5132
RH
40/* Processor specific flags for the ELF header e_flags field. */
41
886a2506
NC
42/* Four bit ARC machine type field. */
43#define EF_ARC_MACH_MSK 0x000000ff
44#define EF_ARC_OSABI_MSK 0x00000f00
45#define EF_ARC_ALL_MSK (EF_ARC_MACH_MSK | EF_ARC_OSABI_MSK)
46
252b5132 47/* Four bit ARC machine type field. */
0d2bcfaf
NC
48
49#define EF_ARC_MACH 0x0000000f
252b5132
RH
50
51/* Various CPU types. */
886a2506
NC
52#define E_ARC_MACH_ARC600 0x00000002
53#define E_ARC_MACH_ARC601 0x00000004
54#define E_ARC_MACH_ARC700 0x00000003
252b5132 55
886a2506
NC
56/* Processor specific flags for the ELF header e_flags field. */
57#define EF_ARC_CPU_GENERIC 0x00000000
58#define EF_ARC_CPU_ARCV2EM 0x00000005
59#define EF_ARC_CPU_ARCV2HS 0x00000006
60
61/* ARC Linux specific ABIs. */
62#define E_ARC_OSABI_ORIG 0x00000000 /* MUST be 0 for back-compat. */
63#define E_ARC_OSABI_V2 0x00000200
64#define E_ARC_OSABI_V3 0x00000300
65#define E_ARC_OSABI_CURRENT E_ARC_OSABI_V3
0d2bcfaf
NC
66
67/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. */
252b5132
RH
68
69/* File contains position independent code. */
0d2bcfaf
NC
70
71#define EF_ARC_PIC 0x00000100
252b5132
RH
72
73#endif /* _ELF_ARC_H */
This page took 0.592828 seconds and 4 git commands to generate.