#include "server.h"
#include "linux-low.h"
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
#endif
int num_regs = 90;
#include <asm/ptrace.h>
int regmap[] = {
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31,
-1, MMLO, MMHI, BADVADDR, CAUSE, PC,
FPR_BASE, FPR_BASE + 1, FPR_BASE + 2, FPR_BASE + 3,
FPR_BASE + 4, FPR_BASE + 5, FPR_BASE + 6, FPR_BASE + 7,
FPR_BASE + 8, FPR_BASE + 8, FPR_BASE + 10, FPR_BASE + 11,
FPR_BASE + 12, FPR_BASE + 13, FPR_BASE + 14, FPR_BASE + 15,
FPR_BASE + 16, FPR_BASE + 17, FPR_BASE + 18, FPR_BASE + 19,
FPR_BASE + 20, FPR_BASE + 21, FPR_BASE + 22, FPR_BASE + 23,
FPR_BASE + 24, FPR_BASE + 25, FPR_BASE + 26, FPR_BASE + 27,
FPR_BASE + 28, FPR_BASE + 29, FPR_BASE + 30, FPR_BASE + 31,
FPC_CSR, FPC_EIR,
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
};
int
cannot_fetch_register (int regno)
{
if (regmap[regno] == -1)
return 1;
if (find_regno ("zero") == regno)
return 1;
return 0;
}
int
cannot_store_register (int regno)
{
if (regmap[regno] == -1)
return 1;
if (find_regno ("zero") == regno)
return 1;
if (find_regno ("cause") == regno)
return 1;
if (find_regno ("bad") == regno)
return 1;
if (find_regno ("fir") == regno)
return 1;
return 0;
}