apps,litenes: use uint16_t for word memory accessing

This commit is contained in:
Zihao Yu 2019-04-30 11:55:48 +08:00
parent 342e5ec844
commit 5ae9a76c1e
2 changed files with 6 additions and 4 deletions

View File

@ -47,7 +47,10 @@ static inline uint32_t memory_readw(uint32_t address)
static inline uint32_t instr_fetchw(uint32_t address)
{
return instr_fetch(address) | (instr_fetch(address + 1) << 8);
extern byte memory[0x10000]; // mmc
// for super mairo, all fetch are from mmc
return *(uint16_t *)(memory + address);
}
static inline void memory_writew(uint32_t address, uint32_t word_data)

View File

@ -192,12 +192,11 @@ inline void cpu_ram_write(uint32_t address, uint32_t byte_data) {
}
static inline uint32_t cpu_ram_readw(uint32_t address) {
return cpu_ram_read(address) | (cpu_ram_read(address + 1) << 8);
return *(uint16_t *)(CPU_RAM + address);
}
static inline void cpu_ram_writew(uint32_t address, uint32_t word_data) {
cpu_ram_write(address, word_data & 0xff);
cpu_ram_write(address + 1, word_data >> 8);
*(uint16_t *)(CPU_RAM + address) = word_data;
}