/* 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.
#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
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));
#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
(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)))