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

📄 vmx_ivt.s

📁 xen虚拟机源代码安装包
💻 S
📖 第 1 页 / 共 3 页
字号:
    VMX_DBG_FAULT(29)    VMX_REFLECT(29)END(vmx_debug_vector)    .org vmx_ia64_ivt+0x5a00/////////////////////////////////////////////////////////////////////////////////////////// 0x5a00 Entry 30 (size 16 bundles) Unaligned Reference (57)ENTRY(vmx_unaligned_access)    VMX_DBG_FAULT(30)    VMX_REFLECT(30)END(vmx_unaligned_access)    .org vmx_ia64_ivt+0x5b00/////////////////////////////////////////////////////////////////////////////////////////// 0x5b00 Entry 31 (size 16 bundles) Unsupported Data Reference (57)ENTRY(vmx_unsupported_data_reference)    VMX_DBG_FAULT(31)    VMX_REFLECT(31)END(vmx_unsupported_data_reference)    .org vmx_ia64_ivt+0x5c00/////////////////////////////////////////////////////////////////////////////////////////// 0x5c00 Entry 32 (size 16 bundles) Floating-Point Fault (64)ENTRY(vmx_floating_point_fault)    VMX_DBG_FAULT(32)    VMX_REFLECT(32)END(vmx_floating_point_fault)    .org vmx_ia64_ivt+0x5d00/////////////////////////////////////////////////////////////////////////////////////////// 0x5d00 Entry 33 (size 16 bundles) Floating Point Trap (66)ENTRY(vmx_floating_point_trap)    VMX_DBG_FAULT(33)    VMX_REFLECT(33)END(vmx_floating_point_trap)    .org vmx_ia64_ivt+0x5e00/////////////////////////////////////////////////////////////////////////////////////////// 0x5e00 Entry 34 (size 16 bundles) Lower Privilege Transfer Trap (66)ENTRY(vmx_lower_privilege_trap)    VMX_DBG_FAULT(34)    VMX_REFLECT(34)END(vmx_lower_privilege_trap)    .org vmx_ia64_ivt+0x5f00/////////////////////////////////////////////////////////////////////////////////////////// 0x5f00 Entry 35 (size 16 bundles) Taken Branch Trap (68)ENTRY(vmx_taken_branch_trap)    VMX_DBG_FAULT(35)    VMX_REFLECT(35)END(vmx_taken_branch_trap)    .org vmx_ia64_ivt+0x6000/////////////////////////////////////////////////////////////////////////////////////////// 0x6000 Entry 36 (size 16 bundles) Single Step Trap (69)ENTRY(vmx_single_step_trap)    VMX_DBG_FAULT(36)    VMX_REFLECT(36)END(vmx_single_step_trap)    .global vmx_virtualization_fault_back    .org vmx_ia64_ivt+0x6100/////////////////////////////////////////////////////////////////////////////////////////// 0x6100 Entry 37 (size 16 bundles) Virtualization FaultENTRY(vmx_virtualization_fault)//    VMX_DBG_FAULT(37)    mov r31=pr    movl r30 = virtualization_fault_table    mov r23=b0    ;;    shladd r30=r24,4,r30    ;;    mov b0=r30    br.sptk.many b0    ;;vmx_virtualization_fault_back:    mov r19=37    adds r16 = IA64_VCPU_CAUSE_OFFSET,r21    adds r17 = IA64_VCPU_OPCODE_OFFSET,r21    ;;    st8 [r16] = r24    st8 [r17] = r25    br.sptk vmx_dispatch_virtualization_faultEND(vmx_virtualization_fault)    .org vmx_ia64_ivt+0x6200/////////////////////////////////////////////////////////////////////////////////////////// 0x6200 Entry 38 (size 16 bundles) Reserved    VMX_DBG_FAULT(38)    VMX_FAULT(38)    .org vmx_ia64_ivt+0x6300/////////////////////////////////////////////////////////////////////////////////////////// 0x6300 Entry 39 (size 16 bundles) Reserved    VMX_DBG_FAULT(39)    VMX_FAULT(39)    .org vmx_ia64_ivt+0x6400/////////////////////////////////////////////////////////////////////////////////////////// 0x6400 Entry 40 (size 16 bundles) Reserved    VMX_DBG_FAULT(40)    VMX_FAULT(40)    .org vmx_ia64_ivt+0x6500/////////////////////////////////////////////////////////////////////////////////////////// 0x6500 Entry 41 (size 16 bundles) Reserved    VMX_DBG_FAULT(41)    VMX_FAULT(41)    .org vmx_ia64_ivt+0x6600/////////////////////////////////////////////////////////////////////////////////////////// 0x6600 Entry 42 (size 16 bundles) Reserved    VMX_DBG_FAULT(42)    VMX_FAULT(42)    .org vmx_ia64_ivt+0x6700/////////////////////////////////////////////////////////////////////////////////////////// 0x6700 Entry 43 (size 16 bundles) Reserved    VMX_DBG_FAULT(43)    VMX_FAULT(43)    .org vmx_ia64_ivt+0x6800/////////////////////////////////////////////////////////////////////////////////////////// 0x6800 Entry 44 (size 16 bundles) Reserved    VMX_DBG_FAULT(44)    VMX_FAULT(44)    .org vmx_ia64_ivt+0x6900/////////////////////////////////////////////////////////////////////////////////////////// 0x6900 Entry 45 (size 16 bundles) IA-32 Exeception (17,18,29,41,42,43,44,58,60,61,62,72,73,75,76,77)ENTRY(vmx_ia32_exception)    VMX_DBG_FAULT(45)    VMX_FAULT(45)END(vmx_ia32_exception)    .org vmx_ia64_ivt+0x6a00/////////////////////////////////////////////////////////////////////////////////////////// 0x6a00 Entry 46 (size 16 bundles) IA-32 Intercept  (30,31,59,70,71)ENTRY(vmx_ia32_intercept)    VMX_DBG_FAULT(46)    VMX_FAULT(46)END(vmx_ia32_intercept)    .org vmx_ia64_ivt+0x6b00/////////////////////////////////////////////////////////////////////////////////////////// 0x6b00 Entry 47 (size 16 bundles) IA-32 Interrupt  (74)ENTRY(vmx_ia32_interrupt)    VMX_DBG_FAULT(47)    VMX_FAULT(47)END(vmx_ia32_interrupt)    .org vmx_ia64_ivt+0x6c00/////////////////////////////////////////////////////////////////////////////////////////// 0x6c00 Entry 48 (size 16 bundles) Reserved    VMX_DBG_FAULT(48)    VMX_FAULT(48)    .org vmx_ia64_ivt+0x6d00/////////////////////////////////////////////////////////////////////////////////////////// 0x6d00 Entry 49 (size 16 bundles) Reserved    VMX_DBG_FAULT(49)    VMX_FAULT(49)    .org vmx_ia64_ivt+0x6e00/////////////////////////////////////////////////////////////////////////////////////////// 0x6e00 Entry 50 (size 16 bundles) Reserved    VMX_DBG_FAULT(50)    VMX_FAULT(50)    .org vmx_ia64_ivt+0x6f00/////////////////////////////////////////////////////////////////////////////////////////// 0x6f00 Entry 51 (size 16 bundles) Reserved    VMX_DBG_FAULT(51)    VMX_FAULT(51)    .org vmx_ia64_ivt+0x7000/////////////////////////////////////////////////////////////////////////////////////////// 0x7000 Entry 52 (size 16 bundles) Reserved    VMX_DBG_FAULT(52)    VMX_FAULT(52)    .org vmx_ia64_ivt+0x7100/////////////////////////////////////////////////////////////////////////////////////////// 0x7100 Entry 53 (size 16 bundles) Reserved    VMX_DBG_FAULT(53)    VMX_FAULT(53)    .org vmx_ia64_ivt+0x7200/////////////////////////////////////////////////////////////////////////////////////////// 0x7200 Entry 54 (size 16 bundles) Reserved    VMX_DBG_FAULT(54)    VMX_FAULT(54)    .org vmx_ia64_ivt+0x7300/////////////////////////////////////////////////////////////////////////////////////////// 0x7300 Entry 55 (size 16 bundles) Reserved    VMX_DBG_FAULT(55)    VMX_FAULT(55)    .org vmx_ia64_ivt+0x7400/////////////////////////////////////////////////////////////////////////////////////////// 0x7400 Entry 56 (size 16 bundles) Reserved    VMX_DBG_FAULT(56)    VMX_FAULT(56)    .org vmx_ia64_ivt+0x7500/////////////////////////////////////////////////////////////////////////////////////////// 0x7500 Entry 57 (size 16 bundles) Reserved    VMX_DBG_FAULT(57)    VMX_FAULT(57)    .org vmx_ia64_ivt+0x7600/////////////////////////////////////////////////////////////////////////////////////////// 0x7600 Entry 58 (size 16 bundles) Reserved    VMX_DBG_FAULT(58)    VMX_FAULT(58)    .org vmx_ia64_ivt+0x7700/////////////////////////////////////////////////////////////////////////////////////////// 0x7700 Entry 59 (size 16 bundles) Reserved    VMX_DBG_FAULT(59)    VMX_FAULT(59)    .org vmx_ia64_ivt+0x7800/////////////////////////////////////////////////////////////////////////////////////////// 0x7800 Entry 60 (size 16 bundles) Reserved    VMX_DBG_FAULT(60)    VMX_FAULT(60)    .org vmx_ia64_ivt+0x7900/////////////////////////////////////////////////////////////////////////////////////////// 0x7900 Entry 61 (size 16 bundles) Reserved    VMX_DBG_FAULT(61)    VMX_FAULT(61)    .org vmx_ia64_ivt+0x7a00/////////////////////////////////////////////////////////////////////////////////////////// 0x7a00 Entry 62 (size 16 bundles) Reserved    VMX_DBG_FAULT(62)    VMX_FAULT(62)    .org vmx_ia64_ivt+0x7b00/////////////////////////////////////////////////////////////////////////////////////////// 0x7b00 Entry 63 (size 16 bundles) Reserved    VMX_DBG_FAULT(63)    VMX_FAULT(63)    .org vmx_ia64_ivt+0x7c00/////////////////////////////////////////////////////////////////////////////////////////// 0x7c00 Entry 64 (size 16 bundles) Reserved    VMX_DBG_FAULT(64)    VMX_FAULT(64)    .org vmx_ia64_ivt+0x7d00/////////////////////////////////////////////////////////////////////////////////////////// 0x7d00 Entry 65 (size 16 bundles) Reserved    VMX_DBG_FAULT(65)    VMX_FAULT(65)    .org vmx_ia64_ivt+0x7e00/////////////////////////////////////////////////////////////////////////////////////////// 0x7e00 Entry 66 (size 16 bundles) Reserved    VMX_DBG_FAULT(66)    VMX_FAULT(66)    .org vmx_ia64_ivt+0x7f00/////////////////////////////////////////////////////////////////////////////////////////// 0x7f00 Entry 67 (size 16 bundles) Reserved    VMX_DBG_FAULT(67)    VMX_FAULT(67)    .org vmx_ia64_ivt+0x8000// There is no particular reason for this code to be here, other than that// there happens to be space here that would go unused otherwise.  If this// fault ever gets "unreserved", simply moved the following code to a more// suitable spot...ENTRY(vmx_dispatch_reflection)    /*     * Input:     *  psr.ic: off     *  r19:    intr type (offset into ivt, see ia64_int.h)     *  r31:    contains saved predicates (pr)     */    VMX_SAVE_MIN_WITH_COVER_R19    alloc r14=ar.pfs,0,0,5,0    mov out0=cr.ifa    mov out1=cr.isr    mov out2=cr.iim    mov out3=r15    adds r3=8,r2                // set up second base pointer    ;;    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15) ssm psr.i               // restore psr.i    movl r14=ia64_leave_hypervisor    ;;    VMX_SAVE_REST    mov rp=r14    ;;    P6_BR_CALL_PANIC(.Lvmx_dispatch_reflection_string)    adds out4=16,r12    br.call.sptk.many b6=vmx_reflect_interruptionEND(vmx_dispatch_reflection)ENTRY(vmx_dispatch_virtualization_fault)    VMX_SAVE_MIN_WITH_COVER    ;;    alloc r14=ar.pfs,0,0,2,0        // now it's safe (must be first in insn group!)    mov out0=r13        //vcpu    adds r3=8,r2                // set up second base pointer    ;;    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15) ssm psr.i               // restore psr.i    movl r14=ia64_leave_hypervisor_prepare    ;;    VMX_SAVE_REST    VMX_SAVE_EXTRA    mov rp=r14    ;;    P6_BR_CALL_PANIC(.Lvmx_dispatch_virtualization_fault_string)    adds out1=16,sp         //regs    br.call.sptk.many b6=vmx_emulateEND(vmx_dispatch_virtualization_fault)GLOBAL_ENTRY(vmx_dispatch_vexirq)    VMX_SAVE_MIN_WITH_COVER    alloc r14=ar.pfs,0,0,1,0    mov out0=r13    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15) ssm psr.i               // restore psr.i    adds r3=8,r2                // set up second base pointer    ;;    VMX_SAVE_REST    movl r14=ia64_leave_hypervisor    ;;    mov rp=r14    P6_BR_CALL_PANIC(.Lvmx_dispatch_vexirq_string)    br.call.sptk.many b6=vmx_vexirqEND(vmx_dispatch_vexirq)ENTRY(vmx_dispatch_tlb_miss)    VMX_SAVE_MIN_WITH_COVER_R19    alloc r14=ar.pfs,0,0,3,0    mov out0=cr.ifa    mov out1=r15    adds r3=8,r2                // set up second base pointer    ;;    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15) ssm psr.i               // restore psr.i    movl r14=ia64_leave_hypervisor    ;;    VMX_SAVE_REST    mov rp=r14    ;;    P6_BR_CALL_PANIC(.Lvmx_dispatch_tlb_miss_string)    adds out2=16,r12    br.call.sptk.many b6=vmx_hpw_missEND(vmx_dispatch_tlb_miss)ENTRY(vmx_dispatch_break_fault)    VMX_SAVE_MIN_WITH_COVER_NO_PANIC    ;;    alloc r14=ar.pfs,0,0,4,0 // now it's safe (must be first in insn group!)    mov out0=cr.ifa    mov out2=cr.isr     // FIXME: pity to make this slow access twice    mov out3=cr.iim     // FIXME: pity to make this slow access twice    adds r3=8,r2                // set up second base pointer    ;;    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15)ssm psr.i               // restore psr.i(pUStk)movl r14=ia64_leave_hypervisor    ;;(pKStk)movl r14=ia64_leave_nested    VMX_SAVE_REST    mov rp=r14    ;;    adds out1=16,sp    br.call.sptk.many b6=vmx_ia64_handle_break    ;;END(vmx_dispatch_break_fault)ENTRY(vmx_dispatch_interrupt)    VMX_SAVE_MIN_WITH_COVER_NO_PANIC	// uses r31; defines r2 and r3    ;;    alloc r14=ar.pfs,0,0,2,0	// must be first in an insn group    ssm psr.ic    mov out0=cr.ivr		// pass cr.ivr as first arg    adds r3=8,r2		// set up second base pointer for SAVE_REST    ;;(pUStk) movl r14=ia64_leave_hypervisor    srlz.i    ;;(pKStk) movl r14=ia64_leave_nested    VMX_SAVE_REST    add out1=16,sp		// pass pointer to pt_regs as second arg    mov rp=r14    br.call.sptk.many b6=ia64_handle_irqEND(vmx_dispatch_interrupt)ENTRY(vmx_dispatch_shadow_fault)    VMX_SAVE_MIN_WITH_COVER_R19    alloc r14=ar.pfs,0,0,4,0    mov out0=cr.ifa    mov out1=cr.isr    mov out2=r15    adds r3=8,r2                // set up second base pointer    ;;    ssm psr.ic    ;;    srlz.i                  // guarantee that interruption collection is on    ;;    (p15) ssm psr.i               // restore psr.i    movl r14=ia64_leave_hypervisor    ;;    VMX_SAVE_REST    mov rp=r14    ;;    P6_BR_CALL_PANIC(.Lvmx_dispatch_shadow_fault_string)    adds out3=16,r12    br.call.sptk.many b6=vmx_ia64_shadow_faultEND(vmx_dispatch_shadow_fault).Lvmx_dispatch_reflection_string:    .asciz "vmx_dispatch_reflection\n".Lvmx_dispatch_virtualization_fault_string:    .asciz "vmx_dispatch_virtualization_fault\n".Lvmx_dispatch_vexirq_string:    .asciz "vmx_dispatch_vexirq\n".Lvmx_dispatch_tlb_miss_string:    .asciz "vmx_dispatch_tlb_miss\n".Lvmx_dispatch_shadow_fault_string:    .asciz "vmx_dispatch_shadow_fault\n"

⌨️ 快捷键说明

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