Re: [PATCH v2] arch/sparc: Avoid DCTI Couples
From: David Miller
Date: Tue Mar 28 2017 - 00:52:43 EST
From: Babu Moger <babu.moger@xxxxxxxxxx>
Date: Fri, 17 Mar 2017 14:52:21 -0600
> Avoid un-intended DCTI Couples. Use of DCTI couples is deprecated.
> Also address the "Programming Note" for optimal performance.
>
> Here is the complete text from Oracle SPARC Architecture Specs.
>
> 6.3.4.7 DCTI Couples
> "A delayed control transfer instruction (DCTI) in the delay slot of
> another DCTI is referred to as a “DCTI couple”. The use of DCTI couples
> is deprecated in the Oracle SPARC Architecture; no new software should
> place a DCTI in the delay slot of another DCTI, because on future Oracle
> SPARC Architecture implementations DCTI couples may execute either
> slowly or differently than the programmer assumes it will.
>
> SPARC V8 and SPARC V9 Compatibility Note
> The SPARC V8 architecture left behavior undefined for a DCTI couple. The
> SPARC V9 architecture defined behavior in that case, but as of
> UltraSPARC Architecture 2005, use of DCTI couples was deprecated.
> Software should not expect high performance from DCTI couples, and
> performance of DCTI couples should be expected to decline further in
> future processors.
>
> Programming Note
> As noted in TABLE 6-5 on page 115, an annulled branch-always
> (branch-always with a = 1) instruction is not architecturally a DCTI.
> However, since not all implementations make that distinction, for
> optimal performance, a DCTI should not be placed in the instruction word
> immediately following an annulled branch-always instruction (BA,A or
> BPA,A)."
>
> Signed-off-by: Babu Moger <babu.moger@xxxxxxxxxx>
> Reviewed-by: Rob Gardner <rob.gardner@xxxxxxxxxx>
Applied, thanks.