diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-02 10:59:42 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-02 10:59:42 +0000 |
commit | 5c66405bf9241c305be866f3a786513e4fe917da (patch) | |
tree | 70110e347db132c6e0f4f51554c0c0348a6fc741 /gcc/config/i386/linux64.h | |
parent | e9a0f285818ea3e0f7f5630ecb22d4b358f7eeed (diff) | |
download | gcc-5c66405bf9241c305be866f3a786513e4fe917da.tar.gz |
* doc/invoke.texi (i386 Options): Document x86-64 options.
(i386 and x86-64 Options): Rename i386 options section.
* config/i386/i386.h (TARGET_UNWIND_INFO): New.
(TARGET_SWITCHES): Add -munwind-info.
(MASK_NO_UNWIND_INFO): New.
(NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
biarch compilation.
(ASM_OUTPUT_DOUBLE_INT): New.
* config/i386/linux64.h: New spec file for Linux x86-64 support.
* config.gcc: Fix tm_file settings for x86-64.
* config/i386/x86-64.h: New file with OS independent x86-64
definitions.
* config/i386/biarch64.h: New file used to configure compiler
to biarch/64bit compilation.
* config/i386/i386.c: (override_options): Set flags default
for 64bit compilation.
* i386.c (legitimize_pic_address): Add missing bits of 64bit support.
(ix86_expand_int_movcc): Optimize DImode conditional moves with
constants on x86_64.
(ix86_attr_length_immediate_default): Support MODE_DI.
* i386.md (fixdi splitter): Add missing "&& 1" in splitter
condition.
(indirect_jump, tablejump): Turn into expander.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45946 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/linux64.h')
-rw-r--r-- | gcc/config/i386/linux64.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h new file mode 100644 index 00000000000..529c3014290 --- /dev/null +++ b/gcc/config/i386/linux64.h @@ -0,0 +1,48 @@ +/* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format. + Copyright (C) 2001 Free Software Foundation, Inc. + Contributed by Jan Hubicka <jh@suse.cz>, based on linux.h. + +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. */ + +#define LINUX_DEFAULT_ELF + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (x86-64 Linux/ELF)"); + +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-D__ELF__ -Dunix -Dlinux -Asystem(posix)" + +#undef CPP_SPEC +#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} %{!m32:-D__LONG_MAX__=9223372036854775807L}" + +/* Provide a LINK_SPEC. Here we provide support for the special GCC + options -static and -shared, which allow us to link things in one + of these three modes by applying the appropriate combinations of + options at link-time. + + When the -shared link option is used a final link is not being + done. */ + +#undef LINK_SPEC +#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} {shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld64.so.1}} \ + %{static:-static}}" + |