ARM: remove per-register malloc
authorDavid Brownell <dbrownell@users.sourceforge.net>
Thu, 19 Nov 2009 21:23:49 +0000 (13:23 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Thu, 19 Nov 2009 21:23:49 +0000 (13:23 -0800)
Just pre-allocate memory for the cached register value.
Shrinks heap overhead; increases locality-of-reference.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
src/target/armv4_5.c
src/target/armv4_5.h

index b6061af3b385b13c0472239664a7b0168ccfdd60..44e5b0ace125404a0609beaf9d3e0da17b83805c 100644 (file)
@@ -489,7 +489,7 @@ struct reg_cache* armv4_5_build_reg_cache(struct target *target, struct arm *arm
 
                reg_list[i].name = (char *) arm_core_regs[i].name;
                reg_list[i].size = 32;
-               reg_list[i].value = calloc(1, 4);
+               reg_list[i].value = &arch_info[i].value;
                reg_list[i].type = &arm_reg_type;
                reg_list[i].arch_info = &arch_info[i];
 
index 6b1dd769d192c7ba87127bdd15b9d3073da86e3b..50af57b36c716313acd786750a90c3da50bac494 100644 (file)
@@ -143,6 +143,7 @@ struct armv4_5_core_reg
        enum armv4_5_mode mode;
        struct target *target;
        struct arm *armv4_5_common;
+       uint32_t value;
 };
 
 struct reg_cache* armv4_5_build_reg_cache(struct target *target,