[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 10/10] tcg-mips: Adjust qemu_ld/st for mips64
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH v4 10/10] tcg-mips: Adjust qemu_ld/st for mips64 |
Date: |
Wed, 30 Nov 2016 18:59:57 +0100 |
User-agent: |
NeoMutt/20161104 (1.7.1) |
On 2016-11-30 09:42, Richard Henderson wrote:
> On 11/30/2016 09:22 AM, Aurelien Jarno wrote:
> > On 2016-11-29 14:07, Jin Guojie wrote:
> >> @@ -1312,7 +1340,12 @@ static void tcg_out_qemu_ld_slow_path(TCGContext
> >> *s, TCGLabelQemuLdst *l)
> >> reloc_pc16(s->code_ptr, l->raddr);
> >> tcg_out_opc_br(s, OPC_BEQ, TCG_REG_ZERO, TCG_REG_ZERO);
> >> /* delay slot */
> >> - tcg_out_mov(s, TCG_TYPE_REG, v0, TCG_REG_V0);
> >> + if (TCG_TARGET_REG_BITS == 64 && l->type == TCG_TYPE_I32) {
> >> + /* we always sign-extend 32-bit loads */
> >> + tcg_out_opc_sa(s, OPC_SLL, v0, TCG_REG_V0, 0);
> >> + } else {
> >> + tcg_out_opc_reg(s, OPC_OR, v0, TCG_REG_V0, TCG_REG_ZERO);
> >> + }
> >
> > While thoses are equivalent, I think it would be clearer to keep the
> > original version for the else case (ie tcg_out_mov) instead of replacing
> > it by a OR instruction.
>
> Did we exclude v0 from the registers that can be used?
> Otherwise we do need to ensure that some insn gets placed in the delay slot.
Hmm, that's a good point. Also note that the original code didn't check
about that, so it was probably not working in some cases. I guess we can
therefore leave the code like that for now.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH v4 04/10] tcg-mips: Add bswap32u and bswap64, (continued)
- [Qemu-devel] [PATCH v4 04/10] tcg-mips: Add bswap32u and bswap64, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 09/10] tcg-mips: Adjust calling conventions for mips64, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 06/10] tcg-mips: Adjust load/store functions for mips64, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 08/10] tcg-mips: Add tcg unwind info, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 07/10] tcg-mips: Adjust prologue for mips64, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 01/10] tcg-mips: Move bswap code to a subroutine, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 03/10] tcg-mips: Support 64-bit opcodes, Jin Guojie, 2016/11/29
- [Qemu-devel] [PATCH v4 10/10] tcg-mips: Adjust qemu_ld/st for mips64, Jin Guojie, 2016/11/29
- Re: [Qemu-devel] [PATCH v4 00/10] tcg mips64 and mips r6 improvements, no-reply, 2016/11/29
- Re: [Qemu-devel] [PATCH v4 00/10] tcg mips64 and mips r6 improvements, Jin Guojie, 2016/11/30