From 90d3ff1c724fa47fb5d348f9f9eb0d12c1fda06b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 25 Aug 2006 18:56:08 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 987e7c29c366..81bc0d7ed9e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-08-25 Alan Modra + + PR target/27075 + * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax + for 8 byte objects. + 2006-08-25 J"orn Rennecke PR tree-optimization/16876 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 9bae3f8b24d4..780e905daac5 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)