When a variable size is known, prefer the address_space_ld/st() API. Keep address_space_read/write() for blobs.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- system/ioport.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/system/ioport.c b/system/ioport.c index 35ad256c940..5cc71906b9f 100644 --- a/system/ioport.c +++ b/system/ioport.c @@ -61,58 +61,50 @@ const MemoryRegionOps unassigned_io_ops = { void cpu_outb(uint32_t addr, uint8_t val) { trace_cpu_out(addr, 'b', val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + address_space_stb(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } void cpu_outw(uint32_t addr, uint16_t val) { - uint8_t buf[2]; - trace_cpu_out(addr, 'w', val); - stw_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 2); + address_space_stw_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } void cpu_outl(uint32_t addr, uint32_t val) { - uint8_t buf[4]; - trace_cpu_out(addr, 'l', val); - stl_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 4); + address_space_stl_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } uint8_t cpu_inb(uint32_t addr) { uint8_t val; - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + val = address_space_ldub(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'b', val); return val; } uint16_t cpu_inw(uint32_t addr) { - uint8_t buf[2]; uint16_t val; - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 2); - val = lduw_le_p(buf); + val = address_space_lduw_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'w', val); return val; } uint32_t cpu_inl(uint32_t addr) { - uint8_t buf[4]; uint32_t val; - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 4); - val = ldl_le_p(buf); + val = address_space_ldl_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'l', val); return val; } -- 2.52.0
