66 "org.gnu.gdb.mips.cpu", 0 },
68 "org.gnu.gdb.mips.cp0", 0 },
70 "org.gnu.gdb.mips.cp0", 0 },
72 "org.gnu.gdb.mips.cp0", 0 },
74 "org.gnu.gdb.mips.cp0", 0 },
76 "org.gnu.gdb.mips.cp0", 0 },
78 "org.gnu.gdb.mips.cp0", 0 },
80 "org.gnu.gdb.mips.cp0", 0 },
82 "org.gnu.gdb.mips.cp0", 0 },
84 "org.gnu.gdb.mips.cp0", 0 },
86 "org.gnu.gdb.mips.cp0", 0 },
88 "org.gnu.gdb.mips.cp0", 0 },
90 "org.gnu.gdb.mips.cp0", 0 },
92 "org.gnu.gdb.mips.cp0", 0 },
94 "org.gnu.gdb.mips.cp0", 0 },
96 "org.gnu.gdb.mips.cp0", 0 },
98 "org.gnu.gdb.mips.cp0", 0 },
100 "org.gnu.gdb.mips.cp0", 0 },
102 "org.gnu.gdb.mips.cp0", 0 },
104 "org.gnu.gdb.mips.cp0", 0 },
106 "org.gnu.gdb.mips.cp0", 0 },
108 "org.gnu.gdb.mips.cp0", 0 },
110 "org.gnu.gdb.mips.cp0", 0 },
112 "org.gnu.gdb.mips.cp0", 0 },
114 "org.gnu.gdb.mips.cp0", 0 },
116 "org.gnu.gdb.mips.cp0", 0 },
118 "org.gnu.gdb.mips.cp0", 0 },
120 "org.gnu.gdb.mips.cp0", 0 },
122 "org.gnu.gdb.mips.cp0", 0 },
124 "org.gnu.gdb.mips.cp0", 0 },
126 "org.gnu.gdb.mips.cp0", 0 },
128 "org.gnu.gdb.mips.cp0", 0 },
130 "org.gnu.gdb.mips.cp0", 0 },
132 "org.gnu.gdb.mips.cp0", 0 },
134 "org.gnu.gdb.mips.fpu", 0 },
136 "org.gnu.gdb.mips.fpu", 0 },
138 "org.gnu.gdb.mips.fpu", 0 },
140 "org.gnu.gdb.mips.fpu", 0 },
142 "org.gnu.gdb.mips.fpu", 0 },
144 "org.gnu.gdb.mips.fpu", 0 },
146 "org.gnu.gdb.mips.fpu", 0 },
148 "org.gnu.gdb.mips.fpu", 0 },
150 "org.gnu.gdb.mips.fpu", 0 },
152 "org.gnu.gdb.mips.fpu", 0 },
154 "org.gnu.gdb.mips.fpu", 0 },
156 "org.gnu.gdb.mips.fpu", 0 },
158 "org.gnu.gdb.mips.fpu", 0 },
160 "org.gnu.gdb.mips.fpu", 0 },
162 "org.gnu.gdb.mips.fpu", 0 },
164 "org.gnu.gdb.mips.fpu", 0 },
166 "org.gnu.gdb.mips.fpu", 0 },
168 "org.gnu.gdb.mips.fpu", 0 },
170 "org.gnu.gdb.mips.fpu", 0 },
172 "org.gnu.gdb.mips.fpu", 0 },
174 "org.gnu.gdb.mips.fpu", 0 },
176 "org.gnu.gdb.mips.fpu", 0 },
178 "org.gnu.gdb.mips.fpu", 0 },
180 "org.gnu.gdb.mips.fpu", 0 },
182 "org.gnu.gdb.mips.fpu", 0 },
184 "org.gnu.gdb.mips.fpu", 0 },
186 "org.gnu.gdb.mips.fpu", 0 },
188 "org.gnu.gdb.mips.fpu", 0 },
190 "org.gnu.gdb.mips.fpu", 0 },
192 "org.gnu.gdb.mips.fpu", 0 },
194 "org.gnu.gdb.mips.fpu", 0 },
196 "org.gnu.gdb.mips.fpu", 0 },
198 "org.gnu.gdb.mips.fpu", 0 },
200 "org.gnu.gdb.mips.fpu", 0 },
202 "org.gnu.gdb.mips.fpu", 0 },
204 "org.gnu.gdb.mips.fpu", 0 },
206 "org.gnu.gdb.mips.fpu", 0 },
208 "org.gnu.gdb.mips.fpu", 0 },
286 LOG_DEBUG(
"write core reg %i value 0x%" PRIx64
"", num, reg_value);
317 *reg_list = malloc(
sizeof(
struct reg *) * (*reg_list_size));
360 LOG_ERROR(
"BUG: called for a non-MIPS64 target");
364 LOG_USER(
"target halted due to %s, pc: 0x%" PRIx64
"",
384 cache = calloc(1,
sizeof(*cache));
392 LOG_ERROR(
"unable to allocate reg_list");
398 LOG_ERROR(
"unable to allocate arch_info");
404 struct reg *r = ®_list[i];
425 cache->
name =
"mips64 registers";
460 struct mem_param *mem_params,
int num_reg_params,
505 LOG_ERROR(
"unable to allocate inst_break_list");
540 LOG_ERROR(
"unable to allocate data_break_list");
583 LOG_DEBUG(
"DCR 0x%" PRIx64
" numinst %i numdata %i", dcr,
static uint64_t buf_get_u64(const uint8_t *_buffer, unsigned int first, unsigned int num)
Retrieves num bits from _buffer, starting at the first bit, returning the bits in a 64-bit word.
static void buf_set_u64(uint8_t *_buffer, unsigned int first, unsigned int num, uint64_t value)
Sets num bits in _buffer, starting at the first bit, using the bits in value.
#define ERROR_COMMAND_ARGUMENT_INVALID
#define LOG_USER(expr ...)
#define LOG_ERROR(expr ...)
#define LOG_DEBUG(expr ...)
int mips64_invalidate_core_regs(struct target *target)
static int mips64_set_core_reg(struct reg *reg, uint8_t *buf)
static int mips64_read_core_reg(struct target *target, int num)
static int mips64_get_core_reg(struct reg *reg)
static int reg_type2size(enum reg_type type)
int mips64_init_arch_info(struct target *target, struct mips64_common *mips64, struct jtag_tap *tap)
int mips64_restore_context(struct target *target)
int mips64_examine(struct target *target)
int mips64_enable_interrupts(struct target *target, bool enable)
static int mips64_configure_d_break_unit(struct target *target)
int mips64_arch_state(struct target *target)
int mips64_configure_break_unit(struct target *target)
int mips64_build_reg_cache(struct target *target)
int mips64_save_context(struct target *target)
static int mips64_configure_i_break_unit(struct target *target)
int mips64_run_algorithm(struct target *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, struct reg_param *reg_params, target_addr_t entry_point, target_addr_t exit_point, unsigned int timeout_ms, void *arch_info)
static int mips64_write_core_reg(struct target *target, int num)
static const struct @114 mips64_regs[]
static const struct reg_arch_type mips64_reg_type
int mips64_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size, enum target_register_class reg_class)
#define MIPS64_NUM_CORE_REGS
#define MIPS64_NUM_CORE_C0_REGS
#define MIPS64_COMMON_MAGIC
int mips64_pracc_write_regs(struct mips_ejtag *ejtag_info, uint64_t *regs)
int mips64_pracc_read_regs(struct mips_ejtag *ejtag_info, uint64_t *regs)
struct reg_cache ** register_get_last_cache_p(struct reg_cache **first)
int(* read_core_reg)(struct target *target, int num)
struct working_area * fast_data_area
struct mips64_comparator * data_break_list
unsigned int common_magic
int num_inst_bpoints_avail
struct mips64_comparator * inst_break_list
int(* write_core_reg)(struct target *target, int num)
struct reg_cache * core_cache
struct mips_ejtag ejtag_info
uint64_t core_regs[MIPS64_NUM_REGS]
int num_data_bpoints_avail
struct reg_feature feature
struct mips64_common * mips64_common
struct reg_data_type reg_data_type
int(* get)(struct reg *reg)
struct reg_feature * feature
struct reg_data_type * reg_data_type
const struct reg_arch_type * type
struct reg_cache * reg_cache
int target_write_u64(struct target *target, target_addr_t address, uint64_t value)
const char * debug_reason_name(const struct target *t)
int target_read_u64(struct target *target, target_addr_t address, uint64_t *value)
#define ERROR_TARGET_NOT_HALTED
static bool target_was_examined(const struct target *target)
static void target_set_examined(struct target *target)
Sets the examined flag for the given target.