| /* Definitions of target machine for GNU compiler. Harris tahoe version. |
| Copyright (C) 1989, 1993 Free Software Foundation, Inc. |
| |
| This file is part of GNU CC. |
| |
| GNU CC is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2, or (at your option) |
| any later version. |
| |
| GNU CC is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GNU CC; see the file COPYING. If not, write to |
| the Free Software Foundation, 59 Temple Place - Suite 330, |
| Boston, MA 02111-1307, USA. */ |
| |
| |
| #include "tahoe/tahoe.h" |
| |
| #undef CPP_PREDEFINES |
| #define CPP_PREDEFINES "-Dtahoe -Dunix -Dhcx -Asystem(unix) -Acpu(tahoe) -Amachine(tahoe)" |
| |
| #undef DBX_DEBUGGING_INFO |
| #define SDB_DEBUGGING_INFO |
| |
| #undef LIB_SPEC |
| |
| #undef TARGET_DEFAULT |
| #define TARGET_DEFAULT 1 |
| |
| /* urem and udiv don't exist on this system. */ |
| #undef UDIVSI3_LIBCALL |
| #undef UMODSI3_LIBCALL |
| |
| /* Operand of .align is not logarithmic. */ |
| #undef ASM_OUTPUT_ALIGN |
| #define ASM_OUTPUT_ALIGN(FILE,LOG) \ |
| LOG ? fprintf (FILE, "\t.align %d\n", 1 << (LOG)) : 0 |
| |
| /* For the same reason, we need .align 2 after casesi. */ |
| #undef PRINT_OPERAND |
| #define PRINT_OPERAND(FILE, X, CODE) \ |
| { if (CODE == '@') \ |
| putc ('2', FILE); \ |
| else if (GET_CODE (X) == REG) \ |
| fprintf (FILE, "%s", reg_names[REGNO (X)]); \ |
| else if (GET_CODE (X) == MEM) \ |
| output_address (XEXP (X, 0)); \ |
| else { putc ('$', FILE); output_addr_const (FILE, X); }} |
| |
| #undef ASM_OUTPUT_LOCAL |
| #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ |
| ( fputs (".bss ", (FILE)), \ |
| assemble_name ((FILE), (NAME)), \ |
| fprintf ((FILE), ",%u,4\n", (ROUNDED))) |
| |
| /* Output at beginning of assembler file. */ |
| /* The .file command should always begin the output. */ |
| |
| #undef ASM_FILE_START |
| #define ASM_FILE_START(FILE) \ |
| output_file_directive ((FILE), main_input_filename); |
| |
| #define ASM_OUTPUT_ASCII(FILE, PTR, SIZE) \ |
| do { \ |
| unsigned char *_p = (PTR); \ |
| int _thissize = (SIZE); \ |
| fprintf ((FILE), "\t.ascii \""); \ |
| for (i = 0; i < _thissize; i++) \ |
| { \ |
| register int c = _p[i]; \ |
| if (c >= ' ' && c < 0177 && c != '\"' && c != '\\') \ |
| putc (c, (FILE)); \ |
| else \ |
| { \ |
| fprintf ((FILE), "\\%o", c); \ |
| if (i < _thissize - 1 \ |
| && _p[i + 1] >= '0' && _p[i + 1] <= '9') \ |
| fprintf ((FILE), "\"\n\t.ascii \""); \ |
| } \ |
| } \ |
| fprintf ((FILE), "\"\n"); \ |
| } while (0) |