Message ID | 75999cef5cefab2cbf100c7f2a5df9ac897ccac4.1413286807.git.batuzovk@ispras.ru |
---|---|
State | New |
Headers | show |
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) {
Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru> --- target-arm/translate.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)