WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] pv_ops: ministate.h typo fix

It is mentioned as move some instructions to make bundle compact.
I understand. Seems reasonable.

On Thu, Mar 27, 2008 at 02:40:52PM +0900, Isaku Yamahata wrote:
> On Thu, Mar 27, 2008 at 12:20:37PM +0800, Dong, Eddie wrote:
> 
> > > - shuffle instructions of XEN_BSW_1 and xen DO_XEN_MIN().
> > >   Is this for producing better bundles? Please ellaborate on this.
> > >   If so, I'll take as another patch.
> > 
> > ??? Which code are u talking for?
> 
> The following hunks. The instruction order was changed.
> What's the purpose?
> 
> diff --git a/include/asm-ia64/xen/inst.h b/include/asm-ia64/xen/inst.h
> index a8fb2ac..1e92d02 100644
> --- a/include/asm-ia64/xen/inst.h
> +++ b/include/asm-ia64/xen/inst.h
> @@ -414,10 +414,10 @@
>       movl r30 = XSI_B1NAT;           \
>       ;;                              \
>       ld8 r30 = [r30];                \
> +     mov r31 = 1;                    \
>       ;;                              \
>       mov ar.unat = r30;              \
>       movl r30 = XSI_BANKNUM;         \
> -     mov r31 = 1;                    \
>       ;;                              \
>       st4 [r30] = r31;                \
>       movl r30 = XSI_BANK1_R16;       \
> diff --git a/include/asm-ia64/xen/minstate.h b/include/asm-ia64/xen/minstate.h
> index 67bbf79..7cdebc2 100644
> --- a/include/asm-ia64/xen/minstate.h
> +++ b/include/asm-ia64/xen/minstate.h
> @@ -25,17 +25,16 @@
>   * Note that psr.ic is NOT turned on by this macro.  This is so that
>   * we can pass interruption state as arguments to a handler.
>   */
> -#define DO_SAVE_MIN(__COVER,SAVE_IFS,EXTRA)                                  
>                 \
> +#define DO_SAVE_MIN(COVER,SAVE_IFS,EXTRA)                                    
>                 \
>       mov r16=IA64_KR(CURRENT);       /* M */                                 
>                 \
>       mov r27=ar.rsc;                 /* M */                                 
>                 \
>       mov r20=r1;                     /* A */                                 
>                 \
>       mov r25=ar.unat;                /* M */                                 
>                 \
>       MOV_FROM_IPSR(r29);             /* M */                                 
>                 \
> -     mov r26=ar.pfs;                 /* I */                                 
>                 \
>       MOV_FROM_IIP(r28);              /* M */                                 
>                 \
>       mov r21=ar.fpsr;                /* M */                                 
>                 \
> -     __COVER;                        /* B;; (or nothing) */                  
>                 \
> -     ;;                                                                      
>                 \
> +     mov r26=ar.pfs;                 /* I */                                 
>                 \
> +     COVER;                          /* B;; (or nothing) */                  
>                 \
>       adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16;                         
>                 \
>       ;;                                                                      
>                 \
>       ld1 r17=[r16];                          /* load 
> current->thread.on_ustack flag */       \
> @@ -80,17 +79,17 @@
>  .mem.offset 8,0; st8.spill [r17]=r9,16;                                      
>                         \
>          ;;                                                                   
>                 \
>  .mem.offset 0,0; st8.spill [r16]=r10,24;                                     
>                 \
> +     movl r8=XSI_PRECOVER_IFS;                                               
>                 \
>  .mem.offset 8,0; st8.spill [r17]=r11,24;                                     
>                 \
>          ;;                                                                   
>                 \
>       /* xen special handling for possibly lazy cover */                      
>                 \
>       /* XXX: SAVE_MIN case in dispatch_ia32_handler: mov r30=r0 */           
>                 \
> -     movl r8=XSI_PRECOVER_IFS;                                               
>                 \
>       ;;                                                                      
>                 \
>       ld8 r30=[r8];                                                           
>                 \
> -     ;;                                                                      
>                 \
> +(pUStk)      sub r18=r18,r22;        /* r18=RSE.ndirty*8 */                  
>                         \
>       st8 [r16]=r28,16;       /* save cr.iip */                               
>                 \
> +     ;;      \
>       st8 [r17]=r30,16;       /* save cr.ifs */                               
>                 \
> -(pUStk)      sub r18=r18,r22;        /* r18=RSE.ndirty*8 */                  
>                         \
>       mov r8=ar.ccv;                                                          
>                 \
>       mov r9=ar.csd;                                                          
>                 \
>       mov r10=ar.ssd;                                                         
>                 \
> @@ -131,7 +130,5 @@
>       adds r2=IA64_PT_REGS_R16_OFFSET,r1;                                     
>                 \
>       ;;                                                                      
>                 \
>       movl r1=__gp;           /* establish kernel global pointer */           
>                 \
> -     ;;                                                                      
>                 \
> -     /*bsw.1;*/              /* switch back to bank 1 (must be last in insn 
> group) */        \
>       ;;
>  #endif /* __IA64_ASM_PARAVIRTUALIZED_XEN */
> 
> 

-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel