mmio thumb byteswap

This commit is contained in:
wrapper 2026-03-29 21:34:32 +07:00
parent ae9d34b3d8
commit 09b5aab57b

View file

@ -236,19 +236,23 @@ namespace Dynemu {
u32 temp;
if (auto ret = handle_mmio_read(vaddr, 4); ret.has_value()) {
return ret.value();
temp = ret.value();
} else {
if (big_endian && is_thumb) {
temp = MemoryRead8(vaddr + 1);
temp |= MemoryRead8(vaddr) << 8;
temp |= MemoryRead8(vaddr + 3) << 16;
temp |= MemoryRead8(vaddr + 2) << 24;
return temp;
}
temp = MemoryRead32(vaddr);
}
return MemoryRead32(vaddr);
if (big_endian && is_thumb) {
u32 temp_t_be;
temp_t_be = (temp >> 16) & 0xff;
temp_t_be |= ((temp >> 24) & 0xff) << 8;
temp_t_be |= (temp & 0xff) << 16;
temp_t_be |= ((temp >> 8) & 0xff) << 24;
return temp_t_be;
}
return temp;
}
u8 MyEmulator::MemoryRead8(u32 vaddr) {