sparc64: fix helper_st_asi little endian case typo
On Sun, Jul 12, 2009 at 12:43 AM, Stuart Brady<sdbrady@ntlworld.com> 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: igor.v.kovalenko@gmail.com
--
Kind regards,
Igor V. Kovalenko
			
			
This commit is contained in:
		
							parent
							
								
									7d55273fcd
								
							
						
					
					
						commit
						5b0f0bec71
					
				| 
						 | 
					@ -1949,13 +1949,13 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size)
 | 
				
			||||||
    case 0x89: // Secondary LE
 | 
					    case 0x89: // Secondary LE
 | 
				
			||||||
        switch(size) {
 | 
					        switch(size) {
 | 
				
			||||||
        case 2:
 | 
					        case 2:
 | 
				
			||||||
            addr = bswap16(addr);
 | 
					            val = bswap16(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case 4:
 | 
					        case 4:
 | 
				
			||||||
            addr = bswap32(addr);
 | 
					            val = bswap32(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case 8:
 | 
					        case 8:
 | 
				
			||||||
            addr = bswap64(addr);
 | 
					            val = bswap64(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -2321,13 +2321,13 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size)
 | 
				
			||||||
    case 0x89: // Secondary LE
 | 
					    case 0x89: // Secondary LE
 | 
				
			||||||
        switch(size) {
 | 
					        switch(size) {
 | 
				
			||||||
        case 2:
 | 
					        case 2:
 | 
				
			||||||
            addr = bswap16(addr);
 | 
					            val = bswap16(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case 4:
 | 
					        case 4:
 | 
				
			||||||
            addr = bswap32(addr);
 | 
					            val = bswap32(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case 8:
 | 
					        case 8:
 | 
				
			||||||
            addr = bswap64(addr);
 | 
					            val = bswap64(val);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue