aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2002-11-27 02:29:12 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2002-11-27 02:29:12 +0000
commit084a11066f6825b040acb692ad1f17981a17f1f6 (patch)
treefc534194a61afad57285d25be308fb71db734c93 /gcc/rtl.h
parenta16f235752abdce78d8e5f608762a207f4973f13 (diff)
downloadgcc-084a11066f6825b040acb692ad1f17981a17f1f6.zip
gcc-084a11066f6825b040acb692ad1f17981a17f1f6.tar.gz
gcc-084a11066f6825b040acb692ad1f17981a17f1f6.tar.bz2
expr.c (gen_group_rtx, [...]): New functions.
* expr.c (gen_group_rtx, emit_group_move): New functions. * expr.h (gen_group_rtx, emit_group_move): Prototype. * function.c (expand_function_start): Use gen_group_rtx to create a PARALLEL rtx to hold the return value when the real return rtx is a PARALLEL. (expand_function_end): Use emit_group_move to move the return value from a PARALLEL to the real return registers. * rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned in PARALLELs. From-SVN: r59554
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 1d71ec9..5f727b0 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -185,7 +185,7 @@ struct rtx_def GTY((chain_next ("RTX_NEXT (&%h)"),
has used it as the function. */
unsigned int used : 1;
/* Nonzero if this rtx came from procedure integration.
- 1 in a REG means this reg refers to the return value
+ 1 in a REG or PARALLEL means this rtx refers to the return value
of the current function.
1 in a SYMBOL_REF if the symbol is weak. */
unsigned integrated : 1;
@@ -988,9 +988,10 @@ enum label_kind
#define REGNO(RTX) XCUINT (RTX, 0, REG)
#define ORIGINAL_REGNO(RTX) X0UINT (RTX, 1)
-/* 1 if RTX is a reg that is the current function's return value. */
+/* 1 if RTX is a reg or parallel that is the current function's return
+ value. */
#define REG_FUNCTION_VALUE_P(RTX) \
- (RTL_FLAG_CHECK1("REG_FUNCTION_VALUE_P", (RTX), REG)->integrated)
+ (RTL_FLAG_CHECK2("REG_FUNCTION_VALUE_P", (RTX), REG, PARALLEL)->integrated)
/* 1 if RTX is a reg that corresponds to a variable declared by the user. */
#define REG_USERVAR_P(RTX) \