1 #include <lib9.h> 2 #include <bio.h> 3 #include "mach.h" 4 /* 5 * Mips-specific debugger interface 6 */ 7 8 char *mipsexcep(Map*, Rgetter); 9 int mipsfoll(Map*, ulong, Rgetter, ulong*); 10 int mipsinst(Map*, ulong, char, char*, int); 11 int mipsdas(Map*, ulong, char*, int); 12 int mipsinstlen(Map*, ulong); 13 /* 14 * Debugger interface 15 */ 16 Machdata mipsmach2be = 17 { 18 {0, 0, 0, 0xD}, /* break point */ 19 4, /* break point size */ 20 21 beswab, /* short to local byte order */ 22 beswal, /* long to local byte order */ 23 beswav, /* vlong to local byte order */ 24 risctrace, /* C traceback */ 25 riscframe, /* Frame finder */ 26 mipsexcep, /* print exception */ 27 0, /* breakpoint fixup */ 28 beieeesftos, /* single precision float printer */ 29 beieeedftos, /* double precisioin float printer */ 30 mipsfoll, /* following addresses */ 31 mipsinst, /* print instruction */ 32 mipsdas, /* dissembler */ 33 mipsinstlen, /* instruction size */ 34 }; 35 36 /* 37 * Debugger interface 38 */ 39 Machdata mipsmach2le = 40 { 41 {0, 0, 0, 0xD}, /* break point */ 42 4, /* break point size */ 43 44 leswab, /* short to local byte order */ 45 leswal, /* long to local byte order */ 46 leswav, /* vlong to local byte order */ 47 risctrace, /* C traceback */ 48 riscframe, /* Frame finder */ 49 mipsexcep, /* print exception */ 50 0, /* breakpoint fixup */ 51 leieeesftos, /* single precision float printer */ 52 leieeedftos, /* double precisioin float printer */ 53 mipsfoll, /* following addresses */ 54 mipsinst, /* print instruction */ 55 mipsdas, /* dissembler */ 56 mipsinstlen, /* instruction size */ 57 }; 58