Fix tswap size
authormalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 20 Aug 2008 22:39:26 +0000 (22:39 +0000)
committermalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 20 Aug 2008 22:39:26 +0000 (22:39 +0000)
p in this case is uint32_t *

e1/e2 are unsigned ints initialized from arithmetics performed on
unsigned longs

The mistake was, probably, never noticed due to the absence of any
big endian linux-user host. The types e1/e2 and p begs the quesiton
why this function takes longs at all.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5036 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/main.c

index 11e9be84b2a83bf9e58f146669c6aac87dffc22b..bc8c1e6fe148087dfd32517345638885cd43dd0b 100644 (file)
@@ -278,8 +278,8 @@ static void write_dt(void *ptr, unsigned long addr, unsigned long limit,
     e2 = ((addr >> 16) & 0xff) | (addr & 0xff000000) | (limit & 0x000f0000);
     e2 |= flags;
     p = ptr;
-    p[0] = tswapl(e1);
-    p[1] = tswapl(e2);
+    p[0] = tswap32(e1);
+    p[1] = tswap32(e2);
 }
 
 #if TARGET_X86_64