target algo: do not write reg_param if direction is PARAM_IN
[fw/openocd] / src / target / riscv / riscv.c
index 8d76c4aa4d393e5811273eb7f51e5f0d08b38f66..02ba380553fb7057508a5c36da04126b07305d53 100644 (file)
@@ -853,6 +853,9 @@ static int riscv_run_algorithm(struct target *target, int num_mem_params,
 
        uint64_t saved_regs[32];
        for (int i = 0; i < num_reg_params; i++) {
+               if (mem_params[i].direction == PARAM_IN)
+                       continue;
+
                LOG_DEBUG("save %s", reg_params[i].reg_name);
                struct reg *r = register_get_by_name(target->reg_cache, reg_params[i].reg_name, 0);
                if (!r) {