Fix lui sign extension.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 25 Apr 2007 13:58:52 +0000 (13:58 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 25 Apr 2007 13:58:52 +0000 (13:58 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2726 c046a42c-6fe2-441c-8c8c-71466251a162

target-mips/translate.c

index 3035ea2..96a0f37 100644 (file)
@@ -907,7 +907,7 @@ static void gen_arith_imm (DisasContext *ctx, uint32_t opc, int rt,
         GEN_LOAD_IMM_TN(T1, uimm);
         break;
     case OPC_LUI:
-        uimm <<= 16;
+        uimm =  (int32_t)(imm << 16);
         GEN_LOAD_IMM_TN(T0, uimm);
         break;
     case OPC_SLL: