powerpc/perf: Add an accessor for regs->result
Add an accessor for regs->result so we can use it to store more flags in future. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
5682c46026
commit
33904054b4
|
@ -89,6 +89,11 @@ static inline int siar_valid(struct pt_regs *regs)
|
||||||
|
|
||||||
#endif /* CONFIG_PPC32 */
|
#endif /* CONFIG_PPC32 */
|
||||||
|
|
||||||
|
static bool regs_use_siar(struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
return !!(regs->result & 1);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Things that are specific to 64-bit implementations.
|
* Things that are specific to 64-bit implementations.
|
||||||
*/
|
*/
|
||||||
|
@ -162,7 +167,7 @@ static inline u32 perf_flags_from_msr(struct pt_regs *regs)
|
||||||
|
|
||||||
static inline u32 perf_get_misc_flags(struct pt_regs *regs)
|
static inline u32 perf_get_misc_flags(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
unsigned long use_siar = regs->result;
|
bool use_siar = regs_use_siar(regs);
|
||||||
|
|
||||||
if (!use_siar)
|
if (!use_siar)
|
||||||
return perf_flags_from_msr(regs);
|
return perf_flags_from_msr(regs);
|
||||||
|
@ -1425,7 +1430,7 @@ unsigned long perf_misc_flags(struct pt_regs *regs)
|
||||||
*/
|
*/
|
||||||
unsigned long perf_instruction_pointer(struct pt_regs *regs)
|
unsigned long perf_instruction_pointer(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
unsigned long use_siar = regs->result;
|
bool use_siar = regs_use_siar(regs);
|
||||||
|
|
||||||
if (use_siar && siar_valid(regs))
|
if (use_siar && siar_valid(regs))
|
||||||
return mfspr(SPRN_SIAR) + perf_ip_adjust(regs);
|
return mfspr(SPRN_SIAR) + perf_ip_adjust(regs);
|
||||||
|
|
Loading…
Reference in New Issue