mirror of https://gitee.com/openkylin/qemu.git
s390/kvm: do not reset riccb on initial cpu reset
The riccb is kept unchanged during initial cpu reset. Move the data structure to the other registers that are unchanged. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
5eb74557cd
commit
cb4f4bc353
|
@ -92,9 +92,10 @@ static void s390_cpu_initial_reset(CPUState *s)
|
|||
int i;
|
||||
|
||||
s390_cpu_reset(s);
|
||||
/* initial reset does not touch regs,fregs and aregs */
|
||||
memset(&env->fpc, 0, offsetof(CPUS390XState, end_reset_fields) -
|
||||
offsetof(CPUS390XState, fpc));
|
||||
/* initial reset does not clear everything! */
|
||||
memset(&env->start_initial_reset_fields, 0,
|
||||
offsetof(CPUS390XState, end_reset_fields) -
|
||||
offsetof(CPUS390XState, start_initial_reset_fields));
|
||||
|
||||
/* architectured initial values for CR 0 and 14 */
|
||||
env->cregs[0] = CR0_RESET;
|
||||
|
|
|
@ -88,6 +88,10 @@ typedef struct CPUS390XState {
|
|||
*/
|
||||
CPU_DoubleU vregs[32][2]; /* vector registers */
|
||||
uint32_t aregs[16]; /* access registers */
|
||||
uint8_t riccb[64]; /* runtime instrumentation control */
|
||||
|
||||
/* Fields up to this point are not cleared by initial CPU reset */
|
||||
struct {} start_initial_reset_fields;
|
||||
|
||||
uint32_t fpc; /* floating-point control register */
|
||||
uint32_t cc_op;
|
||||
|
@ -137,8 +141,6 @@ typedef struct CPUS390XState {
|
|||
uint64_t gbea;
|
||||
uint64_t pp;
|
||||
|
||||
uint8_t riccb[64];
|
||||
|
||||
/* Fields up to this point are cleared by a CPU reset */
|
||||
struct {} end_reset_fields;
|
||||
|
||||
|
|
Loading…
Reference in New Issue