shithub: loong

ref: a2ad59b340bf3339dbba105310002474b98d0184
dir: /sys/src/libmach/zdb.c/

View raw version
#include <u.h>
#include <libc.h>
#include <bio.h>
#include <mach.h>

/*
 * LoongArch-specific debugger interface
 */
static	char*	loongexcep(Map*, Rgetter);
static	int	loongfoll(Map*, uvlong, Rgetter, uvlong*);
static	int	loonginst(Map*, uvlong, char, char*, int);
static	int	loongdas(Map*, uvlong, char*, int);
static	int	loonginstlen(Map*, uvlong);

/*
 *	Debugger interface
 */
Machdata loongmach =
{
	{0x00, 0x2A, 0x20, 0x00},	/* break point 0x002A0000 */
	4,		/* break point size */
	leswab,		/* short to local byte order */
	leswal,		/* long to local byte order */
	leswav,		/* long to local byte order */
	risctrace,	/* C traceback */
	riscframe,	/* Frame finder */
	loongexcep,	/* print exception */
	0,		/* breakpoint fixup */
	leieeesftos,		/* single precision float printer */
	leieeedftos,		/* double precision float printer */
	loongfoll,	/* following addresses */
	loonginst,	/* print instruction */
	loongdas,	/* dissembler */
	loonginstlen,	/* instruction size */
};

static char*
loongexcep(Map *, Rgetter)
{
	return "???";
}

static int
loonginst(Map *, uvlong, char, char *, int)
{
	return -1;
}

static int
loongdas(Map *, uvlong, char *, int)
{
	return -1;
}

static int
loonginstlen(Map*, uvlong)
{
	return 4;
}

static int
loongfoll(Map *, uvlong, Rgetter, uvlong *)
{
	return -1;
}