mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
bb2d6cd7b1
* elf32-mips.c (mips_elf_next_relocation): Rename from mips_elf_next_lo16_relocation, and generalize to look for any relocation type. (elf_mips_howto_table): Make R_MIPS_PC16 pcrel_offset. (elf_mips_gnu_rel_hi16): Howto for R_MIPS_GNU_REL_HI16. (elf_mips_gnu_rel_lo16): Howto for R_MIPS_GNU_REL_LO16. (elf_mips_gnu_rel16_s2): Howto for R_MIPS_GNU_REL16_S2. (elf_mips_gnu_pcrel64): Howto for R_MIPS_PC64. (elf_mips_gnu_pcrel32): Howto for R_MIPS_PC32. (bfd_elf32_bfd_reloc_type_lookup): Add new relocs. (mips_rtype_to_howto): Likewise. (mips_elf_calculate_relocation): Handle new relocs. (_bfd_mips_elf_relocate_section): REL_HI16/REL_LO16 relocs are paired. The addend for R_MIPS_GNU_REL16_S2 is shifted right two bits. In gas/: * config/tc-mips.c (mips_ip): Don't put stuff in .rodata when embedded-pic. * config/tc-mips.c (SWITCH_TABLE): The ELF embedded-pic implementation doesn't have special handling for switch statements. (macro_build): Allow for code in sections other than .text. (macro): Likewise. (mips_ip): Likewise. (md_apply_fix): Do pc-relative relocation madness for MIPS ELF. Don't perform relocs if we will be outputting them. (tc_gen_reloc): For ELF, just use fx_addnumber for pc-relative relocations. Allow BFD_RELOC_16_PCREL_S2 relocs when embedded-pic. In gas/testsuite/: * gas/mips/empic.d: New file. * gas/mips/empic.s: New file. * gas/mips/mips16-e.d: New file. * gas/mips/mips16-e.s: New file. * gas/mips/mips16-f.d: New file. * gas/mips/mips16-f.s: New file. * gas/mips/mips.exp: Add empic, mips16-e. Add mips16-f as an expected failure. In include/elf: * mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16, R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation numbers. |
||
---|---|---|
.. | ||
aout_gnu.h | ||
atof-ieee.c | ||
atof-tahoe.c | ||
atof-vax.c | ||
e-i386aout.c | ||
e-i386coff.c | ||
e-i386elf.c | ||
e-mipsecoff.c | ||
e-mipself.c | ||
itbl-mips.h | ||
m68k-parse.h | ||
m68k-parse.y | ||
m88k-opcode.h | ||
obj-aout.c | ||
obj-aout.h | ||
obj-bout.c | ||
obj-bout.h | ||
obj-coff.c | ||
obj-coff.h | ||
obj-ecoff.c | ||
obj-ecoff.h | ||
obj-elf.c | ||
obj-elf.h | ||
obj-evax.c | ||
obj-evax.h | ||
obj-generic.c | ||
obj-generic.h | ||
obj-hp300.c | ||
obj-hp300.h | ||
obj-ieee.c | ||
obj-ieee.h | ||
obj-multi.c | ||
obj-multi.h | ||
obj-som.c | ||
obj-som.h | ||
obj-vms.c | ||
obj-vms.h | ||
tc-a29k.c | ||
tc-a29k.h | ||
tc-alpha.c | ||
tc-alpha.h | ||
tc-arc.c | ||
tc-arc.h | ||
tc-arm.c | ||
tc-arm.h | ||
tc-d10v.c | ||
tc-d10v.h | ||
tc-d30v.c | ||
tc-d30v.h | ||
tc-fr30.c | ||
tc-fr30.h | ||
tc-generic.c | ||
tc-generic.h | ||
tc-h8300.c | ||
tc-h8300.h | ||
tc-h8500.c | ||
tc-h8500.h | ||
tc-hppa.c | ||
tc-hppa.h | ||
tc-i370.c | ||
tc-i370.h | ||
tc-i386.c | ||
tc-i386.h | ||
tc-i860.c | ||
tc-i860.h | ||
tc-i960.c | ||
tc-i960.h | ||
tc-m32r.c | ||
tc-m32r.h | ||
tc-m68k.c | ||
tc-m68k.h | ||
tc-m88k.c | ||
tc-m88k.h | ||
tc-m68851.h | ||
tc-mcore.c | ||
tc-mcore.h | ||
tc-mips.c | ||
tc-mips.h | ||
tc-mn10200.c | ||
tc-mn10200.h | ||
tc-mn10300.c | ||
tc-mn10300.h | ||
tc-ns32k.c | ||
tc-ns32k.h | ||
tc-pj.c | ||
tc-pj.h | ||
tc-ppc.c | ||
tc-ppc.h | ||
tc-sh.c | ||
tc-sh.h | ||
tc-sparc.c | ||
tc-sparc.h | ||
tc-tahoe.c | ||
tc-tahoe.h | ||
tc-tic30.c | ||
tc-tic30.h | ||
tc-tic80.c | ||
tc-tic80.h | ||
tc-v850.c | ||
tc-v850.h | ||
tc-vax.c | ||
tc-vax.h | ||
tc-w65.c | ||
tc-w65.h | ||
tc-z8k.c | ||
tc-z8k.h | ||
te-386bsd.h | ||
te-aux.h | ||
te-delt88.h | ||
te-delta.h | ||
te-dpx2.h | ||
te-dynix.h | ||
te-epoc-pe.h | ||
te-generic.h | ||
te-go32.h | ||
te-hp300.h | ||
te-hppa.h | ||
te-i386aix.h | ||
te-ic960.h | ||
te-interix.h | ||
te-linux.h | ||
te-lnews.h | ||
te-lynx.h | ||
te-mach.h | ||
te-macos.h | ||
te-nbsd532.h | ||
te-nbsd.h | ||
te-pc532mach.h | ||
te-pe.h | ||
te-ppcnw.h | ||
te-psos.h | ||
te-riscix.h | ||
te-sparcaout.h | ||
te-sun3.h | ||
te-svr4.h | ||
te-sysv32.h | ||
te-wince-pe.h | ||
vax-inst.h | ||
vms-a-conf.h | ||
vms-conf.h |