Commit c984aef8 authored by Sathvika Vasireddy's avatar Sathvika Vasireddy Committed by Michael Ellerman
Browse files

objtool/powerpc: Add --mcount specific implementation



This patch enables objtool --mcount on powerpc, and adds implementation
specific to powerpc.

Tested-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarSathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221114175754.1131267-17-sv@linux.ibm.com
parent e52ec98c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ config PPC
	select HAVE_NMI				if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
	select HAVE_OPTPROBES
	select HAVE_OBJTOOL			if PPC32 || MPROFILE_KERNEL
	select HAVE_OBJTOOL_MCOUNT		if HAVE_OBJTOOL
	select HAVE_PERF_EVENTS
	select HAVE_PERF_EVENTS_NMI		if PPC64
	select HAVE_PERF_REGS
+16 −0
Original line number Diff line number Diff line
@@ -9,6 +9,11 @@
#include <objtool/builtin.h>
#include <objtool/endianness.h>

int arch_ftrace_match(char *name)
{
	return !strcmp(name, "_mcount");
}

unsigned long arch_dest_reloc_offset(int addend)
{
	return addend;
@@ -50,6 +55,17 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec
	typ = INSN_OTHER;
	imm = 0;

	switch (opcode) {
	case 18: /* b[l][a] */
		if ((insn & 3) == 1) /* bl */
			typ = INSN_CALL;

		imm = insn & 0x3fffffc;
		if (imm & 0x2000000)
			imm -= 0x4000000;
		break;
	}

	if (opcode == 1)
		*len = 8;
	else
+2 −0
Original line number Diff line number Diff line
@@ -4,5 +4,7 @@
#define _OBJTOOL_ARCH_ELF

#define R_NONE R_PPC_NONE
#define R_ABS64 R_PPC64_ADDR64
#define R_ABS32 R_PPC_ADDR32

#endif /* _OBJTOOL_ARCH_ELF */