OSDN Git Service

* config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Mar 2004 01:13:43 +0000 (01:13 +0000)
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Mar 2004 01:13:43 +0000 (01:13 +0000)
(TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78955 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/xtensa/xtensa.c

index 050d048..74fe101 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-04  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
+       (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
+
 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
 
        PR other/14354
index 09a2f34..cb03b53 100644 (file)
@@ -200,6 +200,7 @@ static rtx gen_conditional_move (rtx);
 static rtx fixup_subreg_mem (rtx);
 static enum machine_mode xtensa_find_mode_for_size (unsigned);
 static struct machine_function * xtensa_init_machine_status (void);
+static bool xtensa_return_in_msb (tree);
 static void printx (FILE *, signed int);
 static void xtensa_function_epilogue (FILE *, HOST_WIDE_INT);
 static rtx xtensa_builtin_saveregs (void);
@@ -254,6 +255,9 @@ static const int reg_nonleaf_alloc_order[FIRST_PSEUDO_REGISTER] =
 #undef TARGET_EXPAND_BUILTIN_SAVEREGS
 #define TARGET_EXPAND_BUILTIN_SAVEREGS xtensa_builtin_saveregs
 
+#undef TARGET_RETURN_IN_MSB
+#define TARGET_RETURN_IN_MSB xtensa_return_in_msb
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 
@@ -1815,6 +1819,15 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
 }
 
 
+static bool
+xtensa_return_in_msb (tree valtype)
+{
+  return (TARGET_BIG_ENDIAN
+         && AGGREGATE_TYPE_P (valtype)
+         && int_size_in_bytes (valtype) >= UNITS_PER_WORD);
+}
+
+
 void
 override_options (void)
 {