⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vmx_minstate.h

📁 xen虚拟机源代码安装包
💻 H
📖 第 1 页 / 共 2 页
字号:
    ;;                                                                                  \    mov r9=cr.iip;      /* M */                                                         \    mov r10=ar.fpsr;    /* M */                                                         \    ;;                                                                                  \    st8 [r16]=r9,16;    /* save cr.iip */                                               \    st8 [r17]=r30,16;   /* save cr.ifs */                                               \(pUStk) sub r18=r18,r22;/* r18=RSE.ndirty*8 */                                          \    ;;                                                                                  \    st8 [r16]=r25,16;   /* save ar.unat */                                              \    st8 [r17]=r26,16;    /* save ar.pfs */                                              \    shl r18=r18,16;     /* compute ar.rsc to be used for "loadrs" */                    \    ;;                                                                                  \    st8 [r16]=r27,16;   /* save ar.rsc */                                               \(pUStk) st8 [r17]=r28,16;/* save ar.rnat */                                             \(pKStk) adds r17=16,r17;/* skip over ar_rnat field */                                   \    ;;                  /* avoid RAW on r16 & r17 */                                    \(pUStk) st8 [r16]=r23,16;   /* save ar.bspstore */                                      \    st8 [r17]=r31,16;   /* save predicates */                                           \(pKStk) adds r16=16,r16;    /* skip over ar_bspstore field */                           \    ;;                                                                                  \    st8 [r16]=r29,16;   /* save b0 */                                                   \    st8 [r17]=r18,16;   /* save ar.rsc value for "loadrs" */                            \    cmp.eq pNonSys,pSys=r0,r0   /* initialize pSys=0, pNonSys=1 */                      \    ;;                                                                                  \.mem.offset 0,0; st8.spill [r16]=r20,16;        /* save original r1 */                  \.mem.offset 8,0; st8.spill [r17]=r12,16;                                                \    adds r12=-16,r1;    /* switch to kernel memory stack (with 16 bytes of scratch) */  \    ;;                                                                                  \.mem.offset 0,0; st8.spill [r16]=r13,16;                                                \.mem.offset 8,0; st8.spill [r17]=r10,16;        /* save ar.fpsr */                      \(pUStk) VMX_MINSTATE_GET_CURRENT(r13);          /* establish `current' */               \(pKStk) movl r13=THIS_CPU(cpu_kr)+IA64_KR_CURRENT_OFFSET;/* From MINSTATE_GET_CURRENT */\    ;;                                                                                  \.mem.offset 0,0; st8.spill [r16]=r15,16;                                                \.mem.offset 8,0; st8.spill [r17]=r14,16;                                                \(pKStk) ld8 r13=[r13];                          /* establish `current' */               \    ;;                                                                                  \.mem.offset 0,0; st8.spill [r16]=r2,16;                                                 \.mem.offset 8,0; st8.spill [r17]=r3,16;                                                 \    adds r2=IA64_PT_REGS_R16_OFFSET,r1;                                                 \    ;;                                                                                  \(pUStk) adds r16=IA64_VCPU_IIPA_OFFSET,r13;                                             \(pUStk) adds r17=IA64_VCPU_ISR_OFFSET,r13;                                              \(pUStk) mov r26=cr.iipa;                                                                \(pUStk) mov r27=cr.isr;                                                                 \    ;;                                                                                  \(pUStk) st8 [r16]=r26;                                                                  \(pUStk) st8 [r17]=r27;                                                                  \    ;;                                                                                  \    EXTRA;                                                                              \    mov r8=ar.ccv;                                                                      \    mov r9=ar.csd;                                                                      \    mov r10=ar.ssd;                                                                     \    movl r11=FPSR_DEFAULT;      /* L-unit */                                            \    movl r1=__gp;               /* establish kernel global pointer */                   \    ;;                                                                                  \    PAL_VSA_SYNC_READ                                                                   \    VMX_MINSTATE_END_SAVE_MIN/* * SAVE_REST saves the remainder of pt_regs (with psr.ic on). * * Assumed state upon entry: *  psr.ic: on *  r2: points to &pt_regs.f6 *  r3: points to &pt_regs.f7 *  r8: contents of ar.ccv *  r9: contents of ar.csd *  r10:    contents of ar.ssd *  r11:    FPSR_DEFAULT * * Registers r14 and r15 are guaranteed not to be touched by SAVE_REST. */#define VMX_SAVE_REST                   \.mem.offset 0,0; st8.spill [r2]=r16,16; \.mem.offset 8,0; st8.spill [r3]=r17,16; \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r18,16; \.mem.offset 8,0; st8.spill [r3]=r19,16; \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r20,16; \.mem.offset 8,0; st8.spill [r3]=r21,16; \    mov r18=b6;                         \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r22,16; \.mem.offset 8,0; st8.spill [r3]=r23,16; \    mov r19=b7;                         \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r24,16; \.mem.offset 8,0; st8.spill [r3]=r25,16; \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r26,16; \.mem.offset 8,0; st8.spill [r3]=r27,16; \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r28,16; \.mem.offset 8,0; st8.spill [r3]=r29,16; \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r30,16; \.mem.offset 8,0; st8.spill [r3]=r31,32; \    ;;                                  \    mov ar.fpsr=r11;                    \    st8 [r2]=r8,8;                      \    adds r24=PT(B6)-PT(F7),r3;          \    ;;                                  \    stf.spill [r2]=f6,32;               \    stf.spill [r3]=f7,32;               \    ;;                                  \    stf.spill [r2]=f8,32;               \    stf.spill [r3]=f9,32;               \    ;;                                  \    stf.spill [r2]=f10,32;              \    stf.spill [r3]=f11;                 \    adds r25=PT(B7)-PT(F11),r3;         \    ;;                                  \    st8 [r24]=r18,16;   /* b6 */        \    st8 [r25]=r19,16;   /* b7 */        \    adds r3=PT(R5)-PT(F11),r3;          \    ;;                                  \    st8 [r24]=r9;       /* ar.csd */    \    st8 [r25]=r10;      /* ar.ssd */    \    ;;                                  \(pUStk)mov r18=ar.unat;                 \(pUStk)adds r19=PT(EML_UNAT)-PT(R4),r2; \    ;;                                  \(pUStk)st8 [r19]=r18;      /* eml_unat */#define VMX_SAVE_EXTRA                  \.mem.offset 0,0; st8.spill [r2]=r4,16;  \.mem.offset 8,0; st8.spill [r3]=r5,16;  \    ;;                                  \.mem.offset 0,0; st8.spill [r2]=r6,16;  \.mem.offset 8,0; st8.spill [r3]=r7;     \    ;;                                  \    mov r26=ar.unat;                    \    ;;                                  \    st8 [r2]=r26;       /* eml_unat */#define VMX_SAVE_MIN_WITH_COVER     VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs,, P6_BR_VMX_PANIC)#define VMX_SAVE_MIN_WITH_COVER_NO_PANIC    \                                    VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs,, )#define VMX_SAVE_MIN_WITH_COVER_R19 VMX_DO_SAVE_MIN(cover, mov r30=cr.ifs, mov r15=r19, P6_BR_VMX_PANIC)#define VMX_SAVE_MIN                VMX_DO_SAVE_MIN(     , mov r30=r0,, P6_BR_VMX_PANIC)/* * Local variables: * mode: C * c-set-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil * End: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -