diff options
author | Andrew Waterman <andrew@sifive.com> | 2023-02-04 18:38:41 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2023-02-04 18:38:41 -0800 |
commit | ddabbe516e2f82ac1d94ce5351402b73fbf55850 (patch) | |
tree | 0e2bda38e16774b5f8f6671ff5fefb7fd141f391 | |
parent | 749b03f3b86b601dee814d4299deee3e97e0e3b7 (diff) | |
download | spike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.zip spike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.tar.gz spike-ddabbe516e2f82ac1d94ce5351402b73fbf55850.tar.bz2 |
Fix PLIC on big-endian hosts
-rw-r--r-- | riscv/plic.cc | 2 |
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); |