summaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-14 10:17:17 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-14 10:17:17 +0000
commit8c9bf23a31dfff2a8a0747002961da3cced52d83 (patch)
treec91ae40f49d86e8517cd6f1738c07fff20d7750d /gcc/config/mips/mips.h
parentb65ae28bc94ea0976062738a56aafa7542943a3e (diff)
downloadgcc-8c9bf23a31dfff2a8a0747002961da3cced52d83.tar.gz
* config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
* config/mips/mips.c (compute_frame_size): Retrofit them here. (save_restore_insns, mips_expand_epilogue): And here. (build_mips16_call_stub): And here. (mips_function_value): Use the new macros to decide whether a single or complex float can be returned in floating-point registers. Return a parallel rtx in the complex case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50766 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r--gcc/config/mips/mips.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index b4e4373637f..73d538379e9 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -1591,6 +1591,13 @@ do { \
/* For MIPS, width of a floating point register. */
#define UNITS_PER_FPREG (TARGET_FLOAT64 ? 8 : 4)
+/* If register $f0 holds a floating-point value, $f(0 + FP_INC) is
+ the next available register. */
+#define FP_INC (TARGET_FLOAT64 || TARGET_SINGLE_FLOAT ? 1 : 2)
+
+/* The largest size of value that can be held in floating-point registers. */
+#define UNITS_PER_FPVALUE (FP_INC * UNITS_PER_FPREG)
+
/* A C expression for the size in bits of the type `int' on the
target machine. If you don't define this, the default is one
word. */