1/* $NetBSD: elf_machdep.h,v 1.5 2016/02/02 20:13:59 christos Exp $ */
2
3#if !defined __i386__
4
5#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
6#define ELF32_MACHDEP_ID_CASES \
7 case EM_386: \
8 break;
9
10#define ELF64_MACHDEP_ENDIANNESS ELFDATA2LSB
11#define ELF64_MACHDEP_ID_CASES \
12 case EM_X86_64: \
13 break;
14
15#define ELF32_MACHDEP_ID EM_386
16#define ELF64_MACHDEP_ID EM_X86_64
17
18#define ARCH_ELFSIZE 64 /* MD native binary size */
19
20/* x86-64 relocations */
21
22#define R_X86_64_NONE 0
23#define R_X86_64_64 1
24#define R_X86_64_PC32 2
25#define R_X86_64_GOT32 3
26#define R_X86_64_PLT32 4
27#define R_X86_64_COPY 5
28#define R_X86_64_GLOB_DAT 6
29#define R_X86_64_JUMP_SLOT 7
30#define R_X86_64_RELATIVE 8
31#define R_X86_64_GOTPCREL 9
32#define R_X86_64_32 10
33#define R_X86_64_32S 11
34#define R_X86_64_16 12
35#define R_X86_64_PC16 13
36#define R_X86_64_8 14
37#define R_X86_64_PC8 15
38
39/* TLS relocations */
40#define R_X86_64_DTPMOD64 16
41#define R_X86_64_DTPOFF64 17
42#define R_X86_64_TPOFF64 18
43#define R_X86_64_TLSGD 19
44#define R_X86_64_TLSLD 20
45#define R_X86_64_DTPOFF32 21
46#define R_X86_64_GOTTPOFF 22
47#define R_X86_64_TPOFF32 23
48
49#define R_X86_64_PC64 24
50#define R_X86_64_GOTOFF64 25
51#define R_X86_64_GOTPC32 26
52#define R_X86_64_GOT64 27
53#define R_X86_64_GOTPCREL64 28
54#define R_X86_64_GOTPC64 29
55#define R_X86_64_GOTPLT64 30
56#define R_X86_64_PLTOFF64 31
57#define R_X86_64_SIZE32 32
58#define R_X86_64_SIZE64 33
59#define R_X86_64_GOTPC32_TLSDESC 34
60#define R_X86_64_TLSDESC_CALL 35
61#define R_X86_64_TLSDESC 36
62#define R_X86_64_IRELATIVE 37
63#define R_X86_64_RELATIVE64 38
64#define R_X86_64_PC32_BND 39
65#define R_X86_64_PLT32_BND 40
66#define R_X86_64_GOTPCRELX 41
67#define R_X86_64_REX_GOTPCRELX 42
68
69#define R_TYPE(name) __CONCAT(R_X86_64_,name)
70
71#else /* !__i386__ */
72
73#include <i386/elf_machdep.h>
74
75#endif /* !__i386__ */
76