Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0426047 authored by Michael Ellerman's avatar Michael Ellerman Committed by Paul Mackerras
Browse files

[POWERPC] Make xmon disassembly optional



While adding spu disassembly support it struck me that we're actually
carrying quite a lot of code around, just to do disassembly in the case
of a crash.

While on large systems it's not an issue, on smaller ones it might be
nice to have xmon - but without the weight of the disassembly support.
For a Cell build this saves ~230KB (!), and for pSeries ~195KB.

We still support the 'di' and 'sdi' commands, however they just dump
the instruction in hex.

Move the definitions into a header to clean xmon.c just a tiny bit.

Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
parent af89fb80
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -98,6 +98,15 @@ config XMON_DEFAULT
	  xmon is normally disabled unless booted with 'xmon=on'.
	  Use 'xmon=off' to disable xmon init during runtime.

config XMON_DISASSEMBLY
	bool "Include disassembly support in xmon"
	depends on XMON
	default y
	help
	  Include support for disassembling in xmon. You probably want
	  to say Y here, unless you're building for a memory-constrained
	  system.

config IRQSTACKS
	bool "Use separate kernel stacks when processing interrupts"
	depends on PPC64
+6 −2
Original line number Diff line number Diff line
@@ -3,6 +3,10 @@
ifdef CONFIG_PPC64
EXTRA_CFLAGS += -mno-minimal-toc
endif
obj-y			+= xmon.o ppc-dis.o ppc-opc.o setjmp.o start.o \
			   nonstdio.o

obj-y			+= xmon.o setjmp.o start.o nonstdio.o

ifdef CONFIG_XMON_DISASSEMBLY
obj-y			+= ppc-dis.o ppc-opc.o
obj-$(CONFIG_PPC_CELL)	+= spu-dis.o spu-opc.o
endif
+31 −0
Original line number Diff line number Diff line
#ifndef _POWERPC_XMON_DIS_ASM_H
#define _POWERPC_XMON_DIS_ASM_H
/*
 * Copyright (C) 2006 Michael Ellerman, IBM Corporation.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

extern void print_address (unsigned long memaddr);

#ifdef CONFIG_XMON_DISASSEMBLY
extern int print_insn_powerpc(unsigned long insn, unsigned long memaddr);
extern int print_insn_spu(unsigned long insn, unsigned long memaddr);
#else
static inline int print_insn_powerpc(unsigned long insn, unsigned long memaddr)
{
	printf("%.8x", insn);
	return 0;
}

static inline int print_insn_spu(unsigned long insn, unsigned long memaddr)
{
	printf("%.8x", insn);
	return 0;
}
#endif

#endif /* _POWERPC_XMON_DIS_ASM_H */
+1 −2
Original line number Diff line number Diff line
@@ -21,8 +21,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
#include "nonstdio.h"
#include "ansidecl.h"
#include "ppc.h"

extern void print_address (unsigned long memaddr);
#include "dis-asm.h"

/* Print a PowerPC or POWER instruction.  */

+1 −2
Original line number Diff line number Diff line
@@ -22,8 +22,7 @@
#include "nonstdio.h"
#include "ansidecl.h"
#include "spu.h"

extern void print_address (unsigned long memaddr);
#include "dis-asm.h"

/* This file provides a disassembler function which uses
   the disassembler interface defined in dis-asm.h.   */
Loading