]> Git Repo - qemu.git/commitdiff
Add lxvd2x
authorTom Musta <[email protected]>
Tue, 22 Oct 2013 11:08:32 +0000 (22:08 +1100)
committerAlexander Graf <[email protected]>
Fri, 20 Dec 2013 00:57:50 +0000 (01:57 +0100)
This patch adds the lxvd2x instruction.

Signed-off-by: Tom Musta <[email protected]>
Signed-off-by: Anton Blanchard <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
target-ppc/translate.c

index 269fdad6b2797874dfbccec9b3bcf20709cbea02..f00b6062646bf8e2a002cabaeb2ab8ce5c27ea1c 100644 (file)
@@ -7003,6 +7003,22 @@ static inline TCGv_i64 cpu_vsrl(int n)
     }
 }
 
+static void gen_lxvd2x(DisasContext *ctx)
+{
+    TCGv EA;
+    if (unlikely(!ctx->vsx_enabled)) {
+        gen_exception(ctx, POWERPC_EXCP_VSXU);
+        return;
+    }
+    gen_set_access_type(ctx, ACCESS_INT);
+    EA = tcg_temp_new();
+    gen_addr_reg_index(ctx, EA);
+    gen_qemu_ld64(ctx, cpu_vsrh(xT(ctx->opcode)), EA);
+    tcg_gen_addi_tl(EA, EA, 8);
+    gen_qemu_ld64(ctx, cpu_vsrl(xT(ctx->opcode)), EA);
+    tcg_temp_free(EA);
+}
+
 /***                           SPE extension                               ***/
 /* Register moves */
 
@@ -9452,6 +9468,8 @@ GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20),
 GEN_VAFORM_PAIRED(vsel, vperm, 21),
 GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23),
 
+GEN_HANDLER_E(lxvd2x, 0x1F, 0x0C, 0x1A, 0, PPC_NONE, PPC2_VSX),
+
 #undef GEN_SPE
 #define GEN_SPE(name0, name1, opc2, opc3, inval0, inval1, type) \
     GEN_OPCODE_DUAL(name0##_##name1, 0x04, opc2, opc3, inval0, inval1, type, PPC_NONE)
This page took 0.045305 seconds and 4 git commands to generate.