mirror of https://github.com/xqemu/xqemu.git
target-s390: Fix STIDP
The implementation had been incomplete, as we did not store the machine type. Note that the machine_type member is still unset during initialization, so this has no effect yet. Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
e30a9d3fea
commit
7f745b31b3
|
@ -133,7 +133,9 @@ typedef struct CPUS390XState {
|
||||||
|
|
||||||
/* reset does memset(0) up to here */
|
/* reset does memset(0) up to here */
|
||||||
|
|
||||||
int cpu_num;
|
uint32_t cpu_num;
|
||||||
|
uint32_t machine_type;
|
||||||
|
|
||||||
uint8_t *storage_keys;
|
uint8_t *storage_keys;
|
||||||
|
|
||||||
uint64_t tod_offset;
|
uint64_t tod_offset;
|
||||||
|
|
|
@ -3262,8 +3262,14 @@ static ExitStatus op_stctl(DisasContext *s, DisasOps *o)
|
||||||
|
|
||||||
static ExitStatus op_stidp(DisasContext *s, DisasOps *o)
|
static ExitStatus op_stidp(DisasContext *s, DisasOps *o)
|
||||||
{
|
{
|
||||||
|
TCGv_i64 t1 = tcg_temp_new_i64();
|
||||||
|
|
||||||
check_privileged(s);
|
check_privileged(s);
|
||||||
tcg_gen_ld32u_i64(o->out, cpu_env, offsetof(CPUS390XState, cpu_num));
|
tcg_gen_ld32u_i64(o->out, cpu_env, offsetof(CPUS390XState, cpu_num));
|
||||||
|
tcg_gen_ld32u_i64(t1, cpu_env, offsetof(CPUS390XState, machine_type));
|
||||||
|
tcg_gen_deposit_i64(o->out, o->out, t1, 32, 32);
|
||||||
|
tcg_temp_free_i64(t1);
|
||||||
|
|
||||||
return NO_EXIT;
|
return NO_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue