]> Git Repo - qemu.git/commitdiff
target-tilegx: Implement table index instructions
authorRichard Henderson <[email protected]>
Wed, 23 Sep 2015 17:19:44 +0000 (10:19 -0700)
committerRichard Henderson <[email protected]>
Wed, 7 Oct 2015 09:03:14 +0000 (20:03 +1100)
Signed-off-by: Richard Henderson <[email protected]>
target-tilegx/translate.c

index 3e5a8ea0491f4bda82d3554b0020d72120c8d7ad..9f86fd3710268dc94b053dace8dea97296eab44e 100644 (file)
@@ -627,12 +627,27 @@ static TileExcp gen_rr_opcode(DisasContext *dc, unsigned opext,
         break;
     case OE_RR_X0(TBLIDXB0):
     case OE_RR_Y0(TBLIDXB0):
+        tcg_gen_deposit_tl(tdest, load_gr(dc, dest), tsrca, 2, 8);
+        mnemonic = "tblidxb0";
+        break;
     case OE_RR_X0(TBLIDXB1):
     case OE_RR_Y0(TBLIDXB1):
+        tcg_gen_shri_tl(tdest, tsrca, 8);
+        tcg_gen_deposit_tl(tdest, load_gr(dc, dest), tdest, 2, 8);
+        mnemonic = "tblidxb1";
+        break;
     case OE_RR_X0(TBLIDXB2):
     case OE_RR_Y0(TBLIDXB2):
+        tcg_gen_shri_tl(tdest, tsrca, 16);
+        tcg_gen_deposit_tl(tdest, load_gr(dc, dest), tdest, 2, 8);
+        mnemonic = "tblidxb2";
+        break;
     case OE_RR_X0(TBLIDXB3):
     case OE_RR_Y0(TBLIDXB3):
+        tcg_gen_shri_tl(tdest, tsrca, 24);
+        tcg_gen_deposit_tl(tdest, load_gr(dc, dest), tdest, 2, 8);
+        mnemonic = "tblidxb3";
+        break;
     default:
         return TILEGX_EXCP_OPCODE_UNIMPLEMENTED;
     }
This page took 0.027893 seconds and 4 git commands to generate.