diff options
author | Richard Henderson <rth@redhat.com> | 2002-01-26 20:18:12 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-01-26 20:18:12 -0800 |
commit | cea3bd3e5a0a40eb90809bf90063da4911ba23b0 (patch) | |
tree | e5878dd8630022a33d8797b199100a5b12fc5c7f /gcc/config/s390 | |
parent | 1f9131b7db56276783f0276f2083c208dbf05709 (diff) | |
download | gcc-cea3bd3e5a0a40eb90809bf90063da4911ba23b0.tar.gz |
Makefile.in (CRTSTUFF_CFLAGS): New.
* Makefile.in (CRTSTUFF_CFLAGS): New.
(crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
* config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
crtstuff.c instead of alpha assembly version.
* crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
entire dummy function sequence. Use FORCE_CODE_SECTION_ALIGN
not FORCE_{INIT,FINI}_SECTION_ALIGN.
(__do_global_dtors_aux): Mark used.
(frame_dummy, __do_global_ctors_aux): Mark used.
(fini_dummy, init_dummy): Remove.
* config/alpha/crtbegin.asm: Remove file.
* config/alpha/crtend.asm: Remove file.
* config/alpha/t-crtbe: Remove file.
* config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
(LINK_EH_SPEC): New.
* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
FORCE_INIT_SECTION_ALIGN hack. Register __fini_start before
calling constructors.
* config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
* config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
CRT_END_INIT_DUMMY hack.
* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
FORCE_{INIT,FINI}_SECTION_ALIGN.
* config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
FORCE_{INIT,FINI}_SECTION_ALIGN.
* config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
invocation sequence.
* config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
* doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
(FORCE_CODE_SECTION_ALIGN): New.
From-SVN: r49261
Diffstat (limited to 'gcc/config/s390')
-rw-r--r-- | gcc/config/s390/s390.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index 57e39aa5f86..99e1ef98530 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -1299,15 +1299,13 @@ extern struct rtx_def *s390_compare_op0, *s390_compare_op1; /* S/390 constant pool breaks the devices in crtstuff.c to control section in where code resides. We have to write it as asm code. */ #ifndef __s390x__ -#define CRT_CALL_STATIC_FUNCTION(func) \ - if (0) \ - func (); /* ... to avoid warnings. */ \ - else \ - asm \ - ("bras\t%%r2,1f\n\ -0: .long\t" #func " - 0b\n\ +#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ + asm (SECTION_OP "\n\ + bras\t%%r2,1f\n\ +0: .long\t" USER_LABEL_PREFIX #FUNC " - 0b\n\ 1: l\t%%r3,0(%%r2)\n\ - bas\t%%r14,0(%%r3,%%r2)" : : : "2", "3", "cc", "memory"); + bas\t%%r14,0(%%r3,%%r2)\n\ + .previous"); #endif /* Constant Pool for all symbols operands which are changed with |