ia64/xen-unstable

changeset 5816:a64dae7a0344

Add emulation to rsm.be, which is first encounted in guest fast syscall
path, where little endian is forced just after epc.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
author fred@localhost.localdomain
date Thu Jul 28 01:26:30 2005 -0800 (2005-07-28)
parents 40bddfe9e390
children 8fc64b82dd35
files xen/arch/ia64/vcpu.c
line diff
     1.1 --- a/xen/arch/ia64/vcpu.c	Thu Jul 28 00:57:06 2005 -0800
     1.2 +++ b/xen/arch/ia64/vcpu.c	Thu Jul 28 01:26:30 2005 -0800
     1.3 @@ -155,7 +155,7 @@ IA64FAULT vcpu_reset_psr_sm(VCPU *vcpu, 
     1.4  	// interrupt collection flag
     1.5  	//if (imm.ic) PSCB(vcpu,interrupt_delivery_enabled) = 0;
     1.6  	// just handle psr.up and psr.pp for now
     1.7 -	if (imm24 & ~(IA64_PSR_PP | IA64_PSR_UP | IA64_PSR_SP
     1.8 +	if (imm24 & ~(IA64_PSR_BE | IA64_PSR_PP | IA64_PSR_UP | IA64_PSR_SP
     1.9  		| IA64_PSR_I | IA64_PSR_IC | IA64_PSR_DT
    1.10  		| IA64_PSR_DFL | IA64_PSR_DFH))
    1.11  			return (IA64_ILLOP_FAULT);
    1.12 @@ -164,6 +164,7 @@ IA64FAULT vcpu_reset_psr_sm(VCPU *vcpu, 
    1.13  	if (imm.pp) { ipsr->pp = 0; psr.pp = 0; }
    1.14  	if (imm.up) { ipsr->up = 0; psr.up = 0; }
    1.15  	if (imm.sp) { ipsr->sp = 0; psr.sp = 0; }
    1.16 +	if (imm.be) ipsr->be = 0;
    1.17  	if (imm.dt) vcpu_set_metaphysical_mode(vcpu,TRUE);
    1.18  	__asm__ __volatile (";; mov psr.l=%0;; srlz.d"::"r"(psr):"memory");
    1.19  	return IA64_NO_FAULT;