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 */
|
||||
|
||||
int cpu_num;
|
||||
uint32_t cpu_num;
|
||||
uint32_t machine_type;
|
||||
|
||||
uint8_t *storage_keys;
|
||||
|
||||
uint64_t tod_offset;
|
||||
|
@ -3262,8 +3262,14 @@ static ExitStatus op_stctl(DisasContext *s, DisasOps *o)
|
||||
|
||||
static ExitStatus op_stidp(DisasContext *s, DisasOps *o)
|
||||
{
|
||||
TCGv_i64 t1 = tcg_temp_new_i64();
|
||||
|
||||
check_privileged(s);
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user