qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [6154] Add GEN_VXFORM macro for subsequent instructions.


From: Aurelien Jarno
Subject: [Qemu-devel] [6154] Add GEN_VXFORM macro for subsequent instructions.
Date: Sat, 03 Jan 2009 13:31:30 +0000

Revision: 6154
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6154
Author:   aurel32
Date:     2009-01-03 13:31:30 +0000 (Sat, 03 Jan 2009)

Log Message:
-----------
Add GEN_VXFORM macro for subsequent instructions.

Signed-off-by: Nathan Froyd <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>

Modified Paths:
--------------
    trunk/target-ppc/translate.c

Modified: trunk/target-ppc/translate.c
===================================================================
--- trunk/target-ppc/translate.c        2009-01-03 13:31:19 UTC (rev 6153)
+++ trunk/target-ppc/translate.c        2009-01-03 13:31:30 UTC (rev 6154)
@@ -6164,6 +6164,23 @@
 GEN_VX_LOGICAL(vxor, tcg_gen_xor_i64, 2, 19);
 GEN_VX_LOGICAL(vnor, tcg_gen_nor_i64, 2, 20);
 
+#define GEN_VXFORM(name, opc2, opc3)                                    \
+GEN_HANDLER(name, 0x04, opc2, opc3, 0x00000000, PPC_ALTIVEC)            \
+{                                                                       \
+    TCGv_ptr ra, rb, rd;                                                \
+    if (unlikely(!ctx->altivec_enabled)) {                              \
+        gen_exception(ctx, POWERPC_EXCP_VPU);                           \
+        return;                                                         \
+    }                                                                   \
+    ra = gen_avr_ptr(rA(ctx->opcode));                                  \
+    rb = gen_avr_ptr(rB(ctx->opcode));                                  \
+    rd = gen_avr_ptr(rD(ctx->opcode));                                  \
+    gen_helper_##name (rd, ra, rb);                                     \
+    tcg_temp_free_ptr(ra);                                              \
+    tcg_temp_free_ptr(rb);                                              \
+    tcg_temp_free_ptr(rd);                                              \
+}
+
 /***                           SPE extension                               ***/
 /* Register moves */
 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]