Skip to content
  • Drasko DRASKOVIC's avatar
    mips_m4k : Fix soft breakpoint endianess handling · bad3ee87
    Drasko DRASKOVIC authored
    In order to compare data read from the target with some marcros or data
    defined on the host, we must transform this read data from target
    endianess to host endianess.
    target_read_memory() gets bytes from target to the host, but keeps them in _target_
    endianess. This is OK if we just want to temporary keep this data on the
    host, like keeping breakpoint->orig_instr. But if we want to use this
    data for any ispections and comparisons on the host side, we must
    transform it to _host_ endianess, by using target_buffer_get_u32()
    function.
    Currently this transformation is missing, and check current_instr ==
    MIPS32_SDBBP will never pass if target and host endianess differ,
    because current_instr will be kept in _target_ endianess and
    MIPS32_SDBBP will be kept in _host_ endianess,
    
    The patch fix this issue by using target_buffer_get_u32() to transform current_instr to
    _host_ endianess before comparison.
    bad3ee87