https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97715

--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to qinzhao from comment #5)
> (In reply to H.J. Lu from comment #2)
> > (In reply to qinzhao from comment #1)
> > > for -fzero-call-used-regs=all, when zeroing st/mm registers under x87 exit
> > > mode, However, command line option force no 80387 mode, the following insn
> > > generated to zero st registers is not recognized:
> > > 
> > > (insn 27 67 28 2 (set (reg:XF 8 st)
> > >         (const_double:XF 0.0 [0x0.0p+0])) "zero-scratch-regs-10.c":8:1 -1
> > >      (nil))
> > 
> > You should avoid zeroing fixed registers.
> 
> fixed registers should already be excluded from zeroing. 
> are ST registers considered FIXED registers when -mno-80387 is specified?

They used to be, but now they are cleared from accessible_reg_set.

  /* If the FPU is disabled, disable the registers.  */
  if (! (TARGET_80387 || TARGET_FLOAT_RETURNS_IN_80387))
    accessible_reg_set &= ~reg_class_contents[FLOAT_REGS];

Reply via email to