xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/i386/sysv4.h (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
11debfc3dSmrg /* Target definitions for GCC for Intel 80386 running System V.4
2*8feb0f0bSmrg    Copyright (C) 1991-2020 Free Software Foundation, Inc.
31debfc3dSmrg 
41debfc3dSmrg    Written by Ron Guilmette (rfg@netcom.com).
51debfc3dSmrg 
61debfc3dSmrg This file is part of GCC.
71debfc3dSmrg 
81debfc3dSmrg GCC is free software; you can redistribute it and/or modify
91debfc3dSmrg it under the terms of the GNU General Public License as published by
101debfc3dSmrg the Free Software Foundation; either version 3, or (at your option)
111debfc3dSmrg any later version.
121debfc3dSmrg 
131debfc3dSmrg GCC is distributed in the hope that it will be useful,
141debfc3dSmrg but WITHOUT ANY WARRANTY; without even the implied warranty of
151debfc3dSmrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
161debfc3dSmrg GNU General Public License for more details.
171debfc3dSmrg 
181debfc3dSmrg You should have received a copy of the GNU General Public License
191debfc3dSmrg along with GCC; see the file COPYING3.  If not see
201debfc3dSmrg <http://www.gnu.org/licenses/>.  */
211debfc3dSmrg 
221debfc3dSmrg /* Output at beginning of assembler file.  */
231debfc3dSmrg /* The .file command should always begin the output.  */
241debfc3dSmrg 
251debfc3dSmrg #define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
261debfc3dSmrg #undef X86_FILE_START_VERSION_DIRECTIVE
271debfc3dSmrg #define X86_FILE_START_VERSION_DIRECTIVE true
281debfc3dSmrg 
291debfc3dSmrg #undef DBX_REGISTER_NUMBER
301debfc3dSmrg #define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
311debfc3dSmrg 
321debfc3dSmrg /* A C statement (sans semicolon) to output to the stdio stream
331debfc3dSmrg    FILE the assembler definition of uninitialized global DECL named
341debfc3dSmrg    NAME whose size is SIZE bytes and alignment is ALIGN bytes.
351debfc3dSmrg    Try to use asm_output_aligned_bss to implement this macro.  */
361debfc3dSmrg 
371debfc3dSmrg #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
381debfc3dSmrg   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
391debfc3dSmrg 
401debfc3dSmrg /* Handle special EH pointer encodings.  Absolute, pc-relative, and
411debfc3dSmrg    indirect are handled automatically.  */
421debfc3dSmrg #define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
431debfc3dSmrg   do {									\
441debfc3dSmrg     if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel)		\
451debfc3dSmrg       {									\
461debfc3dSmrg 	fputs (ASM_LONG, (FILE));					\
471debfc3dSmrg 	assemble_name (FILE, XSTR (ADDR, 0));				\
481debfc3dSmrg 	fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), (FILE)); \
491debfc3dSmrg 	goto DONE;							\
501debfc3dSmrg       }									\
511debfc3dSmrg   } while (0)
52