qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 30/52] target-m68k: add scc/dbcc


From: Andreas Schwab
Subject: Re: [Qemu-devel] [PATCH 30/52] target-m68k: add scc/dbcc
Date: Fri, 06 May 2016 19:44:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux)

Richard Henderson <address@hidden> writes:

> On 05/04/2016 10:12 AM, Laurent Vivier wrote:
>> +    DEST_EA(env, insn, OS_BYTE, dest, NULL);
>> +    tcg_temp_free(dest);
>> +}
>> +
>> +DISAS_INSN(dbcc)
>> +{
>> +    TCGLabel *l1;
>> +    TCGv reg;
>> +    TCGv tmp;
>> +    int16_t offset;
>> +    uint32_t base;
>> +
>> +    reg = DREG(insn, 0);
>> +    base = s->pc;
>> +    offset = (int16_t)read_im16(env, s);
>> +    l1 = gen_new_label();
>> +    gen_jmpcc(s, (insn >> 8) & 0xf, l1);
>> +
>> +    tmp = tcg_temp_new();
>> +    tcg_gen_ext16s_i32(tmp, reg);
>> +    tcg_gen_addi_i32(tmp, tmp, -1);
>> +    gen_partset_reg(OS_WORD, reg, tmp);
>> +    tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, -1, l1);
>> +    update_cc_op(s);
>> +    gen_jmp_tb(s, 1, base + offset);
>> +    gen_set_label(l1);
>> +    update_cc_op(s);
>> +    gen_jmp_tb(s, 0, s->pc);
>
> Pull the update_cc_op up to the top, so as to only generate one copy.

This misses a followup patch which moves it into gen_jmpcc.  In the
current form this would result in a mistranslation.

Andreas.

-- 
Andreas Schwab, address@hidden
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



reply via email to

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