aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-10-27 08:47:25 -0700
committerIan Lance Taylor <iant@golang.org>2021-10-27 08:47:25 -0700
commita6d3012b274f38b20e2a57162106f625746af6c6 (patch)
tree09ff8b13eb8ff7594c27dc8812efbf696dc97484 /gcc/config/sparc
parentcd2fd5facb5e1882d3f338ed456ae9536f7c0593 (diff)
parent99b1021d21e5812ed01221d8fca8e8a32488a934 (diff)
downloadgcc-a6d3012b274f38b20e2a57162106f625746af6c6.zip
gcc-a6d3012b274f38b20e2a57162106f625746af6c6.tar.gz
gcc-a6d3012b274f38b20e2a57162106f625746af6c6.tar.bz2
Merge from trunk revision 99b1021d21e5812ed01221d8fca8e8a32488a934.
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/sparc-modes.def3
-rw-r--r--gcc/config/sparc/sparc.c12
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/config/sparc/sparc-modes.def b/gcc/config/sparc/sparc-modes.def
index 5cc4743..057c093 100644
--- a/gcc/config/sparc/sparc-modes.def
+++ b/gcc/config/sparc/sparc-modes.def
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
/* 128-bit floating point */
FLOAT_MODE (TF, 16, ieee_quad_format);
+/* We need a 32-byte mode to return structures in the 64-bit ABI. */
+INT_MODE (OI, 32);
+
/* Add any extra modes needed to represent the condition code.
We have a CCNZ mode which is used for implicit comparisons with zero when
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 6bc6f0a..ca91be4 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1859,7 +1859,7 @@ sparc_option_override (void)
}
/* Set the default CPU if no -mcpu option was specified. */
- if (!global_options_set.x_sparc_cpu_and_features)
+ if (!OPTION_SET_P (sparc_cpu_and_features))
{
for (def = &cpu_default[0]; def->cpu != -1; ++def)
if (def->cpu == TARGET_CPU_DEFAULT)
@@ -1869,7 +1869,7 @@ sparc_option_override (void)
}
/* Set the default CPU if no -mtune option was specified. */
- if (!global_options_set.x_sparc_cpu)
+ if (!OPTION_SET_P (sparc_cpu))
sparc_cpu = sparc_cpu_and_features;
cpu = &cpu_table[(int) sparc_cpu_and_features];
@@ -1975,7 +1975,7 @@ sparc_option_override (void)
dump_target_flags ("Final target_flags", target_flags);
/* Set the code model if no -mcmodel option was specified. */
- if (global_options_set.x_sparc_code_model)
+ if (OPTION_SET_P (sparc_code_model))
{
if (TARGET_ARCH32)
error ("%<-mcmodel=%> is not supported in 32-bit mode");
@@ -1989,7 +1989,7 @@ sparc_option_override (void)
}
/* Set the memory model if no -mmemory-model option was specified. */
- if (!global_options_set.x_sparc_memory_model)
+ if (!OPTION_SET_P (sparc_memory_model))
{
/* Choose the memory model for the operating system. */
enum sparc_memory_model_type os_default = SUBTARGET_DEFAULT_MEMORY_MODEL;
@@ -2177,12 +2177,12 @@ sparc_option_override (void)
/* Disable save slot sharing for call-clobbered registers by default.
The IRA sharing algorithm works on single registers only and this
pessimizes for double floating-point registers. */
- if (!global_options_set.x_flag_ira_share_save_slots)
+ if (!OPTION_SET_P (flag_ira_share_save_slots))
flag_ira_share_save_slots = 0;
/* Only enable REE by default in 64-bit mode where it helps to eliminate
redundant 32-to-64-bit extensions. */
- if (!global_options_set.x_flag_ree && TARGET_ARCH32)
+ if (!OPTION_SET_P (flag_ree) && TARGET_ARCH32)
flag_ree = 0;
/* Do various machine dependent initializations. */