gcc/
2008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* doc/install.texi (--with-mips-plt): Document.
* doc/invoke.texi (-mplt, -mno-plt): Document.
* config.gcc (mips*-*-*): Add mips-plt to supported_defaults
and handle ${with_mips_plt}.
* config/mips/mips.opt (mplt): New option.
* config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
(TARGET_ABICALLS_PIC2): Likewise.
(TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
(OPTION_DEFAULT_SPECS): Add a mips-plt entry.
(ASM_SPEC): Use !mabi=* instead of !mabi*.
(MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
to decide whether to output ".option picX" directives.
* config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
Pass -call_nonpic rather than -KPIC for -mplt.
(BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
on the command line. Also remove it when -mabi=64 is used without
-msym32.
* config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
* config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
TARGET_ABICALLS_PIC0.
(mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
TARGET_ABICALLS.
(mips16_build_function_stub): Only output ".option pic" directives
and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
(mips16_build_call_stub): Fix comment and remove redundant
".set at"/"set .noat" directives.
(mips_function_rodata_section): Use the default behaviour for
TARGET_ABSOLUTE_ABICALLS.
(mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
(mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
(mips_restore_gp): Do nothing if the current function doesn't use
a global pointer.
(mips_expand_prologue): Only save $gp if the current function uses it.
Use a normal move for TARGET_ABICALLS_PIC0.
(mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r139170
| 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... | |
| driver-native.c | 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... | |
| libgcc-mips16.ver | Loading commit data... | |
| linux-unwind.h | Loading commit data... | |
| linux.h | Loading commit data... | |
| linux64.h | Loading commit data... | |
| loongson.h | Loading commit data... | |
| loongson.md | Loading commit data... | |
| loongson2ef.md | 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... | |
| st.h | 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-st | 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... | |
| x-native | Loading commit data... | |
| xlr.md | Loading commit data... |