Fix order of CVT.PS.S operands
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 27 Aug 2012 08:53:29 +0000 (09:53 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 27 Aug 2012 10:03:18 +0000 (12:03 +0200)
The FS input to CVT.PS.S is the high half and FT is the low half.
tcg_gen_concat_i32_i64 takes the low half first, so the operands
were in the wrong order.

Signed-off-by: Richard Sandiford <rdsandiford@googlemail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-mips/translate.c

index 2589f63b35e27b89320f1623b8ec07d03fe1f97b..d8129864ed5e8c8aeb05e098db99d719d7671d69 100644 (file)
@@ -6900,7 +6900,7 @@ static void gen_farith (DisasContext *ctx, enum fopcode op1,
 
             gen_load_fpr32(fp32_0, fs);
             gen_load_fpr32(fp32_1, ft);
-            tcg_gen_concat_i32_i64(fp64, fp32_0, fp32_1);
+            tcg_gen_concat_i32_i64(fp64, fp32_1, fp32_0);
             tcg_temp_free_i32(fp32_1);
             tcg_temp_free_i32(fp32_0);
             gen_store_fpr64(ctx, fp64, fd);