aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2023-02-04 18:38:41 -0800
committerAndrew Waterman <andrew@sifive.com>2023-02-04 18:38:41 -0800
commitddabbe516e2f82ac1d94ce5351402b73fbf55850 (patch)
tree0e2bda38e16774b5f8f6671ff5fefb7fd141f391
parent749b03f3b86b601dee814d4299deee3e97e0e3b7 (diff)
downloadspike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.zip
spike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.tar.gz
spike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.tar.bz2
Fix PLIC on big-endian hosts
-rw-r--r--riscv/plic.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/riscv/plic.cc b/riscv/plic.cc
index 64041b7..ab0b00f 100644
--- a/riscv/plic.cc
+++ b/riscv/plic.cc
@@ -343,6 +343,7 @@ bool plic_t::load(reg_t addr, size_t len, uint8_t* bytes)
}
if (ret) {
+ val = to_le(val);
memcpy(bytes, (uint8_t *)&val, len);
}
@@ -366,6 +367,7 @@ bool plic_t::store(reg_t addr, size_t len, const uint8_t* bytes)
}
memcpy((uint8_t *)&val, bytes, len);
+ val = from_le(val);
if (PRIORITY_BASE <= addr && addr < ENABLE_BASE) {
ret = priority_write(addr, val);