1222748Srwatson/* NDS32 ELF support for BFD. 2222748Srwatson Copyright (C) 2012-2024 Free Software Foundation, Inc. 3222748Srwatson Contributed by Andes Technology Corporation. 4222748Srwatson 5222748Srwatson This file is part of BFD, the Binary File Descriptor library. 6222748Srwatson 7222748Srwatson This program is free software; you can redistribute it and/or modify 8222748Srwatson it under the terms of the GNU General Public License as published by 9222748Srwatson the Free Software Foundation; either version 3 of the License, or 10222748Srwatson (at your option) any later version. 11222748Srwatson 12222748Srwatson This program is distributed in the hope that it will be useful, 13222748Srwatson but WITHOUT ANY WARRANTY; without even the implied warranty of 14222748Srwatson MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15222748Srwatson GNU General Public License for more details. 16222748Srwatson 17222748Srwatson You should have received a copy of the GNU General Public License 18222748Srwatson along with this program; if not, write to the Free Software 19222748Srwatson Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 20222748Srwatson 02110-1301, USA. */ 21222748Srwatson 22222748Srwatson#ifndef _ELF_NDS32_H 23222748Srwatson#define _ELF_NDS32_H 24222748Srwatson 25222748Srwatson#include "elf/reloc-macros.h" 26222748Srwatson 27222748SrwatsonSTART_RELOC_NUMBERS (elf_nds32_reloc_type) 28222748Srwatson /* These used for relocations. */ 29222748Srwatson RELOC_NUMBER (R_NDS32_NONE, 0) 30222748Srwatson /* REL relocations. */ 31222748Srwatson RELOC_NUMBER (R_NDS32_16, 1) 32222748Srwatson RELOC_NUMBER (R_NDS32_32, 2) 33222748Srwatson RELOC_NUMBER (R_NDS32_20, 3) 34222748Srwatson RELOC_NUMBER (R_NDS32_9_PCREL, 4) 35263198Srwatson RELOC_NUMBER (R_NDS32_15_PCREL, 5) 36222748Srwatson RELOC_NUMBER (R_NDS32_17_PCREL, 6) 37222748Srwatson RELOC_NUMBER (R_NDS32_25_PCREL, 7) 38222748Srwatson RELOC_NUMBER (R_NDS32_HI20, 8) 39222748Srwatson RELOC_NUMBER (R_NDS32_LO12S3, 9) 40222748Srwatson RELOC_NUMBER (R_NDS32_LO12S2, 10) 41222748Srwatson RELOC_NUMBER (R_NDS32_LO12S1, 11) 42222748Srwatson RELOC_NUMBER (R_NDS32_LO12S0, 12) 43222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S3, 13) 44222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S2, 14) 45222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S1, 15) 46222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S0, 16) 47263198Srwatson RELOC_NUMBER (R_NDS32_GNU_VTINHERIT, 17) 48222748Srwatson RELOC_NUMBER (R_NDS32_GNU_VTENTRY, 18) 49222748Srwatson /* RELA relocations. */ 50222748Srwatson RELOC_NUMBER (R_NDS32_16_RELA, 19) 51222748Srwatson RELOC_NUMBER (R_NDS32_32_RELA, 20) 52222748Srwatson RELOC_NUMBER (R_NDS32_20_RELA, 21) 53222748Srwatson RELOC_NUMBER (R_NDS32_9_PCREL_RELA, 22) 54222748Srwatson RELOC_NUMBER (R_NDS32_15_PCREL_RELA, 23) 55222748Srwatson RELOC_NUMBER (R_NDS32_17_PCREL_RELA, 24) 56222748Srwatson RELOC_NUMBER (R_NDS32_25_PCREL_RELA, 25) 57222748Srwatson RELOC_NUMBER (R_NDS32_HI20_RELA, 26) 58222748Srwatson RELOC_NUMBER (R_NDS32_LO12S3_RELA, 27) 59222748Srwatson RELOC_NUMBER (R_NDS32_LO12S2_RELA, 28) 60222748Srwatson RELOC_NUMBER (R_NDS32_LO12S1_RELA, 29) 61222748Srwatson RELOC_NUMBER (R_NDS32_LO12S0_RELA, 30) 62222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S3_RELA, 31) 63222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S2_RELA, 32) 64222748Srwatson RELOC_NUMBER (R_NDS32_SDA15S1_RELA, 33) 65263198Srwatson RELOC_NUMBER (R_NDS32_SDA15S0_RELA, 34) 66263198Srwatson RELOC_NUMBER (R_NDS32_RELA_GNU_VTINHERIT, 35) 67263198Srwatson RELOC_NUMBER (R_NDS32_RELA_GNU_VTENTRY, 36) 68263198Srwatson /* GOT and PLT. */ 69263198Srwatson RELOC_NUMBER (R_NDS32_GOT20, 37) 70263198Srwatson RELOC_NUMBER (R_NDS32_25_PLTREL, 38) 71263198Srwatson RELOC_NUMBER (R_NDS32_COPY, 39) 72222748Srwatson RELOC_NUMBER (R_NDS32_GLOB_DAT, 40) 73222748Srwatson RELOC_NUMBER (R_NDS32_JMP_SLOT, 41) 74222748Srwatson RELOC_NUMBER (R_NDS32_RELATIVE, 42) 75222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF, 43) 76222748Srwatson RELOC_NUMBER (R_NDS32_GOTPC20, 44) 77222748Srwatson RELOC_NUMBER (R_NDS32_GOT_HI20, 45) 78222748Srwatson RELOC_NUMBER (R_NDS32_GOT_LO12, 46) 79222748Srwatson RELOC_NUMBER (R_NDS32_GOTPC_HI20, 47) 80222748Srwatson RELOC_NUMBER (R_NDS32_GOTPC_LO12, 48) 81222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF_HI20, 49) 82222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF_LO12, 50) 83222748Srwatson /* 32_to_16 relaxations. */ 84263198Srwatson RELOC_NUMBER (R_NDS32_INSN16, 51) 85263198Srwatson /* Alignment tag. */ 86263198Srwatson RELOC_NUMBER (R_NDS32_LABEL, 52) 87263198Srwatson RELOC_NUMBER (R_NDS32_LONGCALL1, 53) /* This is obsoleted. */ 88263198Srwatson RELOC_NUMBER (R_NDS32_LONGCALL2, 54) /* This is obsoleted. */ 89222748Srwatson RELOC_NUMBER (R_NDS32_LONGCALL3, 55) /* This is obsoleted. */ 90222748Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP1, 56) /* This is obsoleted. */ 91222748Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP2, 57) /* This is obsoleted. */ 92222748Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP3, 58) /* This is obsoleted. */ 93222748Srwatson RELOC_NUMBER (R_NDS32_LOADSTORE, 59) /* This is obsoleted. */ 94222748Srwatson RELOC_NUMBER (R_NDS32_9_FIXED_RELA, 60) 95222748Srwatson RELOC_NUMBER (R_NDS32_15_FIXED_RELA, 61) 96222748Srwatson RELOC_NUMBER (R_NDS32_17_FIXED_RELA, 62) 97222748Srwatson RELOC_NUMBER (R_NDS32_25_FIXED_RELA, 63) 98222748Srwatson RELOC_NUMBER (R_NDS32_PLTREL_HI20, 64) /* This is obsoleted. */ 99222748Srwatson RELOC_NUMBER (R_NDS32_PLTREL_LO12, 65) /* This is obsoleted. */ 100222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOTREL_HI20, 66) 101222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOTREL_LO12, 67) 102222748Srwatson RELOC_NUMBER (R_NDS32_SDA12S2_DP_RELA, 68) 103222748Srwatson RELOC_NUMBER (R_NDS32_SDA12S2_SP_RELA, 69) 104222748Srwatson RELOC_NUMBER (R_NDS32_LO12S2_DP_RELA, 70) 105222748Srwatson RELOC_NUMBER (R_NDS32_LO12S2_SP_RELA, 71) 106222748Srwatson RELOC_NUMBER (R_NDS32_LO12S0_ORI_RELA, 72) 107222748Srwatson RELOC_NUMBER (R_NDS32_SDA16S3_RELA, 73) 108222748Srwatson RELOC_NUMBER (R_NDS32_SDA17S2_RELA, 74) 109222748Srwatson RELOC_NUMBER (R_NDS32_SDA18S1_RELA, 75) 110222748Srwatson RELOC_NUMBER (R_NDS32_SDA19S0_RELA, 76) 111222748Srwatson RELOC_NUMBER (R_NDS32_DWARF2_OP1_RELA, 77) /* This is obsoleted. */ 112222748Srwatson RELOC_NUMBER (R_NDS32_DWARF2_OP2_RELA, 78) /* This is obsoleted. */ 113222748Srwatson RELOC_NUMBER (R_NDS32_DWARF2_LEB_RELA, 79) /* This is obsoleted. */ 114222748Srwatson RELOC_NUMBER (R_NDS32_UPDATE_TA_RELA, 80) /* This is obsoleted. */ 115222748Srwatson RELOC_NUMBER (R_NDS32_9_PLTREL, 81) 116222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOTREL_LO20, 82) 117222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOTREL_LO15, 83) 118222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOTREL_LO19, 84) 119222748Srwatson RELOC_NUMBER (R_NDS32_GOT_LO15, 85) 120222748Srwatson RELOC_NUMBER (R_NDS32_GOT_LO19, 86) 121222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF_LO15, 87) 122222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF_LO19, 88) 123222748Srwatson RELOC_NUMBER (R_NDS32_GOT15S2_RELA, 89) 124222748Srwatson RELOC_NUMBER (R_NDS32_GOT17S2_RELA, 90) 125222748Srwatson RELOC_NUMBER (R_NDS32_5_RELA, 91) 126222748Srwatson RELOC_NUMBER (R_NDS32_10_UPCREL_RELA, 92) /* This is obsoleted. */ 127222748Srwatson RELOC_NUMBER (R_NDS32_SDA_FP7U2_RELA, 93) 128222748Srwatson RELOC_NUMBER (R_NDS32_WORD_9_PCREL_RELA, 94) 129222748Srwatson RELOC_NUMBER (R_NDS32_25_ABS_RELA, 95) 130222748Srwatson RELOC_NUMBER (R_NDS32_17IFC_PCREL_RELA, 96) /* This is obsoleted. */ 131222748Srwatson RELOC_NUMBER (R_NDS32_10IFCU_PCREL_RELA, 97) /* This is obsoleted. */ 132222748Srwatson /* TLS support. */ 133222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_HI20, 98) 134222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_LO12, 99) 135222748Srwatson RELOC_NUMBER (R_NDS32_TLS_IE_HI20, 100) 136222748Srwatson RELOC_NUMBER (R_NDS32_TLS_IE_LO12S2, 101) 137222748Srwatson RELOC_NUMBER (R_NDS32_TLS_TPOFF, 102) 138222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_20, 103) 139222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_15S0, 104) 140222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_15S1, 105) 141222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_15S2, 106) 142222748Srwatson RELOC_NUMBER (R_NDS32_LONGCALL4, 107) 143263198Srwatson RELOC_NUMBER (R_NDS32_LONGCALL5, 108) 144222748Srwatson RELOC_NUMBER (R_NDS32_LONGCALL6, 109) 145263198Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP4, 110) 146263198Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP5, 111) 147263198Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP6, 112) 148263198Srwatson RELOC_NUMBER (R_NDS32_LONGJUMP7, 113) 149263198Srwatson /* Reserved numbers: 114. */ 150263198Srwatson /* TLS support */ 151222748Srwatson RELOC_NUMBER (R_NDS32_TLS_IE_LO12, 115) 152263198Srwatson RELOC_NUMBER (R_NDS32_TLS_IEGP_HI20, 116) 153263198Srwatson RELOC_NUMBER (R_NDS32_TLS_IEGP_LO12, 117) 154263198Srwatson RELOC_NUMBER (R_NDS32_TLS_IEGP_LO12S2, 118) 155263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC, 119) 156263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_HI20, 120) 157263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_LO12, 121) 158263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_20, 122) 159263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_SDA17S2, 123) 160222748Srwatson /* Reserved numbers: 124-191. */ 161263198Srwatson 162222748Srwatson /* These used only for relaxations */ 163222748Srwatson RELOC_NUMBER (R_NDS32_RELAX_ENTRY, 192) 164222748Srwatson RELOC_NUMBER (R_NDS32_GOT_SUFF, 193) 165222748Srwatson RELOC_NUMBER (R_NDS32_GOTOFF_SUFF, 194) 166222748Srwatson RELOC_NUMBER (R_NDS32_PLT_GOT_SUFF, 195) 167222748Srwatson RELOC_NUMBER (R_NDS32_MULCALL_SUFF, 196) /* This is obsoleted. */ 168222748Srwatson RELOC_NUMBER (R_NDS32_PTR, 197) 169222748Srwatson RELOC_NUMBER (R_NDS32_PTR_COUNT, 198) 170222748Srwatson RELOC_NUMBER (R_NDS32_PTR_RESOLVED, 199) 171222748Srwatson RELOC_NUMBER (R_NDS32_PLTBLOCK, 200) /* This is obsoleted. */ 172222748Srwatson RELOC_NUMBER (R_NDS32_RELAX_REGION_BEGIN, 201) 173222748Srwatson RELOC_NUMBER (R_NDS32_RELAX_REGION_END, 202) 174222748Srwatson RELOC_NUMBER (R_NDS32_MINUEND, 203) 175222748Srwatson RELOC_NUMBER (R_NDS32_SUBTRAHEND, 204) 176222748Srwatson RELOC_NUMBER (R_NDS32_DIFF8, 205) 177263198Srwatson RELOC_NUMBER (R_NDS32_DIFF16, 206) 178263198Srwatson RELOC_NUMBER (R_NDS32_DIFF32, 207) 179263198Srwatson RELOC_NUMBER (R_NDS32_DIFF_ULEB128, 208) 180263198Srwatson RELOC_NUMBER (R_NDS32_DATA, 209) 181263198Srwatson RELOC_NUMBER (R_NDS32_TRAN, 210) 182263198Srwatson /* TLS support */ 183263198Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_ADD, 211) 184222748Srwatson RELOC_NUMBER (R_NDS32_TLS_LE_LS, 212) 185263198Srwatson RELOC_NUMBER (R_NDS32_EMPTY, 213) 186263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_ADD, 214) 187263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_FUNC, 215) 188222748Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_CALL, 216) 189263198Srwatson RELOC_NUMBER (R_NDS32_TLS_DESC_MEM, 217) 190222748Srwatson RELOC_NUMBER (R_NDS32_RELAX_REMOVE, 218) 191222748Srwatson RELOC_NUMBER (R_NDS32_RELAX_GROUP, 219) 192222748Srwatson RELOC_NUMBER (R_NDS32_TLS_IEGP_LW, 220) 193222748Srwatson RELOC_NUMBER (R_NDS32_LSI, 221) 194222748Srwatson /* Reserved numbers: 222-255. */ 195222748Srwatson 196222748SrwatsonEND_RELOC_NUMBERS (R_NDS32_max) 197222748Srwatson 198222748Srwatson/* Processor specific section indices. These sections do not actually 199222748Srwatson exist. Symbols with a st_shndx field corresponding to one of these 200222748Srwatson values have a special meaning. */ 201222748Srwatson 202222748Srwatson/* Processor specific flags for the ELF header e_flags field. 203222748Srwatson 204222748Srwatson 31 28 27 8 7 4 3 0 205222748Srwatson --------------------------------------------- 206222748Srwatson | ARCH | CONFUGURAION FIELD | ABI | ELF_VER | 207222748Srwatson --------------------------------------------- */ 208222748Srwatson 209222748Srwatson/* Architechure definition. */ 210222748Srwatson 211222748Srwatson/* 4-bit (b31-b28) nds32 architecture field. 212222748Srwatson We can have up to 15 architectures; 0000 is for unknown. */ 213222748Srwatson#define EF_NDS_ARCH 0xF0000000 214222748Srwatson#define EF_NDS_ARCH_SHIFT 28 215222748Srwatson/* There could be more architectures. For now, only n1 and n1h. */ 216222748Srwatson#define E_NDS_ARCH_STAR_RESERVED 0x00000000 217222748Srwatson#define E_NDS_ARCH_STAR_V1_0 0x10000000 218222748Srwatson#define E_NDS_ARCH_STAR_V2_0 0x20000000 219263198Srwatson#define E_NDS_ARCH_STAR_V3_0 0x30000000 220263198Srwatson#define E_NDS_ARCH_STAR_V3_M 0x40000000 221222748Srwatson#define E_NDS_ARCH_STAR_V0_9 0x90000000 /* Obsoleted. */ 222222748Srwatson/* n1 code. */ 223222748Srwatson#define E_N1_ARCH E_NDS_ARCH_STAR_V0_9 224222748Srwatson/* n1h code. */ 225222748Srwatson#define E_N1H_ARCH E_NDS_ARCH_STAR_V1_0 226263198Srwatson 227263198Srwatson 228263198Srwatson/* Configuration field definitioans. */ 229222748Srwatson#define EF_NDS_INST 0x0FFFFF00 230263198Srwatson 231222748Srwatson/* E_NDS_ARCH_STAR_V1_0 configuration fields. 232222748Srwatson 233222748Srwatson E_NDS_ARCH_STAR_V2_0 configuration fields. 234222748Srwatson These are discarded in v2. 235263198Srwatson * E_NDS32_HAS_MFUSR_PC_INST 0x00000100 236263198Srwatson * E_NDS32_HAS_DIV_INST 0x00002000 237263198Srwatson * E_NDS32_HAS_NO_MAC_INST 0x00100000 238222748Srwatson These are added in v2. 239222748Srwatson * E_NDS32_HAS_DIV_DX_INST 0x00002000 240222748Srwatson * E_NDS32_HAS_MAC_DX_INST 0x00100000 */ 241222748Srwatson 242222748Srwatson/* MFUSR rt, PC and correct ISYNC, MSYNC instructions. 243263198Srwatson Old N1213HC has no such instructions. */ 244263198Srwatson#define E_NDS32_HAS_MFUSR_PC_INST 0x00000100 /* Reclaimed. */ 245263198Srwatson/* C/C++ performance extension instructions. */ 246263198Srwatson#define E_NDS32_HAS_EXT_INST 0x00000200 247263198Srwatson/* Performance extension set II instructions. */ 248263198Srwatson#define E_NDS32_HAS_EXT2_INST 0x00000400 249263198Srwatson/* Single precision Floating point processor instructions. */ 250263198Srwatson#define E_NDS32_HAS_FPU_INST 0x00000800 251222748Srwatson/* Audio instructions with 32-bit audio dx.lo register. */ 252222748Srwatson#define E_NDS32_HAS_AUDIO_INST 0x00001000 253222748Srwatson/* DIV instructions. */ 254222748Srwatson#define E_NDS32_HAS_DIV_INST 0x00002000 /* Reclaimed. */ 255222748Srwatson/* DIV instructions using d0/d1. */ 256222748Srwatson#define E_NDS32_HAS_DIV_DX_INST 0x00002000 /* v2. */ 257222748Srwatson/* 16-bit instructions. */ 258222748Srwatson#define E_NDS32_HAS_16BIT_INST 0x00004000 /* Reclaimed. */ 259222748Srwatson/* String operation instructions. */ 260222748Srwatson#define E_NDS32_HAS_STRING_INST 0x00008000 261222748Srwatson/* Reduced register file. */ 262222748Srwatson#define E_NDS32_HAS_REDUCED_REGS 0x00010000 263222748Srwatson/* Video instructions. */ 264222748Srwatson#define E_NDS32_HAS_VIDEO_INST 0x00020000 /* Reclaimed. */ 265222748Srwatson#define E_NDS32_HAS_SATURATION_INST 0x00020000 /* v3, ELF 1.4. */ 266222748Srwatson/* Encription instructions. */ 267222748Srwatson#define E_NDS32_HAS_ENCRIPT_INST 0x00040000 268263198Srwatson/* Doulbe Precision Floating point processor instructions. */ 269263198Srwatson#define E_NDS32_HAS_FPU_DP_INST 0x00080000 270263198Srwatson/* No MAC instruction used. */ 271263198Srwatson#define E_NDS32_HAS_NO_MAC_INST 0x00100000 /* Reclaimed when V2/V3. */ 272263198Srwatson/* MAC instruction using d0/d1. */ 273222748Srwatson#define E_NDS32_HAS_MAC_DX_INST 0x00100000 /* v2. */ 274222748Srwatson/* L2 cache instruction. */ 275263198Srwatson#define E_NDS32_HAS_L2C_INST 0x00200000 276263198Srwatson/* FPU registers configuration when FPU SP/DP presents; 0x00c00000. */ 277263198Srwatson#define E_NDS32_FPU_REG_CONF_SHIFT 22 278222748Srwatson#define E_NDS32_FPU_REG_CONF (0x3 << E_NDS32_FPU_REG_CONF_SHIFT) 279263198Srwatson#define E_NDS32_FPU_REG_8SP_4DP 0x0 280222748Srwatson#define E_NDS32_FPU_REG_16SP_8DP 0x1 281222748Srwatson#define E_NDS32_FPU_REG_32SP_16DP 0x2 282222748Srwatson#define E_NDS32_FPU_REG_32SP_32DP 0x3 283263198Srwatson/* FPU MAC instruction used. */ 284263198Srwatson#define E_NDS32_HAS_FPU_MAC_INST 0x01000000 285263198Srwatson/* DSP extension. */ 286222748Srwatson#define E_NDS32_HAS_DSP_INST 0x02000000 287263198Srwatson/* PIC enabled. */ 288222748Srwatson#define E_NDS32_HAS_PIC 0x04000000 289222748Srwatson/* Use custom section. */ 290222748Srwatson#define E_NDS32_HAS_CUSTOM_SEC 0x08000000 291222748Srwatson/* Hardware zero-overhead loop enabled. */ 292222748Srwatson#define E_NDS32_HAS_ZOL (1 << 26) 293222748Srwatson 294222748Srwatson/* 4-bit for ABI signature, allow up to 16 ABIs 295222748Srwatson 0: for OLD ABI V0, phase out 296222748Srwatson 1: for V1 , starting with V0 toolchain 297222748Srwatson 2: for V2 298222748Srwatson 3: for V2FP (fs0, fs1 as function parameter) 299222748Srwatson 4: for AABI */ 300268479Sadrian/* Only old N1213HC use V0. 301268479Sadrian New ABI is used due to return register is changed to r0 from r5. */ 302268479Sadrian#define EF_NDS_ABI 0x000000F0 303268479Sadrian#define EF_NDS_ABI_SHIFT 4 304268479Sadrian#define E_NDS_ABI_V0 0x00000000 305268479Sadrian#define E_NDS_ABI_V1 0x00000010 306268479Sadrian#define E_NDS_ABI_V2 0x00000020 307268479Sadrian#define E_NDS_ABI_V2FP 0x00000030 308268479Sadrian#define E_NDS_ABI_AABI 0x00000040 309268479Sadrian#define E_NDS_ABI_V2FP_PLUS 0x00000050 310268479Sadrian 311268479Sadrian/* This flag signifies the version of Andes ELF. 312222748Srwatson Some more information may exist somewhere which is TBD. */ 313222748Srwatson#define EF_NDS32_ELF_VERSION 0x0000000F 314222748Srwatson#define EF_NDS32_ELF_VERSION_SHIFT 0 315222748Srwatson 316222748Srwatson/* Andes ELF Version 1.3 and before. */ 317222748Srwatson#define E_NDS32_ELF_VER_1_2 0x0 318222748Srwatson/* Andes ELF Version 1.31. */ 319222748Srwatson#define E_NDS32_ELF_VER_1_3 0x1 320222748Srwatson/* Andes ELF Version 1.4. Change the way we fix .debug_* and .gcc_except_table. 321222748Srwatson Change three bit for SAT. */ 322222748Srwatson#define E_NDS32_ELF_VER_1_4 0x2 323222748Srwatson 324222748Srwatson#endif 325222748Srwatson