2193 |
if ((pd & ~TARGET_PAGE_MASK) != IO_MEM_RAM) { |
if ((pd & ~TARGET_PAGE_MASK) != IO_MEM_RAM) { |
2194 |
io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1); |
io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1); |
2195 |
if (l >= 4 && ((addr & 3) == 0)) { |
if (l >= 4 && ((addr & 3) == 0)) { |
2196 |
/* 32 bit read access */ |
/* 32 bit write access */ |
2197 |
val = ldl_p(buf); |
val = ldl_p(buf); |
2198 |
io_mem_write[io_index][2](io_mem_opaque[io_index], addr, val); |
io_mem_write[io_index][2](io_mem_opaque[io_index], addr, val); |
2199 |
l = 4; |
l = 4; |
2200 |
} else if (l >= 2 && ((addr & 1) == 0)) { |
} else if (l >= 2 && ((addr & 1) == 0)) { |
2201 |
/* 16 bit read access */ |
/* 16 bit write access */ |
2202 |
val = lduw_p(buf); |
val = lduw_p(buf); |
2203 |
io_mem_write[io_index][1](io_mem_opaque[io_index], addr, val); |
io_mem_write[io_index][1](io_mem_opaque[io_index], addr, val); |
2204 |
l = 2; |
l = 2; |
2205 |
} else { |
} else { |
2206 |
/* 8 bit access */ |
/* 8 bit write access */ |
2207 |
val = ldub_p(buf); |
val = ldub_p(buf); |
2208 |
io_mem_write[io_index][0](io_mem_opaque[io_index], addr, val); |
io_mem_write[io_index][0](io_mem_opaque[io_index], addr, val); |
2209 |
l = 1; |
l = 1; |
2237 |
stw_p(buf, val); |
stw_p(buf, val); |
2238 |
l = 2; |
l = 2; |
2239 |
} else { |
} else { |
2240 |
/* 8 bit access */ |
/* 8 bit read access */ |
2241 |
val = io_mem_read[io_index][0](io_mem_opaque[io_index], addr); |
val = io_mem_read[io_index][0](io_mem_opaque[io_index], addr); |
2242 |
stb_p(buf, val); |
stb_p(buf, val); |
2243 |
l = 1; |
l = 1; |