gcc/
PR target/70866
* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
when cr2,3,4 are all fixed regs.
gcc/testsuite/
* gcc.target/powerpc/pr70866.c: New.
From-SVN: r235851
+2016-05-04 Alan Modra <amodra@gmail.com>
+
+ PR target/70866
+ * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
+ when cr2,3,4 are all fixed regs.
+
2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/57193
info->calls_p = (!crtl->is_leaf || cfun->machine->ra_needs_full_frame);
/* Determine if we need to save the condition code registers. */
- if (df_regs_ever_live_p (CR2_REGNO)
- || df_regs_ever_live_p (CR3_REGNO)
- || df_regs_ever_live_p (CR4_REGNO))
+ if (save_reg_p (CR2_REGNO)
+ || save_reg_p (CR3_REGNO)
+ || save_reg_p (CR4_REGNO))
{
info->cr_save_p = 1;
if (DEFAULT_ABI == ABI_V4)
+2016-05-04 Alan Modra <amodra@gmail.com>
+
+ * gcc.target/powerpc/pr70866.c: New.
+
2016-05-03 Martin Sebor <msebor@redhat.com>
PR c++/66561
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-ffixed-cr2 -ffixed-cr3 -ffixed-cr4" } */
+
+#define SET_CR(R,V) __asm__ __volatile__ ("mtcrf %0,%1" : : "n" (1<<(7-R)), "r" (V<<(4*(7-R))) : "cr" #R)
+
+void foo (void)
+{
+ SET_CR (2, 7);
+ SET_CR (3, 8);
+ SET_CR (4, 9);
+}