diff mbox

[RFC,6/7] target-arm: use add_i32x4 opcode to handle vadd.i32 instruction

Message ID 75999cef5cefab2cbf100c7f2a5df9ac897ccac4.1413286807.git.batuzovk@ispras.ru
State New
Headers show

Commit Message

Kirill Batuzov Oct. 16, 2014, 8:56 a.m. UTC
Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
---
 target-arm/translate.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)
diff mbox

Patch

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 22855d8..00ea5cf 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -5239,6 +5239,18 @@  static int disas_neon_data_insn(CPUARMState * env, DisasContext *s, uint32_t ins
             return 1;
         }
 
+        /* Use vector ops to handle what we can */
+        switch (op) {
+            case NEON_3R_VADD_VSUB:
+                if (!u && size == 2) {
+                    tcg_gen_add_i32x4(cpu_Q[rd >> 1], cpu_Q[rn >> 1], cpu_Q[rm >> 1]);
+                    return 0;
+                }
+                break;
+            default:
+                break;
+        }
+
         for (pass = 0; pass < (q ? 4 : 2); pass++) {
 
         if (pairwise) {