]> git.proxmox.com Git - qemu.git/commitdiff
memory: add big endian support to access_with_adjusted_size
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 May 2013 10:54:01 +0000 (12:54 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 29 May 2013 14:27:22 +0000 (16:27 +0200)
This will be used to split 8-byte access down to two four-byte accesses.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
memory.c

index c72f56d472b6ceaad593fb7046956a0a43378120..679bd8d8b0a617c9ef4e8ee3401ad018a88ab819 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -362,8 +362,12 @@ static void access_with_adjusted_size(hwaddr addr,
     access_size = MAX(MIN(size, access_size_max), access_size_min);
     access_mask = -1ULL >> (64 - access_size * 8);
     for (i = 0; i < size; i += access_size) {
-        /* FIXME: big-endian support */
+#ifdef TARGET_WORDS_BIGENDIAN
+        access(opaque, addr + i, value, access_size,
+               (size - access_size - i) * 8, access_mask);
+#else
         access(opaque, addr + i, value, access_size, i * 8, access_mask);
+#endif
     }
 }