aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2006-08-25 18:56:08 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2006-08-25 14:56:08 -0400
commit90d3ff1c724fa47fb5d348f9f9eb0d12c1fda06b (patch)
tree726bb06a5f2dfa94113c33948669298fc13da826 /gcc
parente88e0907bd713ba3f9b3ebc952dab17b86588f44 (diff)
downloadgcc-90d3ff1c724fa47fb5d348f9f9eb0d12c1fda06b.zip
gcc-90d3ff1c724fa47fb5d348f9f9eb0d12c1fda06b.tar.gz
gcc-90d3ff1c724fa47fb5d348f9f9eb0d12c1fda06b.tar.bz2
re PR target/27075 (Compiler generate incorrect assembler for __sync_fetch-* builtins on e500 aka SPE)
PR target/27075 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax for 8 byte objects. From-SVN: r116425
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 987e7c2..81bc0d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-25 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/27075
+ * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
+ for 8 byte objects.
+
2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
PR tree-optimization/16876
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9bae3f8..780e905 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -10789,7 +10789,8 @@ print_operand (FILE *file, rtx x, int code)
tmp = XEXP (x, 0);
- if (TARGET_E500)
+ /* Ugly hack because %y is overloaded. */
+ if (TARGET_E500 && GET_MODE_SIZE (GET_MODE (x)) == 8)
{
/* Handle [reg]. */
if (GET_CODE (tmp) == REG)