From eae07f4767b1d382bd2a5bcea78e5116309e8655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Vilanova?= Date: Tue, 20 Feb 2018 23:09:02 -0500 Subject: [PATCH] tcg: Move definition of type TCGv The target-dependant type TCGv must be defined in "tcg/tcg.h" before including the tracing helper wrappers in "tcg/tcg-op.h". It also makes more sense to define it here, where other TCG types are defined too. Backports commit 5d4e1a1081d3f1ec2908ff0eaebe312389971ab4 from qemu --- qemu/tcg/tcg-op.h | 2 -- qemu/tcg/tcg.h | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/qemu/tcg/tcg-op.h b/qemu/tcg/tcg-op.h index a162edc3..def0b44f 100644 --- a/qemu/tcg/tcg-op.h +++ b/qemu/tcg/tcg-op.h @@ -756,7 +756,6 @@ static inline void tcg_gen_exit_tb(TCGContext *s, uintptr_t val) void tcg_gen_goto_tb(TCGContext *s, unsigned idx); #if TARGET_LONG_BITS == 32 -#define TCGv TCGv_i32 #define tcg_temp_new(s) tcg_temp_new_i32(s) #define tcg_global_reg_new tcg_global_reg_new_i32 #define tcg_global_mem_new tcg_global_mem_new_i32 @@ -768,7 +767,6 @@ void tcg_gen_goto_tb(TCGContext *s, unsigned idx); #define tcg_gen_qemu_ld_tl tcg_gen_qemu_ld_i32 #define tcg_gen_qemu_st_tl tcg_gen_qemu_st_i32 #else -#define TCGv TCGv_i64 #define tcg_temp_new(s) tcg_temp_new_i64(s) #define tcg_global_reg_new tcg_global_reg_new_i64 #define tcg_global_mem_new tcg_global_mem_new_i64 diff --git a/qemu/tcg/tcg.h b/qemu/tcg/tcg.h index 71cd0840..72c5ba03 100644 --- a/qemu/tcg/tcg.h +++ b/qemu/tcg/tcg.h @@ -312,6 +312,13 @@ typedef struct TCGv_i32_d *TCGv_i32; typedef struct TCGv_i64_d *TCGv_i64; typedef struct TCGv_ptr_d *TCGv_ptr; typedef TCGv_ptr TCGv_env; +#if TARGET_LONG_BITS == 32 +#define TCGv TCGv_i32 +#elif TARGET_LONG_BITS == 64 +#define TCGv TCGv_i64 +#else +#error Unhandled TARGET_LONG_BITS value +#endif static inline TCGv_i32 QEMU_ARTIFICIAL MAKE_TCGV_I32(intptr_t i) {