qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [COMMIT 5b0f0be] sparc64: fix helper_st_asi little endian


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT 5b0f0be] sparc64: fix helper_st_asi little endian case typo
Date: Sun, 12 Jul 2009 07:55:27 -0000

From: Igor Kovalenko <address@hidden>

On Sun, Jul 12, 2009 at 12:43 AM, Stuart Brady<address@hidden> wrote:
> On Sat, Jul 11, 2009 at 10:22:18PM +0400, Igor Kovalenko wrote:
>> It is clear that intention is to byte-swap value to be written, not
>> the target address.
>
> @@ -1949,13 +1949,13 @@ void helper_st_asi(target_ulong addr, ta
>     case 0x89: // Secondary LE
>         switch(size) {
>         case 2:
> -            addr = bswap16(addr);
> +            addr = bswap16(val);
>             ^^^^
> Shouldn't that be 'val = bswap16(val)' (and likewise for the 32-bit and
> 64-bit cases)?  Also needs a 'signed-off-by:'...
>
> Cheers,
> --
> Stuart Brady
>

Thanks, that part I did not runtime-tested.
Not sure if those asi stores are of any use for user-mode emulator.

Please find attached the corrected version.

Signed-off-by: address@hidden

--
Kind regards,
Igor V. Kovalenko

diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index a1f5054..2449fc7 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -1949,13 +1949,13 @@ void helper_st_asi(target_ulong addr, target_ulong val, 
int asi, int size)
     case 0x89: // Secondary LE
         switch(size) {
         case 2:
-            addr = bswap16(addr);
+            val = bswap16(val);
             break;
         case 4:
-            addr = bswap32(addr);
+            val = bswap32(val);
             break;
         case 8:
-            addr = bswap64(addr);
+            val = bswap64(val);
             break;
         default:
             break;
@@ -2321,13 +2321,13 @@ void helper_st_asi(target_ulong addr, target_ulong val, 
int asi, int size)
     case 0x89: // Secondary LE
         switch(size) {
         case 2:
-            addr = bswap16(addr);
+            val = bswap16(val);
             break;
         case 4:
-            addr = bswap32(addr);
+            val = bswap32(val);
             break;
         case 8:
-            addr = bswap64(addr);
+            val = bswap64(val);
             break;
         default:
             break;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]