aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-10-05 06:34:26 +0000
committerRichard Stallman <rms@gnu.org>1992-10-05 06:34:26 +0000
commit280194b05b109e2a9468e83c18b895093ef87dfb (patch)
treec7eb28e6d0cc78ef36d73ddd51e2396d76ba3e33 /gcc
parent2d7050fdca69677d8f6b4de9ff499abfb3b60fa1 (diff)
downloadgcc-280194b05b109e2a9468e83c18b895093ef87dfb.zip
gcc-280194b05b109e2a9468e83c18b895093ef87dfb.tar.gz
gcc-280194b05b109e2a9468e83c18b895093ef87dfb.tar.bz2
(gen_realpart, gen_imagpart): New functions.
From-SVN: r2323
Diffstat (limited to 'gcc')
-rw-r--r--gcc/emit-rtl.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 3bd88b6..d301bfc 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -656,6 +656,34 @@ gen_lowpart_common (mode, x)
return 0;
}
+/* Return the real part (which has mode MODE) of a complex value X.
+ This always comes at the low address in memory. */
+
+rtx
+gen_realpart (mode, x)
+ enum machine_mode mode;
+ register rtx x;
+{
+ if (WORDS_BIG_ENDIAN)
+ return gen_highpart (mode, x);
+ else
+ return gen_lowpart (mode, x);
+}
+
+/* Return the imaginary part (which has mode MODE) of a complex value X.
+ This always comes at the high address in memory. */
+
+rtx
+gen_imagpart (mode, x)
+ enum machine_mode mode;
+ register rtx x;
+{
+ if (WORDS_BIG_ENDIAN)
+ return gen_lowpart (mode, x);
+ else
+ return gen_highpart (mode, x);
+}
+
/* Assuming that X is an rtx (e.g., MEM, REG or SUBREG) for a value,
return an rtx (MEM, SUBREG, or CONST_INT) that refers to the
least-significant part of X.