|
|
1.1 root 1: /* Definitions for Intel 386 running system V, using gas. 1.1.1.2 ! root 2: Copyright (C) 1992, 1995 Free Software Foundation, Inc. 1.1 root 3: 4: This file is part of GNU CC. 5: 6: GNU CC is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU CC is distributed in the hope that it will be useful, 12: but WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14: GNU General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU CC; see the file COPYING. If not, write to 1.1.1.2 ! root 18: the Free Software Foundation, 59 Temple Place - Suite 330, ! 19: Boston, MA 02111-1307, USA. */ 1.1 root 20: 1.1.1.2 ! root 21: #include <i386/gas.h> 1.1 root 22: 23: /* Add stuff that normally comes from i386v.h */ 24: 25: /* longjmp may fail to restore the registers if called from the same 26: function that called setjmp. To compensate, the compiler avoids 27: putting variables in registers in functions that use both setjmp 28: and longjmp. */ 29: 30: #define NON_SAVING_SETJMP \ 31: (current_function_calls_setjmp && current_function_calls_longjmp) 32: 33: /* longjmp may fail to restore the stack pointer if the saved frame 34: pointer is the same as the caller's frame pointer. Requiring a frame 35: pointer in any function that calls setjmp or longjmp avoids this 36: problem, unless setjmp and longjmp are called from the same function. 37: Since a frame pointer will be required in such a function, it is OK 38: that the stack pointer is not restored. */ 39: 40: #undef FRAME_POINTER_REQUIRED 41: #define FRAME_POINTER_REQUIRED \ 42: (current_function_calls_setjmp || current_function_calls_longjmp) 43: 44: /* Modify ASM_OUTPUT_LOCAL slightly to test -msvr3-shlib, adapted to gas */ 45: #undef ASM_OUTPUT_LOCAL 46: #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ 47: do { \ 48: int align = exact_log2 (ROUNDED); \ 49: if (align > 2) align = 2; \ 50: if (TARGET_SVR3_SHLIB) \ 51: { \ 52: data_section (); \ 53: ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \ 54: ASM_OUTPUT_LABEL ((FILE), (NAME)); \ 55: fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED)); \ 56: } \ 57: else \ 58: { \ 59: fputs (".lcomm ", (FILE)); \ 60: assemble_name ((FILE), (NAME)); \ 61: fprintf ((FILE), ",%u\n", (ROUNDED)); \ 62: } \ 63: } while (0) 64: 65: /* Add stuff that normally comes from i386v.h via svr3.h */ 66: 67: /* Define the actual types of some ANSI-mandated types. These 68: definitions should work for most SVR3 systems. */ 69: 70: #undef SIZE_TYPE 71: #define SIZE_TYPE "unsigned int" 72: 73: #undef PTRDIFF_TYPE 74: #define PTRDIFF_TYPE "int" 75: 76: #undef WCHAR_TYPE 77: #define WCHAR_TYPE "long int" 78: 79: #undef WCHAR_TYPE_SIZE 80: #define WCHAR_TYPE_SIZE BITS_PER_WORD
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.