Skip to content
  • Salvador Arroyo's avatar
    mips: change in restoring debug working register · 37a6e402
    Salvador Arroyo authored
    
    
    In current devel code there are 3 functions (related to m4k code) that need to restore register 8 from pracc stack:
    mips32_pracc_read_u32()
    mips32_cp0_read()
    mips32_pracc_write_mem_generic()
    
    And mips32_pracc_read_mem() needs to restore regs 8 and 9 from pracc stack.
    
    Values in this registers should be the same as read by mips32_pracc_read_regs() when entering debug
    mode and can be modified by mips32_pracc_write_regs() when leaving debug mode.
    There is no need to read their values from the processor registers every time.
    
    The fields reg8 and reg9 are added to struct mips_ejtag to store these register values
    and the call to mips32_save_context() is shifted in mips_m4k_debug_entry() in order
    to store them before any other function needs to restore these registers.
    For the same reason in function mips_m4k_step() the call to mips_m4k_set_breakpoint(), if needed,
    should be made after calling mips_m4k_debug_entry().
    For single word write the number of pracc accesses are now 9 or 8, from 13 or 12 in current code,
    single word read takes now 10 instead of 12.
    
    This patch is really the first in a set of patches for an alternate m4k pracc code
    much faster that current code. At least for me with pic32mx works fine.
    
    Change-Id: Ibd9df5e8b9f78ce05a180949ba6a561c761b61d6
    Signed-off-by: default avatarSalvador Arroyo <sarroyofdez@yahoo.es>
    Reviewed-on: http://openocd.zylin.com/1146
    
    
    Tested-by: jenkins
    Reviewed-by: default avatarSpencer Oliver <spen@spen-soft.co.uk>
    37a6e402