]> git.sur5r.net Git - openocd/commit
mips_m4k : Fix soft breakpoint endianess handling
authorDrasko DRASKOVIC <drasko.draskovic@gmail.com>
Fri, 1 Jul 2011 19:12:54 +0000 (21:12 +0200)
committerDrasko DRASKOVIC <drasko.draskovic@gmail.com>
Fri, 1 Jul 2011 19:31:08 +0000 (21:31 +0200)
commitbad3ee87ac170150a9a8a72c731aa631a1ad8cf5
tree7d60728bcf75fbc84867ebceb5fc0784145fff09
parentf6026a8295faf158e500a7acb9884f9fd4c30ad1
mips_m4k : Fix soft breakpoint endianess handling

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.
src/target/mips_m4k.c