OSDN Git Service

tcg/mips: fix field extraction opcode
authorAurelien Jarno <aurelien@aurel32.net>
Sun, 30 Apr 2017 14:46:20 +0000 (16:46 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Sat, 6 May 2017 10:48:53 +0000 (12:48 +0200)
The "msb" argument should correspond to (len - 1).

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tcg/mips/tcg-target.inc.c

index 01ac7b2..2a7e1c7 100644 (file)
@@ -2093,11 +2093,11 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc,
                          args[3] + args[4] - 1, args[3]);
         break;
     case INDEX_op_extract_i32:
-        tcg_out_opc_bf(s, OPC_EXT, a0, a1, a2 + args[3] - 1, a2);
+        tcg_out_opc_bf(s, OPC_EXT, a0, a1, args[3] - 1, a2);
         break;
     case INDEX_op_extract_i64:
         tcg_out_opc_bf64(s, OPC_DEXT, OPC_DEXTM, OPC_DEXTU, a0, a1,
-                         a2 + args[3] - 1, a2);
+                         args[3] - 1, a2);
         break;
 
     case INDEX_op_brcond_i32: