+2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
+
+ * config/sparc/sparc.c (sparc_option_override): Set function
+ alignment for -mcpu=niagara7 to 64 to match the I$ line.
+ * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
+ latency to 1.
+ * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
+ latency to 2.
+ * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
+
2017-05-18 Marek Polacek <polacek@redhat.com>
PR sanitizer/80797
#undef CPP_CPU64_DEFAULT_SPEC
#define CPP_CPU64_DEFAULT_SPEC ""
#undef ASM_CPU32_DEFAULT_SPEC
-#define ASM_CPU32_DEFAUILT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG
+#define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG
#undef ASM_CPU64_DEFAULT_SPEC
#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA7_FLAG
#endif
target_flags |= MASK_LRA;
/* Supply a default value for align_functions. */
- if (align_functions == 0
- && (sparc_cpu == PROCESSOR_ULTRASPARC
+ if (align_functions == 0)
+ {
+ if (sparc_cpu == PROCESSOR_ULTRASPARC
|| sparc_cpu == PROCESSOR_ULTRASPARC3
|| sparc_cpu == PROCESSOR_NIAGARA
|| sparc_cpu == PROCESSOR_NIAGARA2
|| sparc_cpu == PROCESSOR_NIAGARA3
- || sparc_cpu == PROCESSOR_NIAGARA4
- || sparc_cpu == PROCESSOR_NIAGARA7))
- align_functions = 32;
+ || sparc_cpu == PROCESSOR_NIAGARA4)
+ align_functions = 32;
+ else if (sparc_cpu == PROCESSOR_NIAGARA7)
+ align_functions = 64;
+ }
/* Validate PCC_STRUCT_RETURN. */
if (flag_pcc_struct_return == DEFAULT_PCC_STRUCT_RETURN)
and annulled branches insert 4 bubbles.
On Niagara-2 and Niagara-3, a not-taken branch costs 1 cycle whereas
- a taken branch costs 6 cycles. */
+ a taken branch costs 6 cycles.
+
+ The T4 Supplement specifies the branch latency at 2 cycles.
+ The M7 Supplement specifies the branch latency at 1 cycle. */
#define BRANCH_COST(speed_p, predictable_p) \
((sparc_cpu == PROCESSOR_V9 \
: ((sparc_cpu == PROCESSOR_NIAGARA2 \
|| sparc_cpu == PROCESSOR_NIAGARA3) \
? 5 \
- : 3))))
+ : (sparc_cpu == PROCESSOR_NIAGARA4 \
+ ? 2 \
+ : (sparc_cpu == PROCESSOR_NIAGARA7 \
+ ? 1 \
+ : 3))))))
\f
/* Control the assembler format that we output. */
+2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
+
+ * gcc.target/sparc/niagara7-align.c: New test.
+
2017-05-18 Marek Polacek <polacek@redhat.com>
PR sanitizer/80797
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-falign-functions -mcpu=niagara7" } */
+/* { dg-final { scan-assembler "\.align 64" } } */
+void foo(void) {}