summaryrefslogtreecommitdiff
path: root/leon3.c
diff options
context:
space:
mode:
authorJiri Gaisler <jiri@gaisler.se>2020-02-29 11:07:13 +0100
committerJiri Gaisler <jiri@gaisler.se>2020-02-29 14:28:48 +0100
commit09ba9099c1562c4af1e2f624b9aa2692e563118b (patch)
tree2ae06e83b4f993e2e2e9a01f6b1bf9c982d55fa2 /leon3.c
parentacd17e755506d316e073175c3993954cb7d51f3e (diff)
Fix incorrect operation on big-endian hosts
Diffstat (limited to 'leon3.c')
-rw-r--r--leon3.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/leon3.c b/leon3.c
index 0a051d3..16b185e 100644
--- a/leon3.c
+++ b/leon3.c
@@ -996,12 +996,12 @@ store_bytes (char *mem, uint32 waddr, uint32 * data, int32 sz, int32 * ws)
switch (sz)
{
case 0:
- waddr ^= arch->endian;
+ waddr ^= arch->bswap;
mem[waddr] = *data & 0x0ff;
break;
case 1:
- waddr ^= arch->endian & 2;
- memcpy (&mem[waddr], data, 2);
+ waddr ^= arch->bswap & 2;
+ *((uint16 *) & mem[waddr]) = (*data & 0x0ffff);
break;
case 3:
memcpy (&mem[waddr], data, 8);