From: Richard Kenner Date: Mon, 28 Feb 1994 12:12:17 +0000 (-0500) Subject: (READONLY_DATA_SECTION, LEGITIMATE_PIC_OPERAND_P): Defined. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=72ba655679d88cd4f5bb2bbd716a6c44e2170394;p=gcc.git (READONLY_DATA_SECTION, LEGITIMATE_PIC_OPERAND_P): Defined. (FUNCTION_PROLOGUE): Emit PIC prologue. From-SVN: r6673 --- diff --git a/gcc/config/m68k/hp320.h b/gcc/config/m68k/hp320.h index 437044eed03..54220c0f785 100644 --- a/gcc/config/m68k/hp320.h +++ b/gcc/config/m68k/hp320.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. HP-UX 68000/68020 version. - Copyright (C) 1987, 1988, 1993 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -160,6 +160,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #undef ASM_APP_OFF #undef TEXT_SECTION_ASM_OP #undef DATA_SECTION_ASM_OP +#undef READONLY_DATA_SECTION #undef ASM_OUTPUT_DOUBLE #undef ASM_OUTPUT_FLOAT #undef ASM_OUTPUT_INT @@ -211,7 +212,15 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ mask &= ~ (1 << (15-FRAME_POINTER_REGNUM)); \ if (exact_log2 (mask) >= 0) \ fprintf (FILE, "\tmov.l %s,-(%%sp)\n", reg_names[15 - exact_log2 (mask)]); \ - else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); } + else if (mask) fprintf (FILE, "\tmovm.l &0x%x,-(%%sp)\n", mask); }\ + if (flag_pic && current_function_uses_pic_offset_table) \ + { \ + fprintf (FILE, "\tmov.l &DLT, %s\n",\ + reg_names[PIC_OFFSET_TABLE_REGNUM]); \ + fprintf (FILE, "\tlea.l -0x6(%%pc,%s.l),%s\n", \ + reg_names[PIC_OFFSET_TABLE_REGNUM], \ + reg_names[PIC_OFFSET_TABLE_REGNUM]); \ + } #define FUNCTION_PROFILER(FILE, LABEL_NO) \ fprintf (FILE, "\tmov.l &LP%d,%%a0\n\tjsr mcount\n", (LABEL_NO)); @@ -307,7 +316,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define TEXT_SECTION_ASM_OP "text" #define DATA_SECTION_ASM_OP "data" #endif - +#define READONLY_DATA_SECTION data_section #define ASCII_DATA_ASM_OP "byte" /* This is the command to make the user-level label named NAME @@ -669,3 +678,9 @@ do { register int i; \ (LABEL_NO)); #endif /* not HPUX_ASM */ +/* In m68k svr4, a symbol_ref rtx can be a valid PIC operand if it is an + operand of a function call. */ +#undef LEGITIMATE_PIC_OPERAND_P +#define LEGITIMATE_PIC_OPERAND_P(X) \ + (! symbolic_operand (X, VOIDmode) \ + || ((GET_CODE(X) == SYMBOL_REF) && SYMBOL_REF_FLAG(X)))