memory: Fix memory_region_wrong_endianness()
authorAndreas Färber <afaerber@suse.de>
Sat, 7 Jan 2012 08:45:14 +0000 (09:45 +0100)
committerAvi Kivity <avi@redhat.com>
Sun, 8 Jan 2012 11:10:09 +0000 (13:10 +0200)
Since commit be675c972088eba210e18dc125613e9f205a6bfb (memory: move
endianness compensation to memory core) it was checking for
TARGET_BIG_ENDIAN instead of TARGET_WORDS_BIGENDIAN, thereby not
swapping correctly for Big Endian targets.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
memory.c

index 394cbab10efc83a28c895a831c642e3f59c5ecaa..5e55a9019e71540c1427bfdfc97f3a0dfe85101c 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -843,7 +843,7 @@ static void memory_region_destructor_rom_device(MemoryRegion *mr)
 
 static bool memory_region_wrong_endianness(MemoryRegion *mr)
 {
-#ifdef TARGET_BIG_ENDIAN
+#ifdef TARGET_WORDS_BIGENDIAN
     return mr->ops->endianness == DEVICE_LITTLE_ENDIAN;
 #else
     return mr->ops->endianness == DEVICE_BIG_ENDIAN;