qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 06/16] tcg-i386: DefineTCG_TARGET_INSN_UNIT_S


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH v3 06/16] tcg-i386: DefineTCG_TARGET_INSN_UNIT_SIZEE
Date: Tue, 29 Apr 2014 12:12:34 +0100
User-agent: mu4e 0.9.9.6pre3; emacs 24.3.90.6

Richard Henderson <address@hidden> writes:

> And use tcg pointer differencing functions as appropriate.
>
> Reviewed-by: Peter Maydell <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
<snip>
>  
> -static void tcg_out_branch(TCGContext *s, int call, uintptr_t dest)
> +static void tcg_out_branch(TCGContext *s, int call, tcg_insn_unit *dest)
>  {
> -    intptr_t disp = dest - (intptr_t)s->code_ptr - 5;
> +    intptr_t disp = tcg_pcrel_diff(s, dest) - 5;
>  
>      if (disp == (int32_t)disp) {
>          tcg_out_opc(s, call ? OPC_CALL_Jz : OPC_JMP_long, 0, 0, 0);
>          tcg_out32(s, disp);
>      } else {
> -        tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_R10, dest);
> +        tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_R10, (uintptr_t)dest);
>          tcg_out_modrm(s, OPC_GRP5,
>                        call ? EXT5_CALLN_Ev : EXT5_JMPN_Ev, TCG_REG_R10);
>      }
>  }

I'm a little unclear on where the -5 came from? Is this a relative
address based on where we will be after we've emitted the code?

<snip>

Otherwise:

Reviewed-by: Alex Bennée <address@hidden>


-- 
Alex Bennée




reply via email to

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