[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Consolidate DELIVER_PSR_CLR and DELIVER_PSR_SET definition.
# HG changeset patch # User Alex Williamson <alex.williamson@xxxxxx> # Date 1190906183 21600 # Node ID eae7b887e5acb4e087f4787be581985e21d0d40d # Parent 764d33505b98f43c1c265a07a2b2ae3c252a5388 [IA64] Consolidate DELIVER_PSR_CLR and DELIVER_PSR_SET definition. Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- xen/arch/ia64/xen/faults.c | 12 ------------ xen/arch/ia64/xen/hyperprivop.S | 24 ++++-------------------- xen/include/asm-ia64/xenkregs.h | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 32 deletions(-) diff -r 764d33505b98 -r eae7b887e5ac xen/arch/ia64/xen/faults.c --- a/xen/arch/ia64/xen/faults.c Thu Sep 27 09:08:26 2007 -0600 +++ b/xen/arch/ia64/xen/faults.c Thu Sep 27 09:16:23 2007 -0600 @@ -38,18 +38,6 @@ extern int ia64_hyperprivop(unsigned lon extern int ia64_hyperprivop(unsigned long, REGS *); extern IA64FAULT ia64_hypercall(struct pt_regs *regs); -// note IA64_PSR_PK removed from following, why is this necessary? -#define DELIVER_PSR_SET (IA64_PSR_IC | IA64_PSR_I | \ - IA64_PSR_DT | IA64_PSR_RT | \ - IA64_PSR_IT | IA64_PSR_BN) - -#define DELIVER_PSR_CLR (IA64_PSR_AC | IA64_PSR_DFL | IA64_PSR_DFH | \ - IA64_PSR_SP | IA64_PSR_DI | IA64_PSR_SI | \ - IA64_PSR_DB | IA64_PSR_LP | IA64_PSR_TB | \ - IA64_PSR_CPL| IA64_PSR_MC | IA64_PSR_IS | \ - IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \ - IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | IA64_PSR_IA) - extern void do_ssc(unsigned long ssc, struct pt_regs *regs); // should never panic domain... if it does, stack may have been overrun diff -r 764d33505b98 -r eae7b887e5ac xen/arch/ia64/xen/hyperprivop.S --- a/xen/arch/ia64/xen/hyperprivop.S Thu Sep 27 09:08:26 2007 -0600 +++ b/xen/arch/ia64/xen/hyperprivop.S Thu Sep 27 09:16:23 2007 -0600 @@ -55,22 +55,6 @@ // FIXME: This is defined in include/asm-ia64/hw_irq.h but this // doesn't appear to be include'able from assembly? #define IA64_TIMER_VECTOR 0xef - -// Should be included from common header file (also in process.c) -// NO PSR_CLR IS DIFFERENT! (CPL) -#define IA64_PSR_CPL1 (__IA64_UL(1) << IA64_PSR_CPL1_BIT) -#define IA64_PSR_CPL0 (__IA64_UL(1) << IA64_PSR_CPL0_BIT) -// note IA64_PSR_PK removed from following, why is this necessary? -#define DELIVER_PSR_SET (IA64_PSR_IC | IA64_PSR_I | \ - IA64_PSR_DT | IA64_PSR_RT | \ - IA64_PSR_IT | IA64_PSR_BN) - -#define DELIVER_PSR_CLR (IA64_PSR_AC | IA64_PSR_DFL | IA64_PSR_DFH | \ - IA64_PSR_SP | IA64_PSR_DI | IA64_PSR_SI | \ - IA64_PSR_DB | IA64_PSR_LP | IA64_PSR_TB | \ - IA64_PSR_MC | IA64_PSR_IS | \ - IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \ - IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | IA64_PSR_IA) // Note: not hand-scheduled for now // Registers at entry @@ -250,7 +234,7 @@ ENTRY(hyper_ssm_i) // set cr.ipsr mov r29=r30 movl r28=DELIVER_PSR_SET - movl r27=~DELIVER_PSR_CLR;; + movl r27=~(DELIVER_PSR_CLR & (~IA64_PSR_CPL));; and r29=r29,r27;; or r29=r29,r28;; // set hpsr_dfh to ipsr @@ -438,7 +422,7 @@ GLOBAL_ENTRY(fast_tick_reflect) // set cr.ipsr (make sure cpl==2!) mov r29=r17 movl r28=DELIVER_PSR_SET | (CONFIG_CPL0_EMUL << IA64_PSR_CPL0_BIT) - movl r27=~(DELIVER_PSR_CLR|IA64_PSR_CPL0|IA64_PSR_CPL1);; + movl r27=~DELIVER_PSR_CLR;; and r29=r29,r27;; or r29=r29,r28;; mov cr.ipsr=r29;; @@ -611,7 +595,7 @@ ENTRY(fast_reflect) mov r29=r30 ;; ld8 r21=[r21] movl r28=DELIVER_PSR_SET | (CONFIG_CPL0_EMUL << IA64_PSR_CPL0_BIT) - movl r27=~(DELIVER_PSR_CLR|IA64_PSR_CPL0|IA64_PSR_CPL1);; + movl r27=~DELIVER_PSR_CLR;; and r29=r29,r27;; or r29=r29,r28;; // set hpsr_dfh to ipsr @@ -1269,7 +1253,7 @@ ENTRY(rfi_with_interrupt) movl r22=THIS_CPU(current_psr_i_addr) // set cr.ipsr (make sure cpl==2!) mov r29=r17 - movl r27=~(DELIVER_PSR_CLR|IA64_PSR_CPL0|IA64_PSR_CPL1) + movl r27=~DELIVER_PSR_CLR movl r28=DELIVER_PSR_SET | (CONFIG_CPL0_EMUL << IA64_PSR_CPL0_BIT) mov r20=1;; ld8 r22=[r22] diff -r 764d33505b98 -r eae7b887e5ac xen/include/asm-ia64/xenkregs.h --- a/xen/include/asm-ia64/xenkregs.h Thu Sep 27 09:08:26 2007 -0600 +++ b/xen/include/asm-ia64/xenkregs.h Thu Sep 27 09:16:23 2007 -0600 @@ -16,6 +16,22 @@ #define IA64_DEFAULT_DCR_BITS (IA64_DCR_PP | IA64_DCR_LC | IA64_DCR_DM | \ IA64_DCR_DP | IA64_DCR_DK | IA64_DCR_DX | \ IA64_DCR_DR | IA64_DCR_DA | IA64_DCR_DD) + +// note IA64_PSR_PK removed from following, why is this necessary? +#define DELIVER_PSR_SET (IA64_PSR_IC | IA64_PSR_I | \ + IA64_PSR_DT | IA64_PSR_RT | \ + IA64_PSR_IT | IA64_PSR_BN) + +#define DELIVER_PSR_CLR (IA64_PSR_AC | IA64_PSR_DFL| IA64_PSR_DFH| \ + IA64_PSR_SP | IA64_PSR_DI | IA64_PSR_SI | \ + IA64_PSR_DB | IA64_PSR_LP | IA64_PSR_TB | \ + IA64_PSR_CPL| IA64_PSR_MC | IA64_PSR_IS | \ + IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \ + IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | IA64_PSR_IA) + +// NO PSR_CLR IS DIFFERENT! (CPL) +#define IA64_PSR_CPL1 (__IA64_UL(1) << IA64_PSR_CPL1_BIT) +#define IA64_PSR_CPL0 (__IA64_UL(1) << IA64_PSR_CPL0_BIT) /* Interruption Function State */ #define IA64_IFS_V_BIT 63 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |