X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Fconfig%2Fi386%2Flynx.h;fp=gcc%2Fconfig%2Fi386%2Flynx.h;h=cd8386231a3dad769f26ef3c749781c89c83fa66;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=91ed31e0bf718021a47844bd7980123858f4205b;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/config/i386/lynx.h b/gcc/config/i386/lynx.h index 91ed31e0..cd838623 100644 --- a/gcc/config/i386/lynx.h +++ b/gcc/config/i386/lynx.h @@ -1,39 +1,90 @@ -/* Definitions for Intel 386 running LynxOS. - Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Definitions for LynxOS on i386. + Copyright (C) 1993, 1995, 1996, 2002, 2004, 2005, 2007 + Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC 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) +the Free Software Foundation; either version 3, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC 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. */ +along with GCC; see the file COPYING3. If not see +. */ -#include -#include +#define TARGET_VERSION fputs (" (i386/LynxOS)", stderr); -#undef CPP_PREDEFINES -#define CPP_PREDEFINES "-DI386 -DLynx -DIBITS32 -Asystem=unix -Asystem=lynx" +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__LITTLE_ENDIAN__"); \ + builtin_define ("__x86__"); \ + } \ + while (0) -/* The prefix to add to user-visible assembler symbols. */ +/* The svr4 ABI for the i386 says that records and unions are returned + in memory. */ -/* Override the svr3 convention of adding a leading underscore. */ +#define DEFAULT_PCC_STRUCT_RETURN 1 -#undef USER_LABEL_PREFIX -#define USER_LABEL_PREFIX "" +/* BSS_SECTION_ASM_OP gets defined i386/unix.h. */ -/* Apparently LynxOS clobbers ebx when you call into the OS. */ +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) -#undef CALL_USED_REGISTERS -#define CALL_USED_REGISTERS \ -/*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7,arg*/ \ -{ 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } +/* LynxOS's GDB counts the floating point registers from 16. */ + +#undef DBX_REGISTER_NUMBER +#define DBX_REGISTER_NUMBER(n) \ + (TARGET_64BIT ? dbx64_register_map[n] \ + : (n) == 0 ? 0 \ + : (n) == 1 ? 2 \ + : (n) == 2 ? 1 \ + : (n) == 3 ? 3 \ + : (n) == 4 ? 6 \ + : (n) == 5 ? 7 \ + : (n) == 6 ? 5 \ + : (n) == 7 ? 4 \ + : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n) + 8 \ + : (-1)) + +/* A C statement to output to the stdio stream FILE an assembler + command to advance the location counter to a multiple of 1<