gcc/ PR target/34981 * config/mips/mips-protos.h (mips_expand_call): Return an rtx. * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO to GOT_VERSION_REGNUM. (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0. (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. * config/mips/mips.c (mips_emit_call_insn): New function. (mips_call_tls_get_addr): Call mips_expand_call directly. (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than emit_call_insn. (mips16_build_call_stub): Likewise. Return the call insn or null. (mips_expand_call): Update the call to mips16_build_call_stub accordingly and a remove redundant condition. Assert that MIPS16 stubs do not use lazy binding. Use mips_emit_call_insn and return the call insn. (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM. (mips_avoid_hazard): Remove hazard_set handling. * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to... (UNSPEC_RESTORE_GP): ...this. (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants. (FAKE_CALL_REGNO): Rename to... (GOT_VERSION_REGNUM): ...this. (type): Add "ghost" value. Add an associated insn reservation. (hazard_set): Remove. (exception_receiver): Rename to... (restore_gp): ...this and update the unspec identifier accordingly. (exception_receiver, nonlocal_got_receiver): New expanders. (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set FAKE_CALL_REGNO. Remove hazard_set attribute. (set_got_version, update_got_version): New patterns. gcc/testsuite/ PR target/34981 * gcc.target/mips/lazy-binding-1.c: New test. * gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_no_abicalls and mips_forced_no_shared. (dg-mips-options): Avoid using -mabicalls with an implicit -mabi=eabi. Avoid using small data with -mabicalls. Don't make -G0 force -mn-abicalls. Skip -mabicalls and -mshared tests if the multilib forces the opposite option. From-SVN: r131860
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
20kc.md | Loading commit data... | |
24k.md | Loading commit data... | |
3000.md | Loading commit data... | |
4000.md | Loading commit data... | |
4100.md | Loading commit data... | |
4130.md | Loading commit data... | |
4300.md | Loading commit data... | |
4600.md | Loading commit data... | |
4k.md | Loading commit data... | |
5000.md | Loading commit data... | |
5400.md | Loading commit data... | |
5500.md | Loading commit data... | |
5k.md | Loading commit data... | |
6000.md | Loading commit data... | |
7000.md | Loading commit data... | |
74k.md | Loading commit data... | |
9000.md | Loading commit data... | |
constraints.md | Loading commit data... | |
crti.asm | Loading commit data... | |
crtn.asm | Loading commit data... | |
dbxmdebug.h | Loading commit data... | |
elf.h | Loading commit data... | |
elfoabi.h | Loading commit data... | |
elforion.h | Loading commit data... | |
generic.md | Loading commit data... | |
iris.h | Loading commit data... | |
iris5.h | Loading commit data... | |
iris6.h | Loading commit data... | |
irix-crti.asm | Loading commit data... | |
irix-crtn.asm | Loading commit data... | |
linux-unwind.h | Loading commit data... | |
linux.h | Loading commit data... | |
linux64.h | Loading commit data... | |
mips-dsp.md | Loading commit data... | |
mips-dspr2.md | Loading commit data... | |
mips-fixed.md | Loading commit data... | |
mips-ftypes.def | Loading commit data... | |
mips-modes.def | Loading commit data... | |
mips-protos.h | Loading commit data... | |
mips-ps-3d.md | Loading commit data... | |
mips.c | Loading commit data... | |
mips.h | Loading commit data... | |
mips.md | Loading commit data... | |
mips.opt | Loading commit data... | |
mips16.S | Loading commit data... | |
netbsd.h | Loading commit data... | |
openbsd.h | Loading commit data... | |
predicates.md | Loading commit data... | |
r3900.h | Loading commit data... | |
rtems.h | Loading commit data... | |
sb1.md | Loading commit data... | |
sdb.h | Loading commit data... | |
sde.h | Loading commit data... | |
sdemtk.h | Loading commit data... | |
sdemtk.opt | Loading commit data... | |
sr71k.md | Loading commit data... | |
t-elf | Loading commit data... | |
t-gofast | Loading commit data... | |
t-iris | Loading commit data... | |
t-iris6 | Loading commit data... | |
t-isa3264 | Loading commit data... | |
t-libgcc-mips16 | Loading commit data... | |
t-linux64 | Loading commit data... | |
t-mips | Loading commit data... | |
t-r3900 | Loading commit data... | |
t-rtems | Loading commit data... | |
t-sb1 | Loading commit data... | |
t-sde | Loading commit data... | |
t-sdemtk | Loading commit data... | |
t-slibgcc-irix | Loading commit data... | |
t-sr71k | Loading commit data... | |
t-vr | Loading commit data... | |
t-vxworks | Loading commit data... | |
vr.h | Loading commit data... | |
vr4120-div.S | Loading commit data... | |
vxworks.h | Loading commit data... | |
windiss.h | Loading commit data... |