mmio thumb byteswap
This commit is contained in:
parent
ae9d34b3d8
commit
09b5aab57b
1 changed files with 14 additions and 10 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue