aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7de4ca4..a72e6c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
+ complex numbers <= 32 bits into two registers.
+
2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* alpha.c (print_operand_address): Fix format specifier warnings.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index d37014f..5d0c7fc 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -14452,7 +14452,8 @@ rs6000_complex_function_value (enum machine_mode mode)
regno = GP_ARG_RETURN;
/* 32-bit is OK since it'll go in r3/r4. */
- if (TARGET_32BIT)
+ if (TARGET_32BIT
+ && GET_MODE_BITSIZE (inner) >= 32)
return gen_rtx_REG (mode, regno);
}