> > > What is there that is specfic to a particular core type that can't be
> handled
> > > from C code?
> > >
> >
> > In the context of the calling, maybe not in C environment.(Deep sleep 
> > without
> > C environment when calling those interfaces)
> 
> Could you provide a concrete example?
> 

:)
Deep sleep, the patches will comes out soon.

> > > > +       /*
> > > > +        * Need to save float-point registers if MSR[FP] = 1.
> > > > +        */
> > > > +       mfmsr   r12
> > > > +       andi.   r12, r12, MSR_FP
> > > > +       beq     1f
> > > > +       do_sr_fpr_regs(save)
> > >
> > > C code should have already ensured that MSR[FP] is not 1 (and thus the FP
> > > context has been saved).
> > >
> >
> > Yes, right. But I mean if the FP still use in core save flow, we need to 
> > save
> it.
> > In this process, i don't care what other code do, we need to focus on not
> losing
> > valuable data.
> 
> It is not allowed to use FP at that point.
> 
If MSR[FP] not active, that is FP not allowed to use.
But here is a normal judgment, if MSR[FP] is active, this means that the 
floating
point module is being used. I offer is a function of the interface, we don't 
know
where is the function will be called. Just because we call this function in the
context of uncertainty, we need this judgment to ensure that no data is lost.

Thanks,
-Dongsheng
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to