Message ID | 1564048510876.64711@bt.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Invert Endian bit in SPARCv9 MMU TTE | expand |
On 7/25/19 11:55 AM, tony.nguyen@bt.com wrote: > Signed-off-by: Tony Nguyen <tony.nguyen@bt.com> > --- > exec.c | 6 ++++-- > memory_ldst.inc.c | 18 +++++++++--------- > 2 files changed, 13 insertions(+), 11 deletions(-) > > diff --git a/exec.c b/exec.c > index 3e78de3..5013864 100644 > --- a/exec.c > +++ b/exec.c > @@ -3334,7 +3334,8 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr, > /* XXX: could force current_cpu to NULL to avoid > potential bugs */ > val = ldn_p(buf, l); > - result |= memory_region_dispatch_write(mr, addr1, val, l, attrs); > + result |= memory_region_dispatch_write(mr, addr1, val, > + SIZE_MEMOP(l), attrs); > } else { > /* RAM case */ > ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false); > @@ -3395,7 +3396,8 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr, > /* I/O case */ > release_lock |= prepare_mmio_access(mr); > l = memory_access_size(mr, l, addr1); > - result |= memory_region_dispatch_read(mr, addr1, &val, l, attrs); > + result |= memory_region_dispatch_read(mr, addr1, &val, > + SIZE_MEMOP(l), attrs); > stn_p(buf, l, val); > } else { > /* RAM case */ > diff --git a/memory_ldst.inc.c b/memory_ldst.inc.c > index acf865b..e073cf9 100644 > --- a/memory_ldst.inc.c > +++ b/memory_ldst.inc.c > @@ -38,7 +38,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, > release_lock |= prepare_mmio_access(mr); > > /* I/O case */ > - r = memory_region_dispatch_read(mr, addr1, &val, 4, attrs); > + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(4), attrs); > #if defined(TARGET_WORDS_BIGENDIAN) > if (endian == DEVICE_LITTLE_ENDIAN) { > val = bswap32(val); > @@ -114,7 +114,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, > release_lock |= prepare_mmio_access(mr); > > /* I/O case */ > - r = memory_region_dispatch_read(mr, addr1, &val, 8, attrs); > + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(8), attrs); > #if defined(TARGET_WORDS_BIGENDIAN) > if (endian == DEVICE_LITTLE_ENDIAN) { > val = bswap64(val); > @@ -188,7 +188,7 @@ uint32_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, > release_lock |= prepare_mmio_access(mr); > > /* I/O case */ > - r = memory_region_dispatch_read(mr, addr1, &val, 1, attrs); > + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(1), attrs); > } else { > /* RAM case */ > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > @@ -224,7 +224,7 @@ static inline uint32_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, > release_lock |= prepare_mmio_access(mr); > > /* I/O case */ > - r = memory_region_dispatch_read(mr, addr1, &val, 2, attrs); > + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(2), attrs); > #if defined(TARGET_WORDS_BIGENDIAN) > if (endian == DEVICE_LITTLE_ENDIAN) { > val = bswap16(val); > @@ -300,7 +300,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL, > if (l < 4 || !memory_access_is_direct(mr, true)) { > release_lock |= prepare_mmio_access(mr); > > - r = memory_region_dispatch_write(mr, addr1, val, 4, attrs); > + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(4), attrs); > } else { > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > stl_p(ptr, val); > @@ -346,7 +346,7 @@ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, > val = bswap32(val); > } > #endif > - r = memory_region_dispatch_write(mr, addr1, val, 4, attrs); > + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(4), attrs); > } else { > /* RAM case */ > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > @@ -408,7 +408,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, > mr = TRANSLATE(addr, &addr1, &l, true, attrs); > if (!memory_access_is_direct(mr, true)) { > release_lock |= prepare_mmio_access(mr); > - r = memory_region_dispatch_write(mr, addr1, val, 1, attrs); > + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(1), attrs); > } else { > /* RAM case */ > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > @@ -451,7 +451,7 @@ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, > val = bswap16(val); > } > #endif > - r = memory_region_dispatch_write(mr, addr1, val, 2, attrs); > + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(2), attrs); > } else { > /* RAM case */ > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > @@ -524,7 +524,7 @@ static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, > val = bswap64(val); > } > #endif > - r = memory_region_dispatch_write(mr, addr1, val, 8, attrs); > + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(8), attrs); > } else { > /* RAM case */ > ptr = qemu_map_ram_ptr(mr->ram_block, addr1); > -- > 1.8.3.1 > > > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff --git a/exec.c b/exec.c index 3e78de3..5013864 100644 --- a/exec.c +++ b/exec.c @@ -3334,7 +3334,8 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr, /* XXX: could force current_cpu to NULL to avoid potential bugs */ val = ldn_p(buf, l); - result |= memory_region_dispatch_write(mr, addr1, val, l, attrs); + result |= memory_region_dispatch_write(mr, addr1, val, + SIZE_MEMOP(l), attrs); } else { /* RAM case */ ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false); @@ -3395,7 +3396,8 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr, /* I/O case */ release_lock |= prepare_mmio_access(mr); l = memory_access_size(mr, l, addr1); - result |= memory_region_dispatch_read(mr, addr1, &val, l, attrs); + result |= memory_region_dispatch_read(mr, addr1, &val, + SIZE_MEMOP(l), attrs); stn_p(buf, l, val); } else { /* RAM case */ diff --git a/memory_ldst.inc.c b/memory_ldst.inc.c index acf865b..e073cf9 100644 --- a/memory_ldst.inc.c +++ b/memory_ldst.inc.c @@ -38,7 +38,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, release_lock |= prepare_mmio_access(mr); /* I/O case */ - r = memory_region_dispatch_read(mr, addr1, &val, 4, attrs); + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(4), attrs); #if defined(TARGET_WORDS_BIGENDIAN) if (endian == DEVICE_LITTLE_ENDIAN) { val = bswap32(val); @@ -114,7 +114,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, release_lock |= prepare_mmio_access(mr); /* I/O case */ - r = memory_region_dispatch_read(mr, addr1, &val, 8, attrs); + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(8), attrs); #if defined(TARGET_WORDS_BIGENDIAN) if (endian == DEVICE_LITTLE_ENDIAN) { val = bswap64(val); @@ -188,7 +188,7 @@ uint32_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, release_lock |= prepare_mmio_access(mr); /* I/O case */ - r = memory_region_dispatch_read(mr, addr1, &val, 1, attrs); + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(1), attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1); @@ -224,7 +224,7 @@ static inline uint32_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, release_lock |= prepare_mmio_access(mr); /* I/O case */ - r = memory_region_dispatch_read(mr, addr1, &val, 2, attrs); + r = memory_region_dispatch_read(mr, addr1, &val, SIZE_MEMOP(2), attrs); #if defined(TARGET_WORDS_BIGENDIAN) if (endian == DEVICE_LITTLE_ENDIAN) { val = bswap16(val); @@ -300,7 +300,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL, if (l < 4 || !memory_access_is_direct(mr, true)) { release_lock |= prepare_mmio_access(mr); - r = memory_region_dispatch_write(mr, addr1, val, 4, attrs); + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(4), attrs); } else { ptr = qemu_map_ram_ptr(mr->ram_block, addr1); stl_p(ptr, val); @@ -346,7 +346,7 @@ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, val = bswap32(val); } #endif - r = memory_region_dispatch_write(mr, addr1, val, 4, attrs); + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(4), attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1); @@ -408,7 +408,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, mr = TRANSLATE(addr, &addr1, &l, true, attrs); if (!memory_access_is_direct(mr, true)) { release_lock |= prepare_mmio_access(mr); - r = memory_region_dispatch_write(mr, addr1, val, 1, attrs); + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(1), attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1); @@ -451,7 +451,7 @@ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, val = bswap16(val); } #endif - r = memory_region_dispatch_write(mr, addr1, val, 2, attrs); + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(2), attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1); @@ -524,7 +524,7 @@ static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, val = bswap64(val); } #endif - r = memory_region_dispatch_write(mr, addr1, val, 8, attrs); + r = memory_region_dispatch_write(mr, addr1, val, SIZE_MEMOP(8), attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
Signed-off-by: Tony Nguyen <tony.nguyen@bt.com> --- exec.c | 6 ++++-- memory_ldst.inc.c | 18 +++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) -- 1.8.3.1