]> git.proxmox.com Git - qemu.git/commitdiff
Enforce proper sign extension for lwl/lwr on MIPS64.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 23 Oct 2007 23:23:43 +0000 (23:23 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 23 Oct 2007 23:23:43 +0000 (23:23 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3430 c046a42c-6fe2-441c-8c8c-71466251a162

target-mips/op_mem.c

index d402d616b1f4cd58a27d17f78d22be0094589185..42f5e2ba3f9f1b7919e96a9eff02b4bec6f69e11 100644 (file)
@@ -89,7 +89,7 @@ void glue(op_lwl, MEMSUFFIX) (void)
     target_ulong tmp;
 
     tmp = glue(ldub, MEMSUFFIX)(T0);
-    T1 = (int32_t)((T1 & 0x00FFFFFF) | (tmp << 24));
+    T1 = (T1 & 0x00FFFFFF) | (tmp << 24);
 
     if (GET_LMASK(T0) <= 2) {
         tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 1));
@@ -105,6 +105,7 @@ void glue(op_lwl, MEMSUFFIX) (void)
         tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, 3));
         T1 = (T1 & 0xFFFFFF00) | tmp;
     }
+    T1 = (int32_t)T1;
     RETURN();
 }
 
@@ -129,6 +130,7 @@ void glue(op_lwr, MEMSUFFIX) (void)
         tmp = glue(ldub, MEMSUFFIX)(GET_OFFSET(T0, -3));
         T1 = (T1 & 0x00FFFFFF) | (tmp << 24);
     }
+    T1 = (int32_t)T1;
     RETURN();
 }