On 4/11/15 05:28, Chen Gang wrote:
> On 4/10/15 06:19, Peter Maydell wrote:
>> On 27 March 2015 at 11:07, Chen Gang <xili_gchen_5...@hotmail.com> wrote:
>>> +}
>>> +
>>> +static void gen_cmpltui(struct DisasContext *dc,
>>> +                        uint8_t rdst, uint8_t rsrc, int8_t imm8)
>>> +{
>>> +    qemu_log_mask(CPU_LOG_TB_IN_ASM, "cmpltui r%d, r%d, %d\n",
>>> +                  rdst, rsrc, imm8);
>>> +    tcg_gen_setcondi_i64(TCG_COND_LTU, dest_gr(dc, rdst), load_gr(dc, 
>>> rsrc),
>>> +                        (uint64_t)imm8);
>>> +}
>>> +
>>> +static void gen_cmpeqi(struct DisasContext *dc,
>>> +                       uint8_t rdst, uint8_t rsrc, int8_t imm8)
>>> +{
>>> +    qemu_log_mask(CPU_LOG_TB_IN_ASM, "cmpeqi r%d, r%d, %d\n", rdst, rsrc, 
>>> imm8);
>>> +    tcg_gen_setcondi_i64(TCG_COND_EQ, dest_gr(dc, rdst), load_gr(dc, rsrc),
>>> +                        (uint64_t)imm8);
>>> +}
>>> +
>>> +static void gen_cmpne(struct DisasContext *dc,
>>> +                      uint8_t rdst, uint8_t rsrc, uint8_t rsrcb)
>>> +{
>>> +    qemu_log_mask(CPU_LOG_TB_IN_ASM, "cmpne r%d, r%d, r%d\n",
>>> +                  rdst, rsrc, rsrcb);
>>> +    tcg_gen_setcond_i64(TCG_COND_NE, dest_gr(dc, rdst), load_gr(dc, rsrc),
>>> +                        load_gr(dc, rsrcb));
>>> +}
>>> +
>>> +static void gen_cmoveqz(struct DisasContext *dc,
>>> +                        uint8_t rdst, uint8_t rsrc, uint8_t rsrcb)
>>> +{
>>> +    qemu_log_mask(CPU_LOG_TB_IN_ASM, "cmoveqz r%d, r%d, r%d\n",
>>> +                  rdst, rsrc, rsrcb);
>>> +    tcg_gen_movcond_i64(TCG_COND_EQ, dest_gr(dc, rdst), load_gr(dc, rsrc),
>>> +                        load_zero(dc), load_gr(dc, rsrcb), load_gr(dc, 
>>> rdst));
>>> +}
>>> +
>>> +static void gen_cmovnez(struct DisasContext *dc,
>>> +                        uint8_t rdst, uint8_t rsrc, uint8_t rsrcb)
>>> +{
>>> +    qemu_log_mask(CPU_LOG_TB_IN_ASM, "cmovnez r%d, r%d, r%d\n",
>>> +                  rdst, rsrc, rsrcb);
>>> +    tcg_gen_movcond_i64(TCG_COND_NE, dest_gr(dc, rdst), load_gr(dc, rsrc),
>>> +                        load_zero(dc), load_gr(dc, rsrcb), load_gr(dc, 
>>> rdst));
>>> +}
>>
>> This is hugely repetitive. Write a common function that takes a
>> TCG_COND_* as a parameter.
>>
> OK, thanks.
> 

Oh, after check again, for me, the original implementation is OK:

 - We need print disassembly code for tracing, and all related functions
   are meaningful and match the whole function naming way in this file.

 - All related functions are too simple to simplified (only 2 lines each).


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

Reply via email to