FA526 uses the new inheritance/nesting scheme
authorDavid Brownell <dbrownell@users.sourceforge.net>
Fri, 6 Nov 2009 06:03:24 +0000 (22:03 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Fri, 6 Nov 2009 06:03:24 +0000 (22:03 -0800)
Replace needless pointer traversals, simplify.

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

index 3bd0225fd428856c7c2cc16b2a29d240d0419701..1a204b114f368010627d4971474a0c7b09803fb9 100644 (file)
@@ -43,9 +43,7 @@ static void fa526_read_core_regs(target_t *target,
                uint32_t mask, uint32_t* core_regs[16])
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* STMIA r0-15, [r0] at debug speed
@@ -72,9 +70,7 @@ static void fa526_read_core_regs_target_buffer(target_t *target,
                uint32_t mask, void* buffer, int size)
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
        int be = (target->endianness == TARGET_BIG_ENDIAN) ? 1 : 0;
        uint32_t *buf_u32 = buffer;
@@ -114,9 +110,7 @@ static void fa526_read_core_regs_target_buffer(target_t *target,
 
 static void fa526_read_xpsr(target_t *target, uint32_t *xpsr, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* MRS r0, cpsr */
@@ -141,9 +135,7 @@ static void fa526_read_xpsr(target_t *target, uint32_t *xpsr, int spsr)
 
 static void fa526_write_xpsr(target_t *target, uint32_t xpsr, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        LOG_DEBUG("xpsr: %8.8" PRIx32 ", spsr: %i", xpsr, spsr);
@@ -180,9 +172,7 @@ static void fa526_write_xpsr(target_t *target, uint32_t xpsr, int spsr)
 static void fa526_write_xpsr_im8(target_t *target,
                uint8_t xpsr_im, int rot, int spsr)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        LOG_DEBUG("xpsr_im: %2.2x, rot: %i, spsr: %i", xpsr_im, rot, spsr);
@@ -210,9 +200,7 @@ static void fa526_write_core_regs(target_t *target,
                uint32_t mask, uint32_t core_regs[16])
 {
        int i;
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* LDMIA r0-15, [r0] at debug speed
@@ -238,9 +226,7 @@ static void fa526_write_core_regs(target_t *target,
 
 static void fa526_write_pc(target_t *target, uint32_t pc)
 {
-       /* get pointers to arch-specific information */
-       armv4_5_common_t *armv4_5 = target->arch_info;
-       arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+       struct arm7_9_common_s *arm7_9 = target_to_arm7_9(target);
        arm_jtag_t *jtag_info = &arm7_9->jtag_info;
 
        /* LDMIA r0-15, [r0] at debug speed
@@ -272,11 +258,9 @@ static void fa526_branch_resume_thumb(target_t *target)
 static int fa526_init_arch_info_2(target_t *target,
                arm9tdmi_common_t *arm9tdmi, jtag_tap_t *tap)
 {
-       armv4_5_common_t *armv4_5;
        arm7_9_common_t *arm7_9;
 
        arm7_9 = &arm9tdmi->arm7_9_common;
-       armv4_5 = &arm7_9->armv4_5_common;
 
        /* prepare JTAG information for the new target */
        arm7_9->jtag_info.tap = tap;
@@ -318,9 +302,6 @@ static int fa526_init_arch_info_2(target_t *target,
        arm7_9->thumb_bkpt = 0xdeee;
 
        arm7_9->dbgreq_adjust_pc = 3;
-       arm7_9->arch_info = arm9tdmi;
-
-       arm9tdmi->common_magic = ARM9TDMI_COMMON_MAGIC;
 
        arm7_9_init_arch_info(target, arm7_9);