ref: a2ad59b340bf3339dbba105310002474b98d0184
dir: /sys/src/libmach/zdb.c/
#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;
}