|
|
1.1 ! root 1: /* Definitions for IBM PS2 running AIX/386. ! 2: From: Minh Tran-Le <[email protected]> ! 3: Copyright (C) 1988 Free Software Foundation, Inc. ! 4: ! 5: This file is part of GNU CC. ! 6: ! 7: GNU CC is free software; you can redistribute it and/or modify ! 8: it under the terms of the GNU General Public License as published by ! 9: the Free Software Foundation; either version 2, or (at your option) ! 10: any later version. ! 11: ! 12: GNU CC is distributed in the hope that it will be useful, ! 13: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 15: GNU General Public License for more details. ! 16: ! 17: You should have received a copy of the GNU General Public License ! 18: along with GNU CC; see the file COPYING. If not, write to ! 19: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 20: ! 21: ! 22: #include "i386.h" ! 23: ! 24: /* Get the generic definitions for system V.3. */ ! 25: ! 26: #include "svr3.h" ! 27: ! 28: /* Use the ATT assembler syntax. ! 29: This overrides at least one macro (ASM_OUTPUT_LABELREF) from svr3.h. */ ! 30: ! 31: #include "att386.h" ! 32: ! 33: /* By default, target has a 80387. */ ! 34: ! 35: #define TARGET_DEFAULT 1 ! 36: ! 37: /* Use crt1.o as a startup file and crtn.o as a closing file. */ ! 38: ! 39: #define STARTFILE_SPEC \ ! 40: "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}} crtbegin.o%s" ! 41: ! 42: #define LIB_SPEC "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} -lc \ ! 43: crtend.o%s crtn.o%s" ! 44: ! 45: /* Special flags for the linker. I don't know what they do. */ ! 46: ! 47: #define LINK_SPEC "%{K} %{!K:-K} %{T*} %{z:-lm}" ! 48: ! 49: /* Specify predefined symbols in preprocessor. */ ! 50: ! 51: #define CPP_PREDEFINES "-D_I386 -Di386 -DAIX -D_AIX" ! 52: ! 53: /* special flags for the aix assembler to generate the short form for all ! 54: qualifying forward reference */ ! 55: ! 56: #define ASM_SPEC "-s2" ! 57: ! 58: #undef ASM_FILE_START ! 59: #define ASM_FILE_START(FILE) \ ! 60: do { fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name); \ ! 61: if (optimize) \ ! 62: ASM_FILE_START_1 (FILE); \ ! 63: else \ ! 64: fprintf (FILE, "\t.noopt\n"); \ ! 65: } while (0) ! 66: ! 67: /* This was suggested, but it shouldn't be right for DBX output. -- RMS ! 68: #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */ ! 69: ! 70: /* Writing `int' for a bitfield forces int alignment for the structure. */ ! 71: ! 72: #define PCC_BITFIELD_TYPE_MATTERS 1 ! 73: ! 74: #if 0 ! 75: /* Don't write a `.optim' pseudo; this assembler ! 76: is said to have a bug when .optim is used. */ ! 77: ! 78: #undef ASM_FILE_START_1 ! 79: #define ASM_FILE_START_1(FILE) fprintf (FILE, "\t.noopt\n"); ! 80: #endif ! 81: ! 82: /* Machines that use the AT&T assembler syntax ! 83: also return floating point values in an FP register. */ ! 84: /* Define how to find the value returned by a function. ! 85: VALTYPE is the data type of the value (as a tree). ! 86: If the precise function being called is known, FUNC is its FUNCTION_DECL; ! 87: otherwise, FUNC is 0. */ ! 88: ! 89: #define VALUE_REGNO(MODE) \ ! 90: (((MODE)==SFmode || (MODE)==DFmode) ? FIRST_FLOAT_REG : 0) ! 91: ! 92: /* 1 if N is a possible register number for a function value. */ ! 93: ! 94: #define FUNCTION_VALUE_REGNO_P(N) ((N) == 0 || (N)== FIRST_FLOAT_REG) ! 95: ! 96: /* Output assembler code to FILE to increment profiler label # LABELNO ! 97: for profiling a function entry. */ ! 98: ! 99: #undef FUNCTION_PROFILER ! 100: #define FUNCTION_PROFILER(FILE, LABELNO) \ ! 101: fprintf (FILE, "\tleal %sP%d,%%eax\n\tcall mcount\n", LPREFIX, (LABELNO)); ! 102: ! 103: /* Note that using bss_section here caused errors ! 104: in building shared libraries on system V.3. ! 105: but AIX 1.2 does not have yet shareable libraries on PS2 */ ! 106: #undef ASM_OUTPUT_LOCAL ! 107: #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ ! 108: (bss_section (), \ ! 109: ASM_OUTPUT_LABEL ((FILE), (NAME)), \ ! 110: fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED))) ! 111: ! 112: /* Define a few machine-specific details ! 113: of the implementation of constructors. */ ! 114: ! 115: #undef INIT_SECTION_ASM_OP ! 116: #define INIT_SECTION_ASM_OP ".section .init,\"x\"" ! 117: ! 118: #define CTORS_SECTION_ASM_OP \ ! 119: INIT_SECTION_ASM_OP "\n" \ ! 120: "\tpushl $0\n\t" \ ! 121: DATA_SECTION_ASM_OP ! 122: ! 123: #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ ! 124: do { \ ! 125: init_section (); \ ! 126: fprintf (FILE, "\tpushl $"); \ ! 127: assemble_name (FILE, NAME); \ ! 128: fprintf (FILE, "\n"); \ ! 129: } while (0)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.