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