root/sys/arch/arm64/include/reloc.h
/*      $OpenBSD: reloc.h,v 1.2 2017/10/24 20:35:54 guenther Exp $      */
/*
 * AArch64 static relocation types.
 */

/* Miscellaneous. */
#define R_ARM_NONE                      0
#define R_AARCH64_TPOFF64       1 /// COMPLETELY WRONG - stub
#define R_AARCH64_NONE                  0

/* Data. */
#define R_AARCH64_ABS64                 257
#define R_AARCH64_ABS32                 258
#define R_AARCH64_ABS16                 259
#define R_AARCH64_PREL64                260
#define R_AARCH64_PREL32                261
#define R_AARCH64_PREL16                262

/* Instructions. */
#define R_AARCH64_MOVW_UABS_G0          263
#define R_AARCH64_MOVW_UABS_G0_NC       264
#define R_AARCH64_MOVW_UABS_G1          265
#define R_AARCH64_MOVW_UABS_G1_NC       266
#define R_AARCH64_MOVW_UABS_G2          267
#define R_AARCH64_MOVW_UABS_G2_NC       268
#define R_AARCH64_MOVW_UABS_G3          269

#define R_AARCH64_MOVW_SABS_G0          270
#define R_AARCH64_MOVW_SABS_G1          271
#define R_AARCH64_MOVW_SABS_G2          272

#define R_AARCH64_LD_PREL_LO19          273
#define R_AARCH64_ADR_PREL_LO21         274
#define R_AARCH64_ADR_PREL_PG_HI21      275
#define R_AARCH64_ADR_PREL_PG_HI21_NC   276
#define R_AARCH64_ADD_ABS_LO12_NC       277
#define R_AARCH64_LDST8_ABS_LO12_NC     278

#define R_AARCH64_TSTBR14               279
#define R_AARCH64_CONDBR19              280
#define R_AARCH64_JUMP26                282
#define R_AARCH64_CALL26                283
#define R_AARCH64_LDST16_ABS_LO12_NC    284
#define R_AARCH64_LDST32_ABS_LO12_NC    285
#define R_AARCH64_LDST64_ABS_LO12_NC    286
#define R_AARCH64_LDST128_ABS_LO12_NC   299

#define R_AARCH64_MOVW_PREL_G0          287
#define R_AARCH64_MOVW_PREL_G0_NC       288
#define R_AARCH64_MOVW_PREL_G1          289
#define R_AARCH64_MOVW_PREL_G1_NC       290
#define R_AARCH64_MOVW_PREL_G2          291
#define R_AARCH64_MOVW_PREL_G2_NC       292
#define R_AARCH64_MOVW_PREL_G3          293


#define R_AARCH64_COPY 1024
#define R_AARCH64_GLOB_DAT 1025 // S + A
#define R_AARCH64_JUMP_SLOT 1026 // S + A
#define R_AARCH64_RELATIVE 1027 // Delta(S) + A
#define R_AARCH64_TLS_DTPREL64 1028 // DTPREL(S+A)
#define R_AARCH64_TLS_DTPMOD64 1029 // LDM(S)
#define R_AARCH64_TLS_TPREL64 1030 // TPREL(S+A)
#define R_AARCH64_TLSDESC 1031 // TLSDESC(S+A) TLS descriptor to be filled
#define R_AARCH64_IRELATIVE 1032 // Indirect(Delta(S) + A)

// old arm32 defines.
/* Processor specific relocation types */

#define R_ARM_NONE              0
#define R_ARM_PC24              1
#define R_ARM_ABS32             2
#define R_ARM_REL32             3
#define R_ARM_PC13              4
#define R_ARM_ABS16             5
#define R_ARM_ABS12             6
#define R_ARM_THM_ABS5          7
#define R_ARM_ABS8              8
#define R_ARM_SBREL32           9
#define R_ARM_THM_PC22          10
#define R_ARM_THM_PC8           11
#define R_ARM_AMP_VCALL9        12
#define R_ARM_SWI24             13
#define R_ARM_THM_SWI8          14
#define R_ARM_XPC25             15
#define R_ARM_THM_XPC22         16

/* 17-31 are reserved for ARM Linux. */
#define R_ARM_TLS_DTPMOD32      17
#define R_ARM_TLS_DTPOFF32      18
#define R_ARM_TLS_TPOFF32       19

#define R_ARM_COPY              20
#define R_ARM_GLOB_DAT          21
#define R_ARM_JUMP_SLOT         22
#define R_ARM_RELATIVE          23
#define R_ARM_GOTOFF            24
#define R_ARM_GOTPC             25
#define R_ARM_GOT32             26
#define R_ARM_PLT32             27

#define R_ARM_ALU_PCREL_7_0     32
#define R_ARM_ALU_PCREL_15_8    33
#define R_ARM_ALU_PCREL_23_15   34
#define R_ARM_ALU_SBREL_11_0    35
#define R_ARM_ALU_SBREL_19_12   36
#define R_ARM_ALU_SBREL_27_20   37

/* 96-111 are reserved to G++. */
#define R_ARM_GNU_VTENTRY       100
#define R_ARM_GNU_VTINHERIT     101
#define R_ARM_THM_PC11          102
#define R_ARM_THM_PC9           103

/* 112-127 are reserved for private experiments. */

#define R_ARM_RXPC25            249
#define R_ARM_RSBREL32          250
#define R_ARM_THM_RPC22         251
#define R_ARM_RREL32            252
#define R_ARM_RABS32            253
#define R_ARM_RPC24             254
#define R_ARM_RBASE             255