Revision 6a04d76a target-s390x/translate.c

b/target-s390x/translate.c
1329 1329
static void disas_eb(CPUS390XState *env, DisasContext *s, int op, int r1,
1330 1330
                     int r3, int b2, int d2)
1331 1331
{
1332
    TCGv_i64 tmp, tmp2;
1332
    TCGv_i64 tmp;
1333 1333
    TCGv_i32 tmp32_1, tmp32_2;
1334 1334

  
1335 1335
    LOG_DISAS("disas_eb: op 0x%x r1 %d r3 %d b2 %d d2 0x%x\n",
......
1395 1395
        tcg_temp_free_i32(tmp32_1);
1396 1396
        tcg_temp_free_i32(tmp32_2);
1397 1397
        break;
1398
    case 0x52: /* MVIY D1(B1),I2 [SIY] */
1399
        tmp = get_address(s, 0, b2, d2); /* SIY -> this is the destination */
1400
        tmp2 = tcg_const_i64((r1 << 4) | r3);
1401
        tcg_gen_qemu_st8(tmp2, tmp, get_mem_index(s));
1402
        tcg_temp_free_i64(tmp);
1403
        tcg_temp_free_i64(tmp2);
1404
        break;
1405 1398
    default:
1406 1399
        LOG_DISAS("illegal eb operation 0x%x\n", op);
1407 1400
        gen_illegal_opcode(s);
......
2240 2233
    LOG_DISAS("opc 0x%x\n", opc);
2241 2234

  
2242 2235
    switch (opc) {
2243
    case 0x92: /* MVI    D1(B1),I2        [SI] */
2244
        insn = ld_code4(env, s->pc);
2245
        tmp = decode_si(s, insn, &i2, &b1, &d1);
2246
        tmp2 = tcg_const_i64(i2);
2247
        tcg_gen_qemu_st8(tmp2, tmp, get_mem_index(s));
2248
        tcg_temp_free_i64(tmp);
2249
        tcg_temp_free_i64(tmp2);
2250
        break;
2251 2236
    case 0x94: /* NI     D1(B1),I2        [SI] */
2252 2237
    case 0x96: /* OI     D1(B1),I2        [SI] */
2253 2238
    case 0x97: /* XI     D1(B1),I2        [SI] */
......
3912 3897
    }
3913 3898
}
3914 3899

  
3900
static void wout_m1_8(DisasContext *s, DisasFields *f, DisasOps *o)
3901
{
3902
    tcg_gen_qemu_st8(o->out, o->addr1, get_mem_index(s));
3903
}
3904

  
3905
static void wout_m1_16(DisasContext *s, DisasFields *f, DisasOps *o)
3906
{
3907
    tcg_gen_qemu_st16(o->out, o->addr1, get_mem_index(s));
3908
}
3909

  
3915 3910
static void wout_m1_32(DisasContext *s, DisasFields *f, DisasOps *o)
3916 3911
{
3917 3912
    tcg_gen_qemu_st32(o->out, o->addr1, get_mem_index(s));

Also available in: Unified diff