summaryrefslogtreecommitdiff
path: root/gcc/config/i386/linux64.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 10:59:42 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 10:59:42 +0000
commit5c66405bf9241c305be866f3a786513e4fe917da (patch)
tree70110e347db132c6e0f4f51554c0c0348a6fc741 /gcc/config/i386/linux64.h
parente9a0f285818ea3e0f7f5630ecb22d4b358f7eeed (diff)
downloadgcc-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.h48
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}}"
+