[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 08/28] target-xtensa: implement conditional jumps
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [RFC 08/28] target-xtensa: implement conditional jumps |
Date: |
Wed, 04 May 2011 08:45:30 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Thunderbird/3.1.10 |
On 05/03/2011 05:59 PM, Max Filippov wrote:
> + int label = gen_new_label();
> + int inv = BRI12_M & 1;
> +
> + switch (BRI12_M & 2) {
> + case 0: /*BEQZ*/
> + tcg_gen_brcondi_i32(inv ? TCG_COND_EQ : TCG_COND_NE,
> + cpu_R[BRI12_S], 0, label);
> + break;
> +
> + case 2: /*BLTZ*/
> + tcg_gen_brcondi_i32(inv ? TCG_COND_LT : TCG_COND_GE,
> + cpu_R[BRI12_S], 0, label);
> + break;
> + }
> + gen_jumpi(dc, dc->pc + 4 + BRI12_IMM12_SE);
> + gen_set_label(label);
> + gen_jumpi(dc, dc->pc + 3);
It seems to me that this code could be cleaned up by extracting
the branching and jumpi'ing into a function. There's a lot of
repetition here.
Also, once you do get around to using chained TB's, there'll be
only one place to have to update to get that to happen.
r~
- [Qemu-devel] [RFC 01/28] target-xtensa: add target stubs, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 02/28] target-xtensa: add target to the configure script, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 03/28] target-xtensa: implement disas_xtensa_insn, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 04/28] target-xtensa: implement narrow instructions, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 05/28] target-xtensa: implement RT0 group, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 06/28] target-xtensa: add sample board, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 07/28] target-xtensa: add gdb support, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 08/28] target-xtensa: implement conditional jumps, Max Filippov, 2011/05/03
- Re: [Qemu-devel] [RFC 08/28] target-xtensa: implement conditional jumps,
Richard Henderson <=
- [Qemu-devel] [RFC 09/28] target-xtensa: implement JX/RET0/CALLX, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 10/28] target-xtensa: add special and user registers, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 11/28] target-xtensa: implement RST3 group, Max Filippov, 2011/05/03
- [Qemu-devel] [RFC 12/28] target-xtensa: implement shifts (ST1 and RST1 groups), Max Filippov, 2011/05/03
[Qemu-devel] [RFC 13/28] target-xtensa: implement LSAI group, Max Filippov, 2011/05/03