19 memset(p, 0,
sizeof(*p));
51 LOG_TARGET_ERROR(t,
"progbuf[%02x]: DASM(0x%08" PRIx32
") [0x%08" PRIx32
"]",
106 assert(
false &&
"Unsupported size");
143 assert(
false &&
"Unsupported size");
186 r->get_impebreak(
target)) {
201 "capacity would be exceeded (progbufsize=%u).",
#define DM_ABSTRACTCS_CMDERR_EXCEPTION
uint32_t size
Size of dw_spi_transaction::buffer.
#define LOG_TARGET_ERROR(target, fmt_str,...)
#define LOG_TARGET_DEBUG(target, fmt_str,...)
static uint32_t fence_rw_rw(void) __attribute__((unused))
static uint32_t csrrw(unsigned int rd, unsigned int rs, unsigned int csr) __attribute__((unused))
static uint32_t sb(unsigned int src, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t sd(unsigned int src, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t csrrs(unsigned int rd, unsigned int rs, unsigned int csr) __attribute__((unused))
static uint32_t ld(unsigned int rd, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t fence_i(void) __attribute__((unused))
static uint32_t lw(unsigned int rd, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t lh(unsigned int rd, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t ebreak(void) __attribute__((unused))
static uint32_t csrrsi(unsigned int rd, uint8_t zimm, unsigned int csr) __attribute__((unused))
static uint32_t csrrci(unsigned int rd, uint8_t zimm, unsigned int csr) __attribute__((unused))
static uint32_t sh(unsigned int src, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t addi(unsigned int dest, unsigned int src, int16_t imm) __attribute__((unused))
static uint32_t sw(unsigned int src, unsigned int base, int16_t offset) __attribute__((unused))
static uint32_t lb(unsigned int rd, unsigned int base, int16_t offset) __attribute__((unused))
int riscv_program_fence_i(struct riscv_program *p)
int riscv_program_swr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_lbr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_write(struct riscv_program *program)
int riscv_program_shr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_fence_rw_rw(struct riscv_program *p)
int riscv_program_store(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset, unsigned int size)
int riscv_program_csrrsi(struct riscv_program *p, enum gdb_regno d, uint8_t z, enum gdb_regno csr)
int riscv_program_addi(struct riscv_program *p, enum gdb_regno d, enum gdb_regno s, int16_t u)
int riscv_program_csrrci(struct riscv_program *p, enum gdb_regno d, uint8_t z, enum gdb_regno csr)
int riscv_program_insert(struct riscv_program *p, riscv_insn_t i)
int riscv_program_load(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset, unsigned int size)
int riscv_program_csrr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno csr)
int riscv_program_init(struct riscv_program *p, struct target *target)
int riscv_program_csrw(struct riscv_program *p, enum gdb_regno s, enum gdb_regno csr)
int riscv_program_ldr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_ebreak(struct riscv_program *p)
int riscv_program_sdr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_exec(struct riscv_program *p, struct target *t)
Add ebreak and execute the program.
int riscv_program_lwr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_lhr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
int riscv_program_sbr(struct riscv_program *p, enum gdb_regno d, enum gdb_regno b, int16_t offset)
#define RISCV013_MAX_PROGBUF_SIZE
@ RISCV_PROGBUF_EXEC_RESULT_EXCEPTION
@ RISCV_PROGBUF_EXEC_RESULT_UNKNOWN
@ RISCV_PROGBUF_EXEC_RESULT_SUCCESS
@ RISCV_PROGBUF_EXEC_RESULT_NOT_EXECUTED
@ RISCV_PROGBUF_EXEC_RESULT_UNKNOWN_ERROR
unsigned int riscv_progbuf_size(struct target *target)
int riscv_write_progbuf(struct target *target, unsigned int index, riscv_insn_t insn)
int riscv_execute_progbuf(struct target *target, uint32_t *cmderr)
enum riscv_progbuf_exec_result execution_result
uint32_t progbuf[RISCV013_MAX_PROGBUF_SIZE]
unsigned int instruction_count