aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorTom Wood <wood@gnu.org>1992-03-19 20:41:45 +0000
committerTom Wood <wood@gnu.org>1992-03-19 20:41:45 +0000
commitb335c2ccab1de6da9e2a0a3b4253408036feec36 (patch)
tree835f283d52c10e4198adffd60d81eb776bc62c10 /gcc/config/i386
parentd742f26c5bb11a55364d269688ae8bb69f35c4c2 (diff)
downloadgcc-b335c2ccab1de6da9e2a0a3b4253408036feec36.zip
gcc-b335c2ccab1de6da9e2a0a3b4253408036feec36.tar.gz
gcc-b335c2ccab1de6da9e2a0a3b4253408036feec36.tar.bz2
*** empty log message ***
From-SVN: r526
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/sysv3.h25
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/config/i386/sysv3.h b/gcc/config/i386/sysv3.h
index 750e1f4..0aaa69ac 100644
--- a/gcc/config/i386/sysv3.h
+++ b/gcc/config/i386/sysv3.h
@@ -99,26 +99,23 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_POINTER_REQUIRED \
(current_function_calls_setjmp || current_function_calls_longjmp)
-/* Define a few machine-specific details
- of the implementation of constructors.
+/* Define a few machine-specific details of the implementation of
+ constructors.
- CTORS_SECTION_ASM_OP should be defined to concatenate
- the macro INIT_SECTION_ASM_OP, a newline, and a push instruction
- to push a word containing 0 (or some equivalent of that).
+ The __CTORS_LIST__ goes in the .init section. Define CTOR_LIST_BEGIN
+ and CTOR_LIST_END to contribute to the .init section an instruction to
+ push a word containing 0 (or some equivalent of that).
- ASM_OUTPUT_CONSTRUCTOR should be defined
- to push the address of the constructor. */
+ ASM_OUTPUT_CONSTRUCTOR should be defined to push the address of the
+ constructor. */
#undef INIT_SECTION_ASM_OP
#define INIT_SECTION_ASM_OP ".section .init,\"x\""
-#define CTORS_SECTION_ASM_OP \
- INIT_SECTION_ASM_OP "\n" \
- "\tpushl $0\n\t" \
- DATA_SECTION_ASM_OP
-/* The reason we end with DATA_SECTION_ASM_OP is to prevent the
- initial and final table elements (see crtstuff.c) from getting into
- the .init section and causing a crash. */
+#define CTOR_LIST_BEGIN \
+ asm (INIT_SECTION_ASM_OP); \
+ asm ("pushl $0")
+#define CTOR_LIST_END CTOR_LIST_BEGIN
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \