Fix conversions from pointer to tcg_target_long
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 (suggested by Blue Swirl). These changes are needed for build environments where sizeof(long) != sizeof(void *), especially for w64. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
2caa9e9d2e
commit
4b4a72e556
@ -29,7 +29,7 @@ static void gen_icount_end(TranslationBlock *tb, int num_insns)
|
||||
if (use_icount) {
|
||||
*icount_arg = num_insns;
|
||||
gen_set_label(icount_label);
|
||||
tcg_gen_exit_tb((long)tb + 2);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -398,7 +398,7 @@ static ExitStatus gen_bdirect(DisasContext *ctx, int ra, int32_t disp)
|
||||
} else if (use_goto_tb(ctx, dest)) {
|
||||
tcg_gen_goto_tb(0);
|
||||
tcg_gen_movi_i64(cpu_pc, dest);
|
||||
tcg_gen_exit_tb((long)ctx->tb);
|
||||
tcg_gen_exit_tb((tcg_target_long)ctx->tb);
|
||||
return EXIT_GOTO_TB;
|
||||
} else {
|
||||
tcg_gen_movi_i64(cpu_pc, dest);
|
||||
@ -417,12 +417,12 @@ static ExitStatus gen_bcond_internal(DisasContext *ctx, TCGCond cond,
|
||||
|
||||
tcg_gen_goto_tb(0);
|
||||
tcg_gen_movi_i64(cpu_pc, ctx->pc);
|
||||
tcg_gen_exit_tb((long)ctx->tb);
|
||||
tcg_gen_exit_tb((tcg_target_long)ctx->tb);
|
||||
|
||||
gen_set_label(lab_true);
|
||||
tcg_gen_goto_tb(1);
|
||||
tcg_gen_movi_i64(cpu_pc, dest);
|
||||
tcg_gen_exit_tb((long)ctx->tb + 1);
|
||||
tcg_gen_exit_tb((tcg_target_long)ctx->tb + 1);
|
||||
|
||||
return EXIT_GOTO_TB;
|
||||
} else {
|
||||
|
@ -3387,7 +3387,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);
|
||||
|
@ -596,7 +596,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target_ulong dest)
|
||||
if ((tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_tl(env_pc, dest);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
tcg_gen_movi_tl(env_pc, dest);
|
||||
tcg_gen_exit_tb(0);
|
||||
|
@ -2274,7 +2274,7 @@ static inline void gen_goto_tb(DisasContext *s, int tb_num, target_ulong eip)
|
||||
/* jump to same page: we can use a direct jump */
|
||||
tcg_gen_goto_tb(tb_num);
|
||||
gen_jmp_im(eip);
|
||||
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 */
|
||||
gen_jmp_im(eip);
|
||||
|
@ -138,7 +138,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target_ulong dest)
|
||||
likely(!dc->singlestep_enabled)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_tl(cpu_pc, dest);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_pc, dest);
|
||||
if (dc->singlestep_enabled) {
|
||||
|
@ -861,7 +861,7 @@ static void gen_jmp_tb(DisasContext *s, int n, uint32_t dest)
|
||||
(s->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_i32(QREG_PC, dest);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
gen_jmp_im(s, dest);
|
||||
tcg_gen_exit_tb(0);
|
||||
|
@ -146,7 +146,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target_ulong dest)
|
||||
if ((tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_tl(cpu_SR[SR_PC], dest);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_SR[SR_PC], dest);
|
||||
tcg_gen_exit_tb(0);
|
||||
|
@ -2686,7 +2686,7 @@ static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
|
||||
likely(!ctx->singlestep_enabled)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
gen_save_pc(dest);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
gen_save_pc(dest);
|
||||
if (ctx->singlestep_enabled) {
|
||||
|
@ -3347,7 +3347,7 @@ static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
|
||||
likely(!ctx->singlestep_enabled)) {
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_tl(cpu_nip, dest & ~3);
|
||||
tcg_gen_exit_tb((long)tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_nip, dest & ~3);
|
||||
if (unlikely(ctx->singlestep_enabled)) {
|
||||
|
@ -302,7 +302,7 @@ static void gen_goto_tb(DisasContext * ctx, int n, target_ulong dest)
|
||||
/* Use a direct jump if in same page and singlestep not enabled */
|
||||
tcg_gen_goto_tb(n);
|
||||
tcg_gen_movi_i32(cpu_pc, dest);
|
||||
tcg_gen_exit_tb((long) tb + n);
|
||||
tcg_gen_exit_tb((tcg_target_long)tb + n);
|
||||
} else {
|
||||
tcg_gen_movi_i32(cpu_pc, dest);
|
||||
if (ctx->singlestep_enabled)
|
||||
|
@ -241,7 +241,7 @@ static inline void gen_goto_tb(DisasContext *s, int tb_num,
|
||||
tcg_gen_goto_tb(tb_num);
|
||||
tcg_gen_movi_tl(cpu_pc, pc);
|
||||
tcg_gen_movi_tl(cpu_npc, npc);
|
||||
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_tl(cpu_pc, pc);
|
||||
|
Loading…
Reference in New Issue
Block a user