111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*	$NetBSD: elf_machdep.h,v 1.4 2010/03/18 08:28:33 cegger Exp $	*/
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined __i386__
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF32_MACHDEP_ID_CASES						\
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert		case EM_386:						\
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert			break;
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF64_MACHDEP_ID_CASES						\
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert		case EM_X86_64:						\
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert			break;
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF32_MACHDEP_ID	EM_386
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	ELF64_MACHDEP_ID	EM_X86_64
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ARCH_ELFSIZE		64	/* MD native binary size */
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* x86-64 relocations */
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_NONE		0
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_64		1
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC32		2
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOT32		3
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PLT32		4
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_COPY		5
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GLOB_DAT	6
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_JUMP_SLOT	7
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_RELATIVE	8
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOTPCREL	9
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_32		10
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_32S		11
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_16		12
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC16		13
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_8		14
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_PC8		15
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* TLS relocations */
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPMOD64	16
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPOFF64	17
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TPOFF64	18
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TLSGD		19
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TLSLD		20
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_DTPOFF32	21
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_GOTTPOFF	22
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define R_X86_64_TPOFF32	23
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	R_TYPE(name)	__CONCAT(R_X86_64_,name)
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else	/*	!__i386__	*/
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <i386/elf_machdep.h>
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif	/*	!__i386__	*/
56