]> git.sur5r.net Git - openocd/blobdiff - src/target/mips32.c
cortex_m3: use register_commands()
[openocd] / src / target / mips32.c
index 1315744cca3e86d4c9a142c578f1d6bad6de7003..0b8ebb4a1fd2b768abd9805781f3057e6d06579d 100644 (file)
@@ -97,11 +97,8 @@ struct reg mips32_gdb_dummy_fp_reg =
        .valid = 1,
        .size = 32,
        .arch_info = NULL,
-       .arch_type = 0,
 };
 
-int mips32_core_reg_arch_type = -1;
-
 int mips32_get_core_reg(struct reg *reg)
 {
        int retval;
@@ -178,21 +175,6 @@ int mips32_write_core_reg(struct target *target, int num)
        return ERROR_OK;
 }
 
-int mips32_invalidate_core_regs(struct target *target)
-{
-       /* get pointers to arch-specific information */
-       struct mips32_common *mips32 = target->arch_info;
-       int i;
-
-       for (i = 0; i < mips32->core_cache->num_regs; i++)
-       {
-               mips32->core_cache->reg_list[i].valid = 0;
-               mips32->core_cache->reg_list[i].dirty = 0;
-       }
-
-       return ERROR_OK;
-}
-
 int mips32_get_gdb_reg_list(struct target *target, struct reg **reg_list[], int *reg_list_size)
 {
        /* get pointers to arch-specific information */
@@ -278,6 +260,11 @@ int mips32_arch_state(struct target *target)
        return ERROR_OK;
 }
 
+static const struct reg_arch_type mips32_reg_type = {
+       .get = mips32_get_core_reg,
+       .set = mips32_set_core_reg,
+};
+
 struct reg_cache *mips32_build_reg_cache(struct target *target)
 {
        /* get pointers to arch-specific information */
@@ -290,9 +277,6 @@ struct reg_cache *mips32_build_reg_cache(struct target *target)
        struct mips32_core_reg *arch_info = malloc(sizeof(struct mips32_core_reg) * num_regs);
        int i;
 
-       if (mips32_core_reg_arch_type == -1)
-               mips32_core_reg_arch_type = register_reg_arch_type(mips32_get_core_reg, mips32_set_core_reg);
-
        register_init_dummy(&mips32_gdb_dummy_fp_reg);
 
        /* Build the process context cache */
@@ -313,7 +297,7 @@ struct reg_cache *mips32_build_reg_cache(struct target *target)
                reg_list[i].value = calloc(1, 4);
                reg_list[i].dirty = 0;
                reg_list[i].valid = 0;
-               reg_list[i].arch_type = mips32_core_reg_arch_type;
+               reg_list[i].type = &mips32_reg_type;
                reg_list[i].arch_info = &arch_info[i];
        }