Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754559AbcJEL1M (ORCPT ); Wed, 5 Oct 2016 07:27:12 -0400 Received: from mail.kernel.org ([198.145.29.136]:49312 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751121AbcJEL1L (ORCPT ); Wed, 5 Oct 2016 07:27:11 -0400 Date: Wed, 5 Oct 2016 08:27:01 -0300 From: Arnaldo Carvalho de Melo To: Ravi Bangoria Cc: linux-kernel@vger.kernel.org, kim.phillips@arm.com, linuxppc-dev@lists.ozlabs.org, peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com, treeze.taeung@gmail.com, naveen.n.rao@linux.vnet.ibm.com, markus@trippelsdorf.de, namhyung@kernel.org, pawel.moll@arm.com, chris.ryder@arm.com, jolsa@kernel.org, mhiramat@kernel.org Subject: Re: [PATCH v7 3/6] perf annotate: Show raw form for jump instruction with indirect target Message-ID: <20161005112701.GS7143@kernel.org> References: <1474472876-2706-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> <1474472876-2706-4-git-send-email-ravi.bangoria@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1474472876-2706-4-git-send-email-ravi.bangoria@linux.vnet.ibm.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1706 Lines: 54 Em Wed, Sep 21, 2016 at 09:17:53PM +0530, Ravi Bangoria escreveu: > For jump instructions that does not include target address as direct > operand, use raw value for that. This is needed for certain powerpc "use raw value" looks vague, as the example below makes is go from using a value (ffffffffffffca2c) to no value at all, i.e. the output looks backwards from what you describe, can you instead show the original disassembled line from objdump, which I think is what you're calling "raw value" in this case? - Arnaldo > jump instructions that use target address in a register (such as bctr, > btar, ...). > > Before: > ld r12,32088(r12) > mtctr r12 > v bctr ffffffffffffca2c > std r2,24(r1) > addis r12,r2,-1 > > After: > ld r12,32088(r12) > mtctr r12 > v bctr > std r2,24(r1) > addis r12,r2,-1 > > Suggested-by: Michael Ellerman > Signed-off-by: Ravi Bangoria > --- > Changes in v7: > - Added example in description > > tools/perf/util/annotate.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c > index 5aa72d9..1ccf26a 100644 > --- a/tools/perf/util/annotate.c > +++ b/tools/perf/util/annotate.c > @@ -136,6 +136,9 @@ static int jump__parse(struct ins_operands *ops, struct map *map __maybe_unused) > static int jump__scnprintf(struct ins *ins, char *bf, size_t size, > struct ins_operands *ops) > { > + if (!ops->target.addr) > + return ins__raw_scnprintf(ins, bf, size, ops); > + > return scnprintf(bf, size, "%-6.6s %" PRIx64, ins->name, ops->target.offset); > } > > -- > 2.5.5