diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7ff15a42d7e..96eb8d6a364 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon May 24 16:44:09 1999 Jakub Jelinek + + * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com) * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index 705b5ca33a0..a1a32dd7a37 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -364,3 +364,25 @@ do { \ "ta 0x21\n\t" \ : /* no outputs */ \ : "r" (ms_flags), "r" (ms_saveret)); + +/* A C statement (sans semicolon) to output an element in the table of + global constructors. */ +#undef ASM_OUTPUT_CONSTRUCTOR +#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ + do { \ + ctors_section (); \ + fprintf (FILE, "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP); \ + assemble_name (FILE, NAME); \ + fprintf (FILE, "\n"); \ + } while (0) + +/* A C statement (sans semicolon) to output an element in the table of + global destructors. */ +#undef ASM_OUTPUT_DESTRUCTOR +#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ + do { \ + dtors_section (); \ + fprintf (FILE, "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP); \ + assemble_name (FILE, NAME); \ + fprintf (FILE, "\n"); \ + } while (0)