summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2012-09-07 08:06:43 +0000
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2012-09-07 08:06:43 +0000
commit3ca019da4ace0fa219c2717644fd5b510f0ae444 (patch)
treef16d1127cf8472509af1eea87a22ac183f9512eb
parent6a60f320d4e61988c939e20414137231a3d16760 (diff)
downloadgcc-3ca019da4ace0fa219c2717644fd5b510f0ae444.tar.gz
2012-09-07 Segher Boessenkool <segher@kernel.crashing.org>
gcc/ * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete. * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete. * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete. * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete. * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete. * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete. * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete. * config/rs6000/rs6000.c (print_operand) ['.']: Delete. * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete. * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>): Replace %. with nop. (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto. (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto. (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto. (call_nonlocal_aix32): Ditto. (call_nonlocal_aix64): Ditto. (call_value_nonlocal_aix32): Ditto. (call_value_nonlocal_aix64): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191055 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog21
-rw-r--r--gcc/config/rs6000/aix43.h6
-rw-r--r--gcc/config/rs6000/aix51.h6
-rw-r--r--gcc/config/rs6000/aix52.h6
-rw-r--r--gcc/config/rs6000/aix53.h6
-rw-r--r--gcc/config/rs6000/aix61.h6
-rw-r--r--gcc/config/rs6000/freebsd64.h4
-rw-r--r--gcc/config/rs6000/linux64.h4
-rw-r--r--gcc/config/rs6000/rs6000.c6
-rw-r--r--gcc/config/rs6000/rs6000.h4
-rw-r--r--gcc/config/rs6000/rs6000.md22
11 files changed, 33 insertions, 58 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1c910cbaad3..353978190c9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2012-09-07 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/rs6000.c (print_operand) ['.']: Delete.
+ * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
+ * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
+ Replace %. with nop.
+ (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
+ (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
+ (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
+ (call_nonlocal_aix32): Ditto.
+ (call_nonlocal_aix64): Ditto.
+ (call_value_nonlocal_aix32): Ditto.
+ (call_value_nonlocal_aix64): Ditto.
+
2012-06-04 Andi Kleen <ak@linux.intel.com>
* doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
diff --git a/gcc/config/rs6000/aix43.h b/gcc/config/rs6000/aix43.h
index c1a69dc3a5a..8ff211107ec 100644
--- a/gcc/config/rs6000/aix43.h
+++ b/gcc/config/rs6000/aix43.h
@@ -142,12 +142,6 @@ do { \
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "long int"
-/* AIX 4 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
- and "cror 31,31,31" for POWER architecture. */
-
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE "nop"
-
/* AIX 4.2 and above provides initialization and finalization function
support from linker command line. */
#undef HAS_INIT_SECTION
diff --git a/gcc/config/rs6000/aix51.h b/gcc/config/rs6000/aix51.h
index 6ea30c1fba1..d62d3fb5d90 100644
--- a/gcc/config/rs6000/aix51.h
+++ b/gcc/config/rs6000/aix51.h
@@ -146,12 +146,6 @@ do { \
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (!TARGET_64BIT ? 16 : 32)
-/* AIX V5 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
- and "cror 31,31,31" for POWER architecture. */
-
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE "nop"
-
/* AIX 4.2 and above provides initialization and finalization function
support from linker command line. */
#undef HAS_INIT_SECTION
diff --git a/gcc/config/rs6000/aix52.h b/gcc/config/rs6000/aix52.h
index 1c9e77f9626..02b966d1f5b 100644
--- a/gcc/config/rs6000/aix52.h
+++ b/gcc/config/rs6000/aix52.h
@@ -158,12 +158,6 @@ do { \
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (!TARGET_64BIT ? 16 : 32)
-/* AIX V5 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
- and "cror 31,31,31" for POWER architecture. */
-
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE "nop"
-
/* AIX 4.2 and above provides initialization and finalization function
support from linker command line. */
#undef HAS_INIT_SECTION
diff --git a/gcc/config/rs6000/aix53.h b/gcc/config/rs6000/aix53.h
index d1a99e9c035..870eb0618d4 100644
--- a/gcc/config/rs6000/aix53.h
+++ b/gcc/config/rs6000/aix53.h
@@ -156,12 +156,6 @@ do { \
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (!TARGET_64BIT ? 16 : 32)
-/* AIX V5 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
- and "cror 31,31,31" for POWER architecture. */
-
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE "nop"
-
/* AIX 4.2 and above provides initialization and finalization function
support from linker command line. */
#undef HAS_INIT_SECTION
diff --git a/gcc/config/rs6000/aix61.h b/gcc/config/rs6000/aix61.h
index 663777c47cf..92168990a01 100644
--- a/gcc/config/rs6000/aix61.h
+++ b/gcc/config/rs6000/aix61.h
@@ -157,12 +157,6 @@ do { \
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (!TARGET_64BIT ? 16 : 32)
-/* AIX V5 uses PowerPC nop (ori 0,0,0) instruction as call glue for PowerPC
- and "cror 31,31,31" for POWER architecture. */
-
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE "nop"
-
/* AIX 4.2 and above provides initialization and finalization function
support from linker command line. */
#undef HAS_INIT_SECTION
diff --git a/gcc/config/rs6000/freebsd64.h b/gcc/config/rs6000/freebsd64.h
index 909f703a07e..d434ace28f3 100644
--- a/gcc/config/rs6000/freebsd64.h
+++ b/gcc/config/rs6000/freebsd64.h
@@ -316,10 +316,6 @@ extern int dot_symbols;
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-/* PowerPC no-op instruction. */
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE (TARGET_64BIT ? "nop" : "cror 31,31,31")
-
/* Function profiling bits */
#undef RS6000_MCOUNT
#define RS6000_MCOUNT "_mcount"
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 7c516eb56a8..8c32301a71d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -417,10 +417,6 @@ extern int dot_symbols;
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-/* PowerPC no-op instruction. */
-#undef RS6000_CALL_GLUE
-#define RS6000_CALL_GLUE (TARGET_64BIT ? "nop" : "cror 31,31,31")
-
#undef RS6000_MCOUNT
#define RS6000_MCOUNT "_mcount"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index ac7e6f2190f..c125019e821 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -14628,12 +14628,6 @@ print_operand (FILE *file, rtx x, int code)
switch (code)
{
- case '.':
- /* Write out an instruction after the call which may be replaced
- with glue code by the loader. This depends on the AIX version. */
- asm_fprintf (file, RS6000_CALL_GLUE);
- return;
-
/* %a is output_address. */
case 'A':
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 4e33611baf4..b968802d9fb 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -2186,10 +2186,6 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
{"vs56", 101},{"vs57", 102},{"vs58", 103},{"vs59", 104}, \
{"vs60", 105},{"vs61", 106},{"vs62", 107},{"vs63", 108} }
-/* Text to write out after a CALL that may be replaced by glue code by
- the loader. This depends on the AIX version. */
-#define RS6000_CALL_GLUE "cror 31,31,31"
-
/* This is how to output an element of a case-vector that is relative. */
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index d5ffd81b068..5dae300970c 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -9814,9 +9814,10 @@
"HAVE_AS_TLS && DEFAULT_ABI == ABI_AIX"
{
if (TARGET_CMODEL != CMODEL_SMALL)
- return "addis %0,%1,%2@got@tlsgd@ha\;addi %0,%0,%2@got@tlsgd@l\;bl %z3\;%.";
+ return "addis %0,%1,%2@got@tlsgd@ha\;addi %0,%0,%2@got@tlsgd@l\;"
+ "bl %z3\;nop";
else
- return "addi %0,%1,%2@got@tlsgd\;bl %z3\;%.";
+ return "addi %0,%1,%2@got@tlsgd\;bl %z3\;nop";
}
"&& TARGET_TLS_MARKERS"
[(set (match_dup 0)
@@ -9919,7 +9920,7 @@
UNSPEC_TLSGD)
(clobber (reg:SI LR_REGNO))]
"HAVE_AS_TLS && DEFAULT_ABI == ABI_AIX && TARGET_TLS_MARKERS"
- "bl %z1(%3@tlsgd)\;%."
+ "bl %z1(%3@tlsgd)\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -9953,9 +9954,10 @@
"HAVE_AS_TLS && DEFAULT_ABI == ABI_AIX"
{
if (TARGET_CMODEL != CMODEL_SMALL)
- return "addis %0,%1,%&@got@tlsld@ha\;addi %0,%0,%&@got@tlsld@l\;bl %z2\;%.";
+ return "addis %0,%1,%&@got@tlsld@ha\;addi %0,%0,%&@got@tlsld@l\;"
+ "bl %z2\;nop";
else
- return "addi %0,%1,%&@got@tlsld\;bl %z2\;%.";
+ return "addi %0,%1,%&@got@tlsld\;bl %z2\;nop";
}
"&& TARGET_TLS_MARKERS"
[(set (match_dup 0)
@@ -10051,7 +10053,7 @@
(unspec:TLSmode [(const_int 0)] UNSPEC_TLSLD)
(clobber (reg:SI LR_REGNO))]
"HAVE_AS_TLS && DEFAULT_ABI == ABI_AIX && TARGET_TLS_MARKERS"
- "bl %z1(%&@tlsld)\;%."
+ "bl %z1(%&@tlsld)\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -10873,7 +10875,7 @@
"TARGET_32BIT
&& DEFAULT_ABI == ABI_AIX
&& (INTVAL (operands[2]) & CALL_LONG) == 0"
- "bl %z0\;%."
+ "bl %z0\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -10885,7 +10887,7 @@
"TARGET_64BIT
&& DEFAULT_ABI == ABI_AIX
&& (INTVAL (operands[2]) & CALL_LONG) == 0"
- "bl %z0\;%."
+ "bl %z0\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -10898,7 +10900,7 @@
"TARGET_32BIT
&& DEFAULT_ABI == ABI_AIX
&& (INTVAL (operands[3]) & CALL_LONG) == 0"
- "bl %z1\;%."
+ "bl %z1\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -10911,7 +10913,7 @@
"TARGET_64BIT
&& DEFAULT_ABI == ABI_AIX
&& (INTVAL (operands[3]) & CALL_LONG) == 0"
- "bl %z1\;%."
+ "bl %z1\;nop"
[(set_attr "type" "branch")
(set_attr "length" "8")])