armv7m_core_reg = armv7m->core_cache->reg_list[num].arch_info;
        retval = armv7m->load_core_reg_u32(target,
-                       armv7m_core_reg->type,
                        armv7m_core_reg->num,
                        ®_value);
        buf_set_u32(armv7m->core_cache->reg_list[num].value, 0, 32, reg_value);
        reg_value = buf_get_u32(armv7m->core_cache->reg_list[num].value, 0, 32);
        armv7m_core_reg = armv7m->core_cache->reg_list[num].arch_info;
        retval = armv7m->store_core_reg_u32(target,
-                       armv7m_core_reg->type,
                        armv7m_core_reg->num,
                        reg_value);
        if (retval != ERROR_OK) {
                return ERROR_TARGET_TIMEOUT;
        }
 
-       armv7m->load_core_reg_u32(target, ARMV7M_REGISTER_CORE_GP, 15, &pc);
+       armv7m->load_core_reg_u32(target, 15, &pc);
        if (exit_point && (pc != exit_point)) {
                LOG_DEBUG("failed algorithm halted at 0x%" PRIx32 ", expected 0x%" PRIx32,
                        pc,
 
 extern const int armv7m_psp_reg_map[];
 extern const int armv7m_msp_reg_map[];
 
-enum armv7m_regtype {
-       ARMV7M_REGISTER_CORE_GP,
-       ARMV7M_REGISTER_CORE_SP,
-       ARMV7M_REGISTER_MEMMAP
-};
-
 char *armv7m_exception_string(int number);
 
 /* offsets into armv7m core register cache */
        bool stlink;
 
        /* Direct processor core register read and writes */
-       int (*load_core_reg_u32)(struct target *target,
-               enum armv7m_regtype type, uint32_t num, uint32_t *value);
-       int (*store_core_reg_u32)(struct target *target,
-               enum armv7m_regtype type, uint32_t num, uint32_t value);
+       int (*load_core_reg_u32)(struct target *target, uint32_t num, uint32_t *value);
+       int (*store_core_reg_u32)(struct target *target, uint32_t num, uint32_t value);
 
        /* register cache to processor synchronization */
        int (*read_core_reg)(struct target *target, unsigned num);
 
 struct armv7m_core_reg {
        uint32_t num;
-       enum armv7m_regtype type;
        struct target *target;
        struct armv7m_common *armv7m_common;
 };
 
 
 /* forward declarations */
 static int cortex_m3_store_core_reg_u32(struct target *target,
-       enum armv7m_regtype type, uint32_t num, uint32_t value);
+               uint32_t num, uint32_t value);
 
 static int cortexm3_dap_read_coreregister_u32(struct adiv5_dap *swjdp,
        uint32_t *value, int regnum)
        /* For IT instructions xPSR must be reloaded on resume and clear on debug exec */
        if (xPSR & 0xf00) {
                r->dirty = r->valid;
-               cortex_m3_store_core_reg_u32(target, ARMV7M_REGISTER_CORE_GP, 16, xPSR & ~0xff);
+               cortex_m3_store_core_reg_u32(target, 16, xPSR & ~0xff);
        }
 
        /* Are we in an exception handler */
 }
 
 static int cortex_m3_load_core_reg_u32(struct target *target,
-       enum armv7m_regtype type, uint32_t num, uint32_t *value)
+               uint32_t num, uint32_t *value)
 {
        int retval;
        struct armv7m_common *armv7m = target_to_armv7m(target);
 }
 
 static int cortex_m3_store_core_reg_u32(struct target *target,
-       enum armv7m_regtype type, uint32_t num, uint32_t value)
+               uint32_t num, uint32_t value)
 {
        int retval;
        uint32_t reg;
 
 }
 
 static int adapter_load_core_reg_u32(struct target *target,
-               enum armv7m_regtype type,
                uint32_t num, uint32_t *value)
 {
        int retval;
 }
 
 static int adapter_store_core_reg_u32(struct target *target,
-               enum armv7m_regtype type,
                uint32_t num, uint32_t value)
 {
        int retval;