Revision 7c60cc4b target-sparc/op_helper.c

b/target-sparc/op_helper.c
2189 2189
#define ADDR(x) (x)
2190 2190
#endif
2191 2191

  
2192
#ifdef __i386__
2193
void helper_std_i386(target_ulong addr, int mem_idx)
2194
{
2195
    uint64_t tmp = ((uint64_t)env->t1 << 32) | (uint64_t)(env->t2 & 0xffffffff);
2196

  
2197
#if !defined(CONFIG_USER_ONLY)
2198
    switch (mem_idx) {
2199
    case 0:
2200
        stq_user(ADDR(addr), tmp);
2201
        break;
2202
    case 1:
2203
        stq_kernel(ADDR(addr), tmp);
2204
        break;
2205
#ifdef TARGET_SPARC64
2206
    case 2:
2207
        stq_hypv(ADDR(addr), tmp);
2208
        break;
2209
#endif
2210
    default:
2211
        break;
2212
    }
2213
#else
2214
    stq_raw(ADDR(addr), tmp);
2215
#endif
2216
}
2217
#endif /* __i386__ */
2218

  
2219 2192
void helper_stdf(target_ulong addr, int mem_idx)
2220 2193
{
2221 2194
#if !defined(CONFIG_USER_ONLY)
......
2894 2867
            if (tb) {
2895 2868
                /* the PC is inside the translated code. It means that we have
2896 2869
                   a virtual CPU fault */
2897
                cpu_restore_state(tb, env, pc, (void *)T2);
2870
                cpu_restore_state(tb, env, pc, (void *)env->cond);
2898 2871
            }
2899 2872
        }
2900 2873
        cpu_loop_exit();

Also available in: Unified diff