summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-24 18:31:07 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-24 18:31:07 +0000
commitcf4f27b5da0da3f24fd7d288f9668a0720a1e7b7 (patch)
tree82b8153b18de7e1ad4296f40b025b31046788416
parent3a8605c125e417d471b903c344a304e750bea512 (diff)
downloadppe42-gcc-cf4f27b5da0da3f24fd7d288f9668a0720a1e7b7.tar.gz
ppe42-gcc-cf4f27b5da0da3f24fd7d288f9668a0720a1e7b7.zip
* config/i386/i386.c (override_options): Don't accept
-mtls-dialect=sun any longer. * config/i386/i386.h (TARGET_SUN_TLS): Define as 0. * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove. (*tls_local_dynamic_base_32_sun): Likewise. * config/i386/sol2.h (TARGET_SUN_TLS): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157704 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/config/i386/i386.h4
-rw-r--r--gcc/config/i386/i386.md31
-rw-r--r--gcc/config/i386/sol2.h5
5 files changed, 17 insertions, 34 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2f7cb9d40dd..1bbb9d8f9d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/i386.c (override_options): Don't accept
+ -mtls-dialect=sun any longer.
+ * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
+ * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
+ (*tls_local_dynamic_base_32_sun): Likewise.
+ * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
+
2010-03-24 Jakub Jelinek <jakub@redhat.com>
PR debug/43508
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index f6a1346c7ff..2179b5a1fb0 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3197,8 +3197,6 @@ override_options (bool main_args_p)
ix86_tls_dialect = TLS_DIALECT_GNU;
else if (strcmp (ix86_tls_dialect_string, "gnu2") == 0)
ix86_tls_dialect = TLS_DIALECT_GNU2;
- else if (strcmp (ix86_tls_dialect_string, "sun") == 0)
- ix86_tls_dialect = TLS_DIALECT_SUN;
else
error ("bad value (%s) for %stls-dialect=%s %s",
ix86_tls_dialect_string, prefix, suffix, sw);
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index fa94091930e..521e2feb4f0 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GCC for IA-32.
Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GCC.
@@ -429,7 +429,7 @@ extern int x86_prefetch_sse;
#define TARGET_GNU_TLS (ix86_tls_dialect == TLS_DIALECT_GNU)
#define TARGET_GNU2_TLS (ix86_tls_dialect == TLS_DIALECT_GNU2)
#define TARGET_ANY_GNU_TLS (TARGET_GNU_TLS || TARGET_GNU2_TLS)
-#define TARGET_SUN_TLS (ix86_tls_dialect == TLS_DIALECT_SUN)
+#define TARGET_SUN_TLS 0
extern int ix86_isa_flags;
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 924433f88a4..da28f1cc840 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1,6 +1,6 @@
;; GCC machine description for IA-32 and x86-64.
;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
;; Free Software Foundation, Inc.
;; Mostly by William Schelter.
;; x86_64 support added by Jan Hubicka
@@ -14495,21 +14495,6 @@
[(set_attr "type" "multi")
(set_attr "length" "12")])
-(define_insn "*tls_global_dynamic_32_sun"
- [(set (match_operand:SI 0 "register_operand" "=a")
- (unspec:SI [(match_operand:SI 1 "register_operand" "b")
- (match_operand:SI 2 "tls_symbolic_operand" "")
- (match_operand:SI 3 "call_insn_operand" "")]
- UNSPEC_TLS_GD))
- (clobber (match_scratch:SI 4 "=d"))
- (clobber (match_scratch:SI 5 "=c"))
- (clobber (reg:CC FLAGS_REG))]
- "!TARGET_64BIT && TARGET_SUN_TLS"
- "lea{l}\t{%a2@DTLNDX(%1), %4|%4, %a2@DTLNDX[%1]}
- push{l}\t%4\;call\t%a2@TLSPLT\;pop{l}\t%4\;nop"
- [(set_attr "type" "multi")
- (set_attr "length" "14")])
-
(define_expand "tls_global_dynamic_32"
[(parallel [(set (match_operand:SI 0 "register_operand" "")
(unspec:SI
@@ -14578,20 +14563,6 @@
[(set_attr "type" "multi")
(set_attr "length" "11")])
-(define_insn "*tls_local_dynamic_base_32_sun"
- [(set (match_operand:SI 0 "register_operand" "=a")
- (unspec:SI [(match_operand:SI 1 "register_operand" "b")
- (match_operand:SI 2 "call_insn_operand" "")]
- UNSPEC_TLS_LD_BASE))
- (clobber (match_scratch:SI 3 "=d"))
- (clobber (match_scratch:SI 4 "=c"))
- (clobber (reg:CC FLAGS_REG))]
- "!TARGET_64BIT && TARGET_SUN_TLS"
- "lea{l}\t{%&@TMDNX(%1), %3|%3, %&@TMDNX[%1]}
- push{l}\t%3\;call\t%&@TLSPLT\;pop{l}\t%3"
- [(set_attr "type" "multi")
- (set_attr "length" "13")])
-
(define_expand "tls_local_dynamic_base_32"
[(parallel [(set (match_operand:SI 0 "register_operand" "")
(unspec:SI [(match_dup 1) (match_dup 2)]
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index 00f1870801d..addaf81df36 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -91,6 +91,11 @@ along with GCC; see the file COPYING3. If not see
} \
} while (0)
+/* Follow Sun requirements for TLS code sequences and use Sun assembler TLS
+ syntax. */
+#undef TARGET_SUN_TLS
+#define TARGET_SUN_TLS 1
+
/* The Solaris assembler cannot grok .stabd directives. */
#undef NO_DBX_BNSYM_ENSYM
#define NO_DBX_BNSYM_ENSYM 1
OpenPOWER on IntegriCloud