|
From: | LIU Zhiwei |
Subject: | Re: [PATCH v2 04/37] target/riscv: 8-bit Addition & Subtraction Instruction |
Date: | Fri, 11 Jun 2021 12:36:40 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 6/11/21 3:39 AM, Richard Henderson wrote:
On 6/10/21 12:58 AM, LIU Zhiwei wrote:include/tcg/tcg-op-gvec.h | 6 ++ tcg/tcg-op-gvec.c | 47 ++++++++++++++++Likewise, should be split from the larger patch.
OK
+static void gen_addv_mask_i32(TCGv_i32 d, TCGv_i32 a, TCGv_i32 b, TCGv_i32 m)+{ + TCGv_i32 t1 = tcg_temp_new_i32(); + TCGv_i32 t2 = tcg_temp_new_i32(); + TCGv_i32 t3 = tcg_temp_new_i32(); + + tcg_gen_andc_i32(t1, a, m); + tcg_gen_andc_i32(t2, b, m); + tcg_gen_xor_i32(t3, a, b); + tcg_gen_add_i32(d, t1, t2); + tcg_gen_and_i32(t3, t3, m); + tcg_gen_xor_i32(d, d, t3); + + tcg_temp_free_i32(t1); + tcg_temp_free_i32(t2); + tcg_temp_free_i32(t3); +} + +void tcg_gen_vec_add8_i32(TCGv_i32 d, TCGv_i32 a, TCGv_i32 b) +{ + TCGv_i32 m = tcg_constant_i32((int32_t)dup_const(MO_8, 0x80)); + gen_addv_mask_i32(d, a, b, m); +}There will only ever be one use; we might as well merge them. The cast is unnecessary.
A little puzzling. Should I still split it? Zhiwei
r~
[Prev in Thread] | Current Thread | [Next in Thread] |