ia64/xen-unstable

changeset 16758:5ab3288e5b0f

[IA64] vti fault handler clean up: introduce VMX_SAVE_MIN_WITH_COVER_NO_PANIC

For later use. This is a version of VMX_SAVE_MIN_WITH_COVER which
doesn't call vmx_panic even when p6 is true.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author Alex Williamson <alex.williamson@hp.com>
date Fri Dec 14 13:40:29 2007 -0700 (2007-12-14)
parents 9ab95900afec
children 2d0193702170
files xen/arch/ia64/vmx/vmx_minstate.h
line diff
     1.1 --- a/xen/arch/ia64/vmx/vmx_minstate.h	Fri Dec 14 13:37:57 2007 -0700
     1.2 +++ b/xen/arch/ia64/vmx/vmx_minstate.h	Fri Dec 14 13:40:29 2007 -0700
     1.3 @@ -120,7 +120,7 @@
     1.4  (p6) movl out0=panic_string;            \
     1.5  (p6) br.call.spnt.few b6=panic;
     1.6  
     1.7 -#define VMX_DO_SAVE_MIN(COVER,SAVE_IFS,EXTRA)                                           \
     1.8 +#define VMX_DO_SAVE_MIN(COVER,SAVE_IFS,EXTRA,VMX_PANIC)                                 \
     1.9      mov r27=ar.rsc;                     /* M */                                         \
    1.10      mov r20=r1;                         /* A */                                         \
    1.11      mov r25=ar.unat;                    /* M */                                         \
    1.12 @@ -134,10 +134,8 @@
    1.13      tbit.z p0,p15=r29,IA64_PSR_I_BIT;                                                   \
    1.14      ;;                                                                                  \
    1.15  (pUStk) tbit.nz.and p6,p0=r18,IA64_ISR_NI_BIT;                                          \
    1.16 -    ;;                                                                                  \
    1.17 -    P6_BR_VMX_PANIC                                                                     \
    1.18  (pUStk)VMX_MINSTATE_GET_CURRENT(r1);                                                    \
    1.19 -    /*    mov r21=r16;  */                                                              \
    1.20 +    VMX_PANIC                                                                           \
    1.21      /* switch from user to kernel RBS: */                                               \
    1.22      ;;                                                                                  \
    1.23      invala;                             /* M */                                         \
    1.24 @@ -299,9 +297,11 @@
    1.25      ;;                                  \
    1.26      st8 [r2]=r26;       /* eml_unat */
    1.27  
    1.28 -#define VMX_SAVE_MIN_WITH_COVER     VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs,)
    1.29 -#define VMX_SAVE_MIN_WITH_COVER_R19 VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs, mov r15=r19)
    1.30 -#define VMX_SAVE_MIN                VMX_DO_SAVE_MIN(     , mov r30=r0, )
    1.31 +#define VMX_SAVE_MIN_WITH_COVER     VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs,, P6_BR_VMX_PANIC)
    1.32 +#define VMX_SAVE_MIN_WITH_COVER_NO_PANIC    \
    1.33 +                                    VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs,, )
    1.34 +#define VMX_SAVE_MIN_WITH_COVER_R19 VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs, mov r15=r19, P6_BR_VMX_PANIC)
    1.35 +#define VMX_SAVE_MIN                VMX_DO_SAVE_MIN(     , mov r30=r0,, P6_BR_VMX_PANIC)
    1.36  
    1.37  /*
    1.38   * Local variables: