diff mbox

[1/3] Fix conversions from pointer to tcg_target_long

Message ID 1310758694-6360-2-git-send-email-weil@mail.berlios.de
State Accepted
Headers show

Commit Message

Stefan Weil July 15, 2011, 7:38 p.m. UTC
tcg_gen_exit_tb takes a parameter of type tcg_target_long,
so the type casts of pointer to long should be replaced by
type casts of pointer to tcg_target_long.

These changes are needed for build environments where
sizeof(long) != sizeof(void *), especially for w64.

See 4b4a72e55660abf7efe85aca78762dcfea5519ad which fixed the
same issue for the other targets.

Cc: Alexander Graf <agraf@suse.de>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 target-s390x/translate.c     |    2 +-
 target-unicore32/translate.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Guan Xuetao July 18, 2011, 3:19 a.m. UTC | #1
It's good for unicore32 bit.

Acked-by: Guan Xuetao<gxt@mprc.pku.edu.cn>

Thanks & Regards.

Guan Xuetao

On Fri, 2011-07-15 at 21:38 +0200, Stefan Weil wrote:
> tcg_gen_exit_tb takes a parameter of type tcg_target_long,
> so the type casts of pointer to long should be replaced by
> type casts of pointer to tcg_target_long.
> 
> These changes are needed for build environments where
> sizeof(long) != sizeof(void *), especially for w64.
> 
> See 4b4a72e55660abf7efe85aca78762dcfea5519ad which fixed the
> same issue for the other targets.
> 
> Cc: Alexander Graf <agraf@suse.de>
> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
>  target-s390x/translate.c     |    2 +-
>  target-unicore32/translate.c |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/target-s390x/translate.c b/target-s390x/translate.c
> index 77fb448..6a22fde 100644
> --- a/target-s390x/translate.c
> +++ b/target-s390x/translate.c
> @@ -830,7 +830,7 @@ static inline void gen_goto_tb(DisasContext *s, int tb_num, target_ulong pc)
>          /* jump to same page: we can use a direct jump */
>          tcg_gen_goto_tb(tb_num);
>          tcg_gen_movi_i64(psw_addr, pc);
> -        tcg_gen_exit_tb((long)tb + tb_num);
> +        tcg_gen_exit_tb((tcg_target_long)tb + tb_num);
>      } else {
>          /* jump to another page: currently not optimized */
>          tcg_gen_movi_i64(psw_addr, pc);
> diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c
> index a15e42d..4ecb0f1 100644
> --- a/target-unicore32/translate.c
> +++ b/target-unicore32/translate.c
> @@ -1056,7 +1056,7 @@ static inline void gen_goto_tb(DisasContext *s, int n, uint32_t dest)
>      if ((tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK)) {
>          tcg_gen_goto_tb(n);
>          gen_set_pc_im(dest);
> -        tcg_gen_exit_tb((long)tb + n);
> +        tcg_gen_exit_tb((tcg_target_long)tb + n);
>      } else {
>          gen_set_pc_im(dest);
>          tcg_gen_exit_tb(0);
Alexander Graf July 18, 2011, 7:39 a.m. UTC | #2
On 15.07.2011, at 21:38, Stefan Weil wrote:

> tcg_gen_exit_tb takes a parameter of type tcg_target_long,
> so the type casts of pointer to long should be replaced by
> type casts of pointer to tcg_target_long.
> 
> These changes are needed for build environments where
> sizeof(long) != sizeof(void *), especially for w64.
> 
> See 4b4a72e55660abf7efe85aca78762dcfea5519ad which fixed the
> same issue for the other targets.

Changes the code to be aligned with the i386 target, so I'm in favor.

Acked-by: Alexander Graf <agraf@suse.de>


Alex
diff mbox

Patch

diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index 77fb448..6a22fde 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -830,7 +830,7 @@  static inline void gen_goto_tb(DisasContext *s, int tb_num, target_ulong pc)
         /* jump to same page: we can use a direct jump */
         tcg_gen_goto_tb(tb_num);
         tcg_gen_movi_i64(psw_addr, pc);
-        tcg_gen_exit_tb((long)tb + tb_num);
+        tcg_gen_exit_tb((tcg_target_long)tb + tb_num);
     } else {
         /* jump to another page: currently not optimized */
         tcg_gen_movi_i64(psw_addr, pc);
diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c
index a15e42d..4ecb0f1 100644
--- a/target-unicore32/translate.c
+++ b/target-unicore32/translate.c
@@ -1056,7 +1056,7 @@  static inline void gen_goto_tb(DisasContext *s, int n, uint32_t dest)
     if ((tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK)) {
         tcg_gen_goto_tb(n);
         gen_set_pc_im(dest);
-        tcg_gen_exit_tb((long)tb + n);
+        tcg_gen_exit_tb((tcg_target_long)tb + n);
     } else {
         gen_set_pc_im(dest);
         tcg_gen_exit_tb(0);