aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2011-06-28 18:22:32 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-06-28 18:22:32 +0200
commit2482244b0788c007dd789c21a4416379c229ea5c (patch)
tree8960f20af7e88ad2d86bac1fc761ac8cdc017c2f
parente4c054cada07bf780fbb750bfd630ec6c03d6d99 (diff)
downloadriscv-openocd-2482244b0788c007dd789c21a4416379c229ea5c.zip
riscv-openocd-2482244b0788c007dd789c21a4416379c229ea5c.tar.gz
riscv-openocd-2482244b0788c007dd789c21a4416379c229ea5c.tar.bz2
mips4k: fix big-endian hosts and host alignment problems
the code was making assumptions about the endianness of the host.
-rw-r--r--src/target/mips_m4k.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c
index 03c9969..9b4e1a4 100644
--- a/src/target/mips_m4k.c
+++ b/src/target/mips_m4k.c
@@ -877,11 +877,11 @@ static int mips_m4k_read_memory(struct target *target, uint32_t address,
switch(size)
{
case 4:
- t32 = *(uint32_t*)&buffer[i];
+ t32 = le_to_h_u32(&buffer[i]);
target_buffer_set_u32(target,&buffer[i], t32);
break;
case 2:
- t16 = *(uint16_t*)&buffer[i];
+ t16 = le_to_h_u16(&buffer[i]);
target_buffer_set_u16(target,&buffer[i], t16);
break;
}
@@ -930,11 +930,11 @@ static int mips_m4k_write_memory(struct target *target, uint32_t address,
{
case 4:
t32 = target_buffer_get_u32(target,&buffer[i]);
- *(uint32_t*)&t[i] = t32;
+ h_u32_to_le(&t[i], t32);
break;
case 2:
t16 = target_buffer_get_u16(target,&buffer[i]);
- *(uint16_t*)&t[i] = t16;
+ h_u16_to_le(&t[i], t16);
break;
}
}
@@ -1074,7 +1074,7 @@ static int mips_m4k_bulk_write_memory(struct target *target, uint32_t address,
for(i = 0; i < (count*4); i += 4)
{
t32 = target_buffer_get_u32(target,&buffer[i]);
- *(uint32_t*)&t[i] = t32;
+ h_u32_to_le(&t[i], t32);
}
retval = mips32_pracc_fastdata_xfer(ejtag_info, mips32->fast_data_area, write_t, address,