aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-03-23 15:13:50 -0800
committerJim Wilson <wilson@gcc.gnu.org>1993-03-23 15:13:50 -0800
commit958ec8caa21fd16e40fbb365cc77afac7db17739 (patch)
tree94cf89c387c80353f5589071e9b13bc1d8d6f10b /gcc
parent7d429c41c5953f4481145c3eb4fe3914d805fd84 (diff)
downloadgcc-958ec8caa21fd16e40fbb365cc77afac7db17739.zip
gcc-958ec8caa21fd16e40fbb365cc77afac7db17739.tar.gz
gcc-958ec8caa21fd16e40fbb365cc77afac7db17739.tar.bz2
(DEFAULT_PCC_STRUCT_RETURN): Add default definition of 1.
(flag_pcc_struct_return): Default to DEFAULT_PCC_STRUCT_RETURN. (f_options): Add -freg-struct-return flag. From-SVN: r3860
Diffstat (limited to 'gcc')
-rw-r--r--gcc/toplev.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index d75673c..3ac6132 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -271,9 +271,18 @@ int flag_caller_saves = 1;
int flag_caller_saves = 0;
#endif
+/* Nonzero if structures and unions should be returned in memory.
+
+ This should only be defined if compatibility with another compiler or
+ with an ABI is needed, because it results in slower code. */
+
+#ifndef DEFAULT_PCC_STRUCT_RETURN
+#define DEFAULT_PCC_STRUCT_RETURN 1
+#endif
+
/* Nonzero for -fpcc-struct-return: return values the same way PCC does. */
-int flag_pcc_struct_return = 0;
+int flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
/* Nonzero for -fforce-mem: load memory value into a register
before arithmetic on it. This makes better cse but slower compilation. */
@@ -492,6 +501,7 @@ struct { char *string; int *variable; int on_value;} f_options[] =
{"shared-data", &flag_shared_data, 1},
{"caller-saves", &flag_caller_saves, 1},
{"pcc-struct-return", &flag_pcc_struct_return, 1},
+ {"reg-struct-return", &flag_pcc_struct_return, 0},
{"delayed-branch", &flag_delayed_branch, 1},
{"rerun-cse-after-loop", &flag_rerun_cse_after_loop, 1},
{"pretend-float", &flag_pretend_float, 1},