[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 07/18] tcg/i386: Implement field extraction o
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 07/18] tcg/i386: Implement field extraction opcodes |
Date: |
Tue, 25 Oct 2016 14:46:57 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
On 18/10/2016 17:10, Richard Henderson wrote:
> + case INDEX_op_extract_i32:
> + /* On the off-chance that we can use the high-byte registers.
> + Otherwise we emit the same ext16 + shift pattern that we
> + would have gotten from the normal tcg-op.c expansion. */
> + tcg_debug_assert(args[2] == 8 && args[3] == 8);
> + if (args[1] < 4 && args[0] < 8) {
> + tcg_out_modrm(s, OPC_MOVZBL, args[0], args[1] + 4);
> + } else {
> + tcg_out_ext16u(s, args[0], args[1]);
> + tcg_out_shifti(s, SHIFT_SHR, args[0], 8);
> + }
Since the opcode is pretty rare, perhaps it's worth restricting the
constraints to, respectively, a new constraint for 0xff ("R"?) and "Q"?
It should generate slightly better code without constraining the
register allocator too much.
Paolo
- [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 05/18] tcg/arm: Move isa detection to tcg-target.h, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 04/18] tcg/aarch64: Implement field extraction opcodes, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 01/18] tcg: Add field extraction primitives, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 09/18] tcg/ppc: Implement field extraction opcodes, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 06/18] tcg/arm: Implement field extraction opcodes, Richard Henderson, 2016/10/18
- [Qemu-devel] [PATCH v2 10/18] tcg/s390: Expose host facilities to tcg-target.h, Richard Henderson, 2016/10/18