reloc.c
来自「基于4个mips核的noc设计」· C语言 代码 · 共 2,228 行 · 第 1/5 页
C
2,228 行
BFD_RELOC_SPARC_GOT13ENUMX BFD_RELOC_SPARC_GOT22ENUMX BFD_RELOC_SPARC_PC10ENUMX BFD_RELOC_SPARC_PC22ENUMX BFD_RELOC_SPARC_WPLT30ENUMX BFD_RELOC_SPARC_COPYENUMX BFD_RELOC_SPARC_GLOB_DATENUMX BFD_RELOC_SPARC_JMP_SLOTENUMX BFD_RELOC_SPARC_RELATIVEENUMX BFD_RELOC_SPARC_UA16ENUMX BFD_RELOC_SPARC_UA32ENUMX BFD_RELOC_SPARC_UA64ENUMDOC SPARC ELF relocations. There is probably some overlap with other relocation types already defined.ENUM BFD_RELOC_SPARC_BASE13ENUMX BFD_RELOC_SPARC_BASE22ENUMDOC I think these are specific to SPARC a.out (e.g., Sun 4).ENUMEQ BFD_RELOC_SPARC_64 BFD_RELOC_64ENUMX BFD_RELOC_SPARC_10ENUMX BFD_RELOC_SPARC_11ENUMX BFD_RELOC_SPARC_OLO10ENUMX BFD_RELOC_SPARC_HH22ENUMX BFD_RELOC_SPARC_HM10ENUMX BFD_RELOC_SPARC_LM22ENUMX BFD_RELOC_SPARC_PC_HH22ENUMX BFD_RELOC_SPARC_PC_HM10ENUMX BFD_RELOC_SPARC_PC_LM22ENUMX BFD_RELOC_SPARC_WDISP16ENUMX BFD_RELOC_SPARC_WDISP19ENUMX BFD_RELOC_SPARC_7ENUMX BFD_RELOC_SPARC_6ENUMX BFD_RELOC_SPARC_5ENUMEQX BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCRELENUMX BFD_RELOC_SPARC_PLT64ENUMX BFD_RELOC_SPARC_HIX22ENUMX BFD_RELOC_SPARC_LOX10ENUMX BFD_RELOC_SPARC_H44ENUMX BFD_RELOC_SPARC_M44ENUMX BFD_RELOC_SPARC_L44ENUMX BFD_RELOC_SPARC_REGISTERENUMDOC SPARC64 relocationsENUM BFD_RELOC_SPARC_REV32ENUMDOC SPARC little endian relocationENUM BFD_RELOC_ALPHA_GPDISP_HI16ENUMDOC Alpha ECOFF and ELF relocations. Some of these treat the symbol or "addend" in some special way. For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when writing; when reading, it will be the absolute section symbol. The addend is the displacement in bytes of the "lda" instruction from the "ldah" instruction (which is at the address of this reloc).ENUM BFD_RELOC_ALPHA_GPDISP_LO16ENUMDOC For GPDISP_LO16 ("ignore") relocations, the symbol is handled as with GPDISP_HI16 relocs. The addend is ignored when writing the relocations out, and is filled in with the file's GP value on reading, for convenience.ENUM BFD_RELOC_ALPHA_GPDISPENUMDOC The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 relocation except that there is no accompanying GPDISP_LO16 relocation.ENUM BFD_RELOC_ALPHA_LITERALENUMX BFD_RELOC_ALPHA_ELF_LITERALENUMX BFD_RELOC_ALPHA_LITUSEENUMDOC The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; the assembler turns it into a LDQ instruction to load the address of the symbol, and then fills in a register in the real instruction. The LITERAL reloc, at the LDQ instruction, refers to the .lita section symbol. The addend is ignored when writing, but is filled in with the file's GP value on reading, for convenience, as with the GPDISP_LO16 reloc. The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16. It should refer to the symbol to be referenced, as with 16_GOTOFF, but it generates output not based on the position within the .got section, but relative to the GP value chosen for the file during the final link stage. The LITUSE reloc, on the instruction using the loaded address, gives information to the linker that it might be able to use to optimize away some literal section references. The symbol is ignored (read as the absolute section symbol), and the "addend" indicates the type of instruction using the register: 1 - "memory" fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target of branch) The GNU linker currently doesn't do any of this optimizing.ENUM BFD_RELOC_ALPHA_USER_LITERALENUMX BFD_RELOC_ALPHA_USER_LITUSE_BASEENUMX BFD_RELOC_ALPHA_USER_LITUSE_BYTOFFENUMX BFD_RELOC_ALPHA_USER_LITUSE_JSRENUMX BFD_RELOC_ALPHA_USER_GPDISPENUMX BFD_RELOC_ALPHA_USER_GPRELHIGHENUMX BFD_RELOC_ALPHA_USER_GPRELLOWENUMDOC The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to process the explicit !<reloc>!sequence relocations, and are mapped into the normal relocations at the end of processing.ENUM BFD_RELOC_ALPHA_HINTENUMDOC The HINT relocation indicates a value that should be filled into the "hint" field of a jmp/jsr/ret instruction, for possible branch- prediction logic which may be provided on some processors.ENUM BFD_RELOC_ALPHA_LINKAGEENUMDOC The LINKAGE relocation outputs a linkage pair in the object file, which is filled by the linker.ENUM BFD_RELOC_ALPHA_CODEADDRENUMDOC The CODEADDR relocation outputs a STO_CA in the object file, which is filled by the linker.ENUM BFD_RELOC_MIPS_JMPENUMDOC Bits 27..2 of the relocation address shifted right 2 bits; simple reloc otherwise.ENUM BFD_RELOC_MIPS16_JMPENUMDOC The MIPS16 jump instruction.ENUM BFD_RELOC_MIPS16_GPRELENUMDOC MIPS16 GP relative reloc.ENUM BFD_RELOC_HI16ENUMDOC High 16 bits of 32-bit value; simple reloc.ENUM BFD_RELOC_HI16_SENUMDOC High 16 bits of 32-bit value but the low 16 bits will be sign extended and added to form the final result. If the low 16 bits form a negative number, we need to add one to the high value to compensate for the borrow when the low bits are added.ENUM BFD_RELOC_LO16ENUMDOC Low 16 bits.ENUM BFD_RELOC_PCREL_HI16_SENUMDOC Like BFD_RELOC_HI16_S, but PC relative.ENUM BFD_RELOC_PCREL_LO16ENUMDOC Like BFD_RELOC_LO16, but PC relative.ENUMEQ BFD_RELOC_MIPS_GPREL BFD_RELOC_GPREL16ENUMDOC Relocation relative to the global pointer.ENUM BFD_RELOC_MIPS_LITERALENUMDOC Relocation against a MIPS literal section.ENUM BFD_RELOC_MIPS_GOT16ENUMX BFD_RELOC_MIPS_CALL16ENUMEQX BFD_RELOC_MIPS_GPREL32 BFD_RELOC_GPREL32ENUMX BFD_RELOC_MIPS_GOT_HI16ENUMX BFD_RELOC_MIPS_GOT_LO16ENUMX BFD_RELOC_MIPS_CALL_HI16ENUMX BFD_RELOC_MIPS_CALL_LO16ENUMX BFD_RELOC_MIPS_SUBENUMX BFD_RELOC_MIPS_GOT_PAGEENUMX BFD_RELOC_MIPS_GOT_OFSTENUMX BFD_RELOC_MIPS_GOT_DISPENUMX BFD_RELOC_MIPS_SHIFT5ENUMX BFD_RELOC_MIPS_SHIFT6ENUMX BFD_RELOC_MIPS_INSERT_AENUMX BFD_RELOC_MIPS_INSERT_BENUMX BFD_RELOC_MIPS_DELETEENUMX BFD_RELOC_MIPS_HIGHESTENUMX BFD_RELOC_MIPS_HIGHERENUMX BFD_RELOC_MIPS_SCN_DISPENUMX BFD_RELOC_MIPS_REL16ENUMX BFD_RELOC_MIPS_RELGOTENUMX BFD_RELOC_MIPS_JALRCOMMENTENUMDOC MIPS ELF relocations.COMMENTENUM BFD_RELOC_386_GOT32ENUMX BFD_RELOC_386_PLT32ENUMX BFD_RELOC_386_COPYENUMX BFD_RELOC_386_GLOB_DATENUMX BFD_RELOC_386_JUMP_SLOTENUMX BFD_RELOC_386_RELATIVEENUMX BFD_RELOC_386_GOTOFFENUMX BFD_RELOC_386_GOTPCENUMDOC i386/elf relocationsENUM BFD_RELOC_X86_64_GOT32ENUMX BFD_RELOC_X86_64_PLT32ENUMX BFD_RELOC_X86_64_COPYENUMX BFD_RELOC_X86_64_GLOB_DATENUMX BFD_RELOC_X86_64_JUMP_SLOTENUMX BFD_RELOC_X86_64_RELATIVEENUMX BFD_RELOC_X86_64_GOTPCRELENUMX BFD_RELOC_X86_64_32SENUMDOC x86-64/elf relocationsENUM BFD_RELOC_NS32K_IMM_8ENUMX BFD_RELOC_NS32K_IMM_16ENUMX BFD_RELOC_NS32K_IMM_32ENUMX BFD_RELOC_NS32K_IMM_8_PCRELENUMX BFD_RELOC_NS32K_IMM_16_PCRELENUMX BFD_RELOC_NS32K_IMM_32_PCRELENUMX BFD_RELOC_NS32K_DISP_8ENUMX BFD_RELOC_NS32K_DISP_16ENUMX BFD_RELOC_NS32K_DISP_32ENUMX BFD_RELOC_NS32K_DISP_8_PCRELENUMX BFD_RELOC_NS32K_DISP_16_PCRELENUMX BFD_RELOC_NS32K_DISP_32_PCRELENUMDOC ns32k relocationsENUM BFD_RELOC_PJ_CODE_HI16ENUMX BFD_RELOC_PJ_CODE_LO16ENUMX BFD_RELOC_PJ_CODE_DIR16ENUMX BFD_RELOC_PJ_CODE_DIR32ENUMX BFD_RELOC_PJ_CODE_REL16ENUMX BFD_RELOC_PJ_CODE_REL32ENUMDOC Picojava relocs. Not all of these appear in object files.ENUM BFD_RELOC_PPC_B26ENUMX BFD_RELOC_PPC_BA26ENUMX BFD_RELOC_PPC_TOC16ENUMX BFD_RELOC_PPC_B16ENUMX BFD_RELOC_PPC_B16_BRTAKENENUMX BFD_RELOC_PPC_B16_BRNTAKENENUMX BFD_RELOC_PPC_BA16ENUMX BFD_RELOC_PPC_BA16_BRTAKENENUMX BFD_RELOC_PPC_BA16_BRNTAKENENUMX BFD_RELOC_PPC_COPYENUMX BFD_RELOC_PPC_GLOB_DATENUMX BFD_RELOC_PPC_JMP_SLOTENUMX BFD_RELOC_PPC_RELATIVEENUMX BFD_RELOC_PPC_LOCAL24PCENUMX BFD_RELOC_PPC_EMB_NADDR32ENUMX BFD_RELOC_PPC_EMB_NADDR16ENUMX BFD_RELOC_PPC_EMB_NADDR16_LOENUMX BFD_RELOC_PPC_EMB_NADDR16_HIENUMX BFD_RELOC_PPC_EMB_NADDR16_HAENUMX BFD_RELOC_PPC_EMB_SDAI16ENUMX BFD_RELOC_PPC_EMB_SDA2I16ENUMX BFD_RELOC_PPC_EMB_SDA2RELENUMX BFD_RELOC_PPC_EMB_SDA21ENUMX BFD_RELOC_PPC_EMB_MRKREFENUMX BFD_RELOC_PPC_EMB_RELSEC16ENUMX BFD_RELOC_PPC_EMB_RELST_LOENUMX BFD_RELOC_PPC_EMB_RELST_HIENUMX BFD_RELOC_PPC_EMB_RELST_HAENUMX BFD_RELOC_PPC_EMB_BIT_FLDENUMX BFD_RELOC_PPC_EMB_RELSDAENUMDOC Power(rs6000) and PowerPC relocations.ENUM BFD_RELOC_I370_D12ENUMDOC IBM 370/390 relocationsENUM BFD_RELOC_CTORENUMDOC The type of reloc used to build a contructor table - at the moment probably a 32 bit wide absolute relocation, but the target can choose. It generally does map to one of the other relocation types.ENUM BFD_RELOC_ARM_PCRE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?