[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 07/16] tcg-ppc64: DefineTCG_TARGET_INSN_UNIT_
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v3 07/16] tcg-ppc64: DefineTCG_TARGET_INSN_UNIT_SIZEE |
Date: |
Tue, 29 Apr 2014 12:25:16 +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.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> tcg/ppc64/tcg-target.c | 164
> ++++++++++++++++++++++++-------------------------
> tcg/ppc64/tcg-target.h | 1 +
> 2 files changed, 81 insertions(+), 84 deletions(-)
>
> diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c
> index 45b1c06..4a0b7db 100644
> --- a/tcg/ppc64/tcg-target.c
> +++ b/tcg/ppc64/tcg-target.c
> @@ -31,7 +31,7 @@
> #define TCG_CT_CONST_ZERO 0x1000
> #define TCG_CT_CONST_MONE 0x2000
>
> -static uint8_t *tb_ret_addr;
> +static tcg_insn_unit *tb_ret_addr;
>
> #if TARGET_LONG_BITS == 32
> #define LD_ADDR LWZ
> @@ -168,61 +168,54 @@ static inline bool in_range_b(tcg_target_long target)
> return target == sextract64(target, 0, 26);
> }
>
> -static uint32_t reloc_pc24_val(void *pc, tcg_target_long target)
> +static uint32_t reloc_pc24_val(tcg_insn_unit *pc, tcg_insn_unit *target)
> {
> - tcg_target_long disp;
> -
> - disp = target - (tcg_target_long)pc;
> + ptrdiff_t disp = tcg_ptr_byte_diff(target, pc);
> assert(in_range_b(disp));
> -
> return disp & 0x3fffffc;
> }
>
> -static void reloc_pc24(void *pc, tcg_target_long target)
> +static void reloc_pc24(tcg_insn_unit *pc, tcg_insn_unit *target)
> {
> - *(uint32_t *)pc = (*(uint32_t *)pc & ~0x3fffffc)
> - | reloc_pc24_val(pc, target);
> + *pc = (*pc & ~0x3fffffc) | reloc_pc24_val(pc, target);
> }
Should 0x3fffffc be a #define'd mask? Can the PC ever actually be
non-word aligned?
Otherwise:
Reviewed-by: Alex Bennée <address@hidden>
--
Alex Bennée
- Re: [Qemu-devel] [PATCH v3 05/16] tcg: Define tcg_insn_unit for codepointerss, (continued)
[Qemu-devel] [PATCH v3 09/16] tcg-sparc: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/04/28
[Qemu-devel] [PATCH v3 10/16] tcg-arm: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/04/28
[Qemu-devel] [PATCH v3 11/16] tcg-aarch64: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/04/28
[Qemu-devel] [PATCH v3 13/16] tcg-ia64: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/04/28
[Qemu-devel] [PATCH v3 12/16] tcg-s390: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/04/28