summaryrefslogtreecommitdiff
path: root/gcc/config/sh/t-sh
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-02 03:28:47 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-02 03:28:47 +0000
commit0abf894c1fcf45f2a726011624d0a18b878ad214 (patch)
tree778c9a0d798070b0eff6fbf93318bc7e2b6452f4 /gcc/config/sh/t-sh
parentd91f2122e6ec441dc2fff6302c869bba14f7443d (diff)
downloadgcc-0abf894c1fcf45f2a726011624d0a18b878ad214.tar.gz
* config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
config/sh/crtn.asm: New files. * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set. (crt1.o, crti.o, crtn.o): New targets. * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added sh/t-elf. * configure: Rebuilt. * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define. * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undefine for config/elfos.h to redefine. (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h. * config/sh/sh-protos.h (nonpic_symbol_mentioned_p, legitimize_pic_address, output_pic_addr_const): Declare. * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register. (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise. (TARGET_SWITCHES): New switch -mprefergot. (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot. (PIC_OFFSET_TABLE_REGNUM): Define. (GOT_SYMBOL_TABLE): Likewise. (LEGITIMIZE_ADDRESS): Use legitimize_pic_address. (ENCODE_SECTION_INFO): Define. (FINALIZE_PIC): New macros. (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro. (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const. * config/sh/sh.c (print_operand_address): Use output_pic_addr_const. (prepare_move_operands): Call emit_pic_move or emit_pic_const_move if appropriate. (output_far_jump): For PIC, use braf and output long offset. (machine_dependent_reorg): (sh_expand_prologue): Save and initialize the PIC register. (sh_expand_epilogue): Restore it. (initial_elimination_offset): Account for it. (nonpic_symbol_mentioned_p): New function. (legitimize_pic_address): Likewise. (output_pic_addr_const): Likewise. * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns. (call, call_value): Use them. (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg, symPLT_label2reg): New expands. * invoke.texi (SH Options): Document -mprefergot. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36111 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/t-sh')
-rw-r--r--gcc/config/sh/t-sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh
index cb187aa855c..99ae929d0f0 100644
--- a/gcc/config/sh/t-sh
+++ b/gcc/config/sh/t-sh
@@ -27,3 +27,12 @@ MULTILIB_MATCHES = m2=m3 m2=m4-nofpu
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
+
+$(T)crt1.o: $(srcdir)/config/sh/crt1.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o -x assembler-with-cpp $(srcdir)/config/sh/crt1.asm
+$(T)crti.o: $(srcdir)/config/sh/crti.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/sh/crti.asm
+$(T)crtn.o: $(srcdir)/config/sh/crtn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/sh/crtn.asm
+
+EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o