mips32: exit_point optional for mips32_run_algorithm
[fw/openocd] / src / target / mips32.c
index 0923a79293c28db7b7b164b72e52f6455498e0be..24cd7d954a973d2743da415c4e2f7b6ea09fb721 100644 (file)
@@ -348,7 +348,7 @@ static int mips32_run_and_wait(struct target *target, uint32_t entry_point,
        }
 
        pc = buf_get_u32(mips32->core_cache->reg_list[MIPS32_PC].value, 0, 32);
-       if (pc != exit_point)
+       if (exit_point && (pc != exit_point))
        {
                LOG_DEBUG("failed algoritm halted at 0x%" PRIx32 " ", pc);
                return ERROR_TARGET_TIMEOUT;
@@ -388,7 +388,7 @@ int mips32_run_algorithm(struct target *target, int num_mem_params,
        }
 
        /* refresh core register cache */
-       for (unsigned i = 0; i < MIPS32NUMCOREREGS; i++)
+       for (i = 0; i < MIPS32NUMCOREREGS; i++)
        {
                if (!mips32->core_cache->reg_list[i].valid)
                        mips32->read_core_reg(target, i);
@@ -404,7 +404,7 @@ int mips32_run_algorithm(struct target *target, int num_mem_params,
                }
        }
 
-       for (int i = 0; i < num_reg_params; i++)
+       for (i = 0; i < num_reg_params; i++)
        {
                struct reg *reg = register_get_by_name(mips32->core_cache, reg_params[i].reg_name, 0);