[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."
- [Qemu-devel] [PATCH 25/52] target-m68k: Optimize gen_flush_flags, (continued)
- [Qemu-devel] [PATCH 25/52] target-m68k: Optimize gen_flush_flags, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 26/52] target-m68k: Inline shifts, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 27/52] target-m68k: Inline addx, subx, negx, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 28/52] target-m68k: add addx/subx/negx ops, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 29/52] target-m68k: factorize flags computing, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 30/52] target-m68k: add scc/dbcc, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 31/52] target-m68k: some bit ops cleanup, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 32/52] target-m68k: bitfield ops, Laurent Vivier, 2016/05/04
- [Qemu-devel] [PATCH 33/52] target-m68k: inline divu/divs, Laurent Vivier, 2016/05/04