diff options
author | Tom Wood <wood@gnu.org> | 1992-03-19 20:41:45 +0000 |
---|---|---|
committer | Tom Wood <wood@gnu.org> | 1992-03-19 20:41:45 +0000 |
commit | b335c2ccab1de6da9e2a0a3b4253408036feec36 (patch) | |
tree | 835f283d52c10e4198adffd60d81eb776bc62c10 /gcc/config/i386 | |
parent | d742f26c5bb11a55364d269688ae8bb69f35c4c2 (diff) | |
download | gcc-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.h | 25 |
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 { \ |