translate.c (4448a83606b5861cfa11528c0395868fc2b0e99e) translate.c (e1933d1435d1d0ace7c93bdc429f7e4f0c499e92)
1/*
2 * SH4 translation
3 *
4 * Copyright (c) 2005 Samuel Tardieu
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 206 unchanged lines hidden (view full) ---

215static inline void gen_save_cpu_state(DisasContext *ctx, bool save_pc)
216{
217 if (save_pc) {
218 tcg_gen_movi_i32(cpu_pc, ctx->pc);
219 }
220 if (ctx->delayed_pc != (uint32_t) -1) {
221 tcg_gen_movi_i32(cpu_delayed_pc, ctx->delayed_pc);
222 }
1/*
2 * SH4 translation
3 *
4 * Copyright (c) 2005 Samuel Tardieu
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 206 unchanged lines hidden (view full) ---

215static inline void gen_save_cpu_state(DisasContext *ctx, bool save_pc)
216{
217 if (save_pc) {
218 tcg_gen_movi_i32(cpu_pc, ctx->pc);
219 }
220 if (ctx->delayed_pc != (uint32_t) -1) {
221 tcg_gen_movi_i32(cpu_delayed_pc, ctx->delayed_pc);
222 }
223 if ((ctx->tbflags & DELAY_SLOT_MASK) != ctx->envflags) {
223 if ((ctx->tbflags & TB_FLAG_ENVFLAGS_MASK) != ctx->envflags) {
224 tcg_gen_movi_i32(cpu_flags, ctx->envflags);
225 }
226}
227
228static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest)
229{
230 if (unlikely(ctx->singlestep_enabled)) {
231 return false;

--- 1582 unchanged lines hidden (view full) ---

1814 DisasContext ctx;
1815 target_ulong pc_start;
1816 int num_insns;
1817 int max_insns;
1818
1819 pc_start = tb->pc;
1820 ctx.pc = pc_start;
1821 ctx.tbflags = (uint32_t)tb->flags;
224 tcg_gen_movi_i32(cpu_flags, ctx->envflags);
225 }
226}
227
228static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest)
229{
230 if (unlikely(ctx->singlestep_enabled)) {
231 return false;

--- 1582 unchanged lines hidden (view full) ---

1814 DisasContext ctx;
1815 target_ulong pc_start;
1816 int num_insns;
1817 int max_insns;
1818
1819 pc_start = tb->pc;
1820 ctx.pc = pc_start;
1821 ctx.tbflags = (uint32_t)tb->flags;
1822 ctx.envflags = tb->flags & DELAY_SLOT_MASK;
1822 ctx.envflags = tb->flags & TB_FLAG_ENVFLAGS_MASK;
1823 ctx.bstate = BS_NONE;
1824 ctx.memidx = (ctx.tbflags & (1u << SR_MD)) == 0 ? 1 : 0;
1825 /* We don't know if the delayed pc came from a dynamic or static branch,
1826 so assume it is a dynamic branch. */
1827 ctx.delayed_pc = -1; /* use delayed pc from env pointer */
1828 ctx.tb = tb;
1829 ctx.singlestep_enabled = cs->singlestep_enabled;
1830 ctx.features = env->features;

--- 98 unchanged lines hidden ---
1823 ctx.bstate = BS_NONE;
1824 ctx.memidx = (ctx.tbflags & (1u << SR_MD)) == 0 ? 1 : 0;
1825 /* We don't know if the delayed pc came from a dynamic or static branch,
1826 so assume it is a dynamic branch. */
1827 ctx.delayed_pc = -1; /* use delayed pc from env pointer */
1828 ctx.tb = tb;
1829 ctx.singlestep_enabled = cs->singlestep_enabled;
1830 ctx.features = env->features;

--- 98 unchanged lines hidden ---